VERTRIEB: 1-800-867-1380

Vorgehensweise: Verwenden der Funktion zum Kopieren von Datenbanken (Azure SQL-Datenbank)

Letzte Aktualisierung: Juli 2014

In diesem Thema wird beschrieben, wie Sie mithilfe der Funktion zum Kopieren von Datenbanken (DB Copy) eine Kopie Ihrer Microsoft Azure SQL-Datenbank erstellen. Die neue Datenbank, die als Ergebnis des Kopiervorgangs erstellt wird, ist eine voll funktionsfähige Datenbank und als Kopie unabhängig von der Quelldatenbank. Die Kopie wird mit derselben Dienstebene und Leistungsstufe wie die Quelldatenbank erstellt. Alle verfügbaren Methoden und Szenarios zum Kopieren von Datenbanken finden Sie unter Kopieren von Datenbanken in die Azure SQL-Datenbank.

In diesem Thema

In der folgenden Tabelle werden die Methoden aufgelistet, die zum Erstellen einer Kopie einer Datenbank verfügbar sind.

 

Kopiermethode Premium Standard Basic Business Web Serverübergreifend/regionsübergreifend

Azure-Verwaltungsportal

Unterstützt nur das Kopieren auf denselben Server.

ImportantWichtig
Weitere Informationen finden Sie weiter unten im Abschnitt "Einschränkungen".

Transact-SQL

(CREATE DATABASE-Anweisung mit der AS COPY OF-Klausel)

Serverübergreifend wird unterstützt, aber beide Server sollten sich in derselben Region befinden.

REST-API

Unterstützt server- und regionsübergreifendes Kopieren. Bei Premium-Datenbanken haben Sie die Möglichkeit, eine regionsübergreifende Replikationsbeziehung einzurichten, die es Ihnen ermöglicht, Kopien der Datenbank auf Servern in verschiedenen geografischen Regionen zu pflegen. Weitere Informationen finden Sie unter Available Methods to Copy a Database.

PowerShell

Unterstützt server- und regionsübergreifendes Kopieren. Bei Premium-Datenbanken haben Sie die Möglichkeit, eine regionsübergreifende Replikationsbeziehung einzurichten, die es Ihnen ermöglicht, Kopien der Datenbank auf Servern in verschiedenen geografischen Regionen zu pflegen. Weitere Informationen finden Sie unter Available Methods to Copy a Database.

  • Ein Azure SQL-Datenbankbereich kann aus mehreren physischen Clustern bestehen. Aktuell können Sie eine Datenbank nur zwischen zwei verschiedenen Clustern unter Verwendung von PowerShell-Cmdlets oder einer REST-API kopieren. Außerdem ist es nur möglich, eine Datenbank zwischen zwei verschiedenen Abonnements mit Transact-SQL zu kopieren. Als Teil des Kapazitätsmanagements kann es vorkommen, dass Azure SQL-Datenbank Ihren Server regelmäßig auf einen anderen Cluster verschiebt. Die Server, die zum selben Abonnement gehören, werden aber im selben Cluster zusammengehalten.

    So bestimmen Sie, ob eine Datenbank kopiert werden kann: Verwenden Sie einen ping-Befehl ("ping <server>") sowohl für den Quell- als auch für den Zielserver, um deren IP-Adressen aufzulösen. Wenn die IP-Adressen gleich sind, kann die Datenbank kopiert werden. Weitere Informationen finden Sie unter Verwenden des Befehls "ping".

  • Sie können Datenbanken mithilfe von Transact-SQL, mit der PowerShell oder mit der REST-API kopieren. Wenn Sie jedoch Transact-SQL verwenden, können Sie nur zwischen unterschiedlichen Servern im selben Cluster kopieren. PowerShell und die REST-API unterstützen das Kopieren auf einen anderen Server in einem anderen physischen Cluster.

Die Arbeitsauslastung durch den Datenbankkopiervorgang beeinträchtigt die Leistung der am Kopiervorgang beteiligten Azure SQL-Datenbank-Server. Daher kann der Abschluss des Kopiervorgangs entsprechend lange dauern. Wenn beim Kopieren der Datenbank ein Fehler auftritt, starten Sie den Kopiervorgang zu einem Zeitpunkt erneut, an dem die Auslastung der Quelldatenbank niedrig ist. Möglicherweise müssen Sie andere Arbeitsauslastungen der Quelldatenbank anhalten, bis der Kopiervorgang abgeschlossen ist.

Zum Kopieren einer Datenbank mit Transact-SQL muss Ihre Anmeldung über folgende Berechtigungen verfügen:

  • Auf beiden Servern: Die Anmeldung muss auf beiden Azure SQL-Datenbank-Servern den gleichen Anmeldenamen und das gleiche Kennwort besitzen.

  • Auf dem Zielserver: Die Anmeldung muss Mitglied der dbmanager-Rolle auf Serverebene sein. Hinweis: Der Serverebenenprinzipal des Azure SQL-Datenbank-Servers ist zwar kein Mitglied der dbmanager-Rolle, verfügt aber automatisch über die gleichen Berechtigungen. Weitere Informationen zum Verwalten von Anmeldungen in Azure SQL-Datenbank finden Sie unter Verwalten von Datenbanken und Anmeldungen in der Azure SQL-Datenbank.

  • Auf dem Quellserver: Bei der Anmeldung muss es sich um den Datenbankbesitzer der Quelldatenbank handeln. Nur der Datenbankbesitzer (die Anmeldung, mit der die Quelldatenbank erstellt wurde) oder der Serverebenenprinzipal können diese Datenbank in die andere Datenbank kopieren.

Sind diese Berechtigungsanforderungen erfüllt, können mit Ihrer Anmeldung die Anweisungen Azure SQL-Datenbank ALTER DATABASE und DROP DATABASE für die neue Datenbank ausgeführt werden. Wenn Sie eine Datenbank mit PowerShell oder der REST-API kopieren, nutzen Berechtigungen zertifikatbasierte Authentifizierung.

noteHinweis
Das Ändern des Datenbankbesitzers mithilfe der ALTER AUTHORIZATION ON DATABASE-Anweisung wird von Azure SQL-Datenbank nicht unterstützt. Sie können innerhalb der Datenbank in Azure SQL-Datenbank zusätzliche Benutzer erstellen und der db_owner-Rolle auf Datenbankebene hinzufügen. Diese zusätzlichen Benutzer können mit einer Anmeldung verknüpft werden, die sich von der Anmeldung unterscheidet, mit der die Datenbank ursprünglich erstellt wurde. Von diesen zusätzlichen Benutzern kann jedoch kein Datenbankkopiervorgang ausgeführt werden.

Premium-Kontingent: Der Kopiervorgang erhält die Dienstebene und Leistungsstufe der Quelldatenbank. Stellen Sie sicher, dass der Zielserver über ein Premiumkontingent verfügt, wenn Sie eine Datenbank in die Premium-Dienstebene kopieren. Andernfalls schlägt der Vorgang fehl.

ImportantWichtig
Datenbanküberprüfungseinstellungen werden nicht in die neue Datenbank kopiert. Wenn Überprüfung in der neuen Datenbank verfügbar sein soll, müssen Sie dies aktivieren, wenn die Datenbank aktiv ist. Wenn sich die neue Datenbank in derselben Region wie die ursprüngliche Datenbank befindet, können Sie dasselbe Azure--Speicherkonto nutzen. Wenn sich die neue Datenbank in einer anderen Region als die ursprüngliche Datenbank befindet, sollten Sie ein Speicherkonto verwenden, das sich in derselben Region befindet wie die neue Datenbank. Weitere Informationen zur Überwachung für Azure SQL-Datenbank finden Sie unter Datenbanküberwachung.

Pfeilsymbol, das mit dem Link "Zurück zum Anfang" verwendet wird [Top]

  1. Melden Sie sich unter Verwendung Ihres Microsoft-Kontos beim Azure-Verwaltungsportal an.

  2. Navigieren Sie zur Registerkarte SQL-DATENBANKEN.

  3. Heben Sie die Datenbank in der Liste Datenbanken hervor, und klicken Sie in der Befehlsleiste unten im Bildschirm auf die Schaltfläche Kopieren. Dadurch wird das Dialogfeld Datenbankeinstellungen kopieren geöffnet. Geben Sie einen Namen für die neue Datenbank an, und klicken Sie im Dialogfeld auf Check, um den Kopiervorgang zu starten.

  1. Starten Sie PowerShell, und stellen Sie dann eine Verbindung mit Ihrem Azure-Abonnement her.

  2. Mithilfe des Start-AzureSqlDatabaseCopy-Cmdlets können Sie eine Kopie Ihrer Datenbank erstellen.

    Beachten Sie, dass der Parameter –ContinuousCopy für dieses Cmdlet in diesem Fall nicht verwendet wird. Dieser Parameter wird nur für die Einrichtung geografischer Replikation verwendet. Weitere Informationen zu geografischer Replikation finden Sie unter Azure SQL-Datenbank-Geschäftskontinuität.

  3. Verwendungsbeispiel: Dieses Beispiel kopiert die Datenbank "Orders" in die Datenbank "Orders Copy". Die Originaldatenbank und die Kopie befinden sich auf demselben Server "abc".

    PS C:\>Start-AzureSqlDatabaseCopy -ServerName "abc" -DatabaseName "Orders" -PartnerDatabase "Orders Copy"
    
    

  • Melden Sie sich mit der Serverebenenprinzipal-Anmeldung oder der zum Erstellen der zu kopierenden Datenbank verwendeten Anmeldung bei der master-Datenbank an. Anmeldungen, bei denen es sich nicht um den Serverebenenprinzipal handelt, müssen Mitglieder der dbmanager-Rolle sein, um Datenbanken kopieren zu können. Weitere Informationen zu Anmeldungen und zum Herstellen einer Verbindung mit dem Server finden Sie unter Verwalten von Datenbanken und Anmeldungen in der Azure SQL-Datenbank bzw. unter Azure SQL-Datenbankentwicklung: Themen zur Vorgehensweise.

  • Beginnen Sie mithilfe der CREATE DATABASE-Anweisung mit dem Kopieren der Quelldatenbank. Durch Ausführen dieser Anweisung wird der Datenbankkopiervorgang initiiert. Da es sich beim Kopieren einer Datenbank um einen asynchronen Prozess handelt, wird die CREATE DATABASE-Anweisung abgeschlossen, bevor das Kopieren der Datenbank abgeschlossen ist.

  • Überwachen Sie den Kopiervorgang durch Abfragen der Sichten sys.databases und sys.dm_database_copies.

    • Während des Kopiervorgangs enthält die Spalte state_desc der Sicht sys.databases für die neue Datenbank den Wert COPYING.

    • Ist der Kopiervorgang nicht erfolgreich, enthält die Spalte state_desc der Sicht sys.databases für die neue Datenbank den Wert SUSPECT. Führen Sie in diesem Fall die DROP-Anweisung für die neue Datenbank aus, und versuchen Sie es später erneut.

    • Ist der Kopiervorgang erfolgreich, enthält die Spalte state_desc der Sicht sys.databases für die neue Datenbank den Wert ONLINE. In diesem Fall ist der Kopiervorgang abgeschlossen, und die neue Datenbank ist eine reguläre Datenbank, die unabhängig von der Quelldatenbank geändert werden kann.

  • (Optional) Wenn Sie den Kopiervorgang während der Ausführung abbrechen möchten, führen Sie für die neue Datenbank die DROP DATABASE-Anweisung aus. Alternativ kann der Kopiervorgang auch durch Ausführen der DROP DATABASE-Anweisung für die Quelldatenbank abgebrochen werden.

Im folgenden Codebeispiel wird der Datenbankkopiervorgang initiiert. Im Beispiel wird die Datenbank Database1A in eine neue Datenbank mit dem Namen Database1B auf dem gleichen Azure SQL-Datenbank-Server kopiert.

-- Execute on the master database.
-- Start copying.
CREATE DATABASE Database1B AS COPY OF Database1A;

In den folgenden Codebeispielen wird der Datenbankkopiervorgang überwacht, indem aus den Sichten sys.databases und sys.dm_database_copies Informationen zur neuen Datenbank mit dem Namen Database1B abgefragt werden.

-- Execute on the master database.
-- Retrieve state of the new database, Database1B.
SELECT name, state, state_desc FROM sys.databases WHERE name = 'Database1B'

ImportantWichtig
Die folgende Anweisung gibt nur beim Ausführen des Kopiervorgangs ein Resultset zurück. Nachdem der Kopiervorgang abgeschlossen wurde und die neue Datenbank online ist, gibt die Abfrage kein Ergebnis mehr zurück.

-- Execute on the master database.
-- Retrieve copying details.
SELECT * FROM sys.dm_database_copies copies
Inner JOIN sys.databases databases ON copies.database_id = databases.database_id
      WHERE databases.name = 'Database1B';

Pfeilsymbol, das mit dem Link "Zurück zum Anfang" verwendet wird [Top]

  • Melden Sie sich bei der master-Datenbank des Zielservers an. Der Zielserver ist der Azure SQL-Datenbank-Server, auf dem die neue Datenbank erstellt werden soll. Verwenden Sie eine Anmeldung mit dem gleichen Namen und dem gleichen Kennwort wie der Datenbankbesitzer (Database Owner, DBO) der Quelldatenbank auf dem Azure SQL-Datenbank-Server. Bei der Anmeldung auf dem Zielserver muss es sich zudem um ein Mitglied der dbmanager-Rolle oder um die Serverebenenprinzipal-Anmeldung handeln. Weitere Informationen zu Anmeldungen und zum Herstellen einer Verbindung mit dem Server finden Sie unter Verwalten von Datenbanken und Anmeldungen in der Azure SQL-Datenbank bzw. unter Azure SQL-Datenbankentwicklung: Themen zur Vorgehensweise.

  • Beginnen Sie mithilfe der Azure SQL-Datenbank CREATE DATABASE-Anweisung mit dem Kopieren der Quelldatenbank. Durch Ausführen dieser Anweisung auf dem Zielserver wird der Datenbankkopiervorgang initiiert. Da es sich beim Kopieren einer Datenbank um einen asynchronen Prozess handelt, wird die CREATE DATABASE-Anweisung abgeschlossen, bevor das Kopieren der Datenbank abgeschlossen ist.

  • Überwachen Sie den Kopiervorgang durch Abfragen der Sichten sys.databases und sys.dm_database_copies.

    • Während des Kopiervorgangs enthält die Spalte state_desc der Sicht sys.databases für die neue Datenbank den Wert COPYING.

    • Ist der Kopiervorgang nicht erfolgreich, enthält die Spalte state_desc der Sicht sys.databases für die neue Datenbank den Wert SUSPECT. Führen Sie in diesem Fall die DROP-Anweisung für die neue Datenbank aus, und versuchen Sie es später erneut.

    • Ist der Kopiervorgang erfolgreich, enthält die Spalte state_desc der Sicht sys.databases für die neue Datenbank den Wert ONLINE. In diesem Fall ist der Kopiervorgang abgeschlossen, und die neue Datenbank ist eine reguläre Datenbank, die unabhängig von der Quelldatenbank geändert werden kann.

  • (Optional) Wenn Sie den Kopiervorgang während der Ausführung abbrechen möchten, führen Sie für die neue Datenbank die DROP DATABASE-Anweisung aus. Alternativ kann der Kopiervorgang auch durch Ausführen der DROP DATABASE-Anweisung für die Quelldatenbank abgebrochen werden.

  • (Optional) Wenn die neue Datenbank auf dem Zielserver den Status ONLINE besitzt, können die Benutzer aus der neuen Datenbank mithilfe der ALTER USER-Anweisung zu Anmeldungen auf dem Zielserver zugeordnet werden. Alle Benutzer in der neuen Datenbank erhalten die Berechtigungen, über die sie auch in der Quelldatenbank verfügten. Der Benutzer, der den Kopiervorgang für die Datenbank initiiert hat, wird zum Datenbankbesitzer der neuen Datenbank und erhält eine neue Sicherheits-ID (SID). Nach dem erfolgreichen Kopieren und vor dem Zuordnen anderer Benutzer ist eine Anmeldung an der neuen Datenbank nur mit der Anmeldung des Benutzers möglich, der den Kopiervorgang initiiert hat und somit als Datenbankbesitzer (Database Owner, DBO) fungiert.

Im folgenden Codebeispiel wird der Datenbankkopiervorgang von bipk56ex initiiert. Im Beispiel wird das Kopieren der Datenbank Database1A vom Azure SQL-Datenbank-Server mit dem Namen vipk56ex5c in eine neue Datenbank mit dem Namen Database2A auf Server2 veranschaulicht.

-- Execute on the master database of bipk56ex
-- Start copying from Server1 to Server2
CREATE DATABASE Database2A AS COPY OF vipk56ex5c.Database1A;

Im folgenden Codebeispiel wird der Datenbankkopiervorgang überwacht. Im folgenden Codebeispiel werden in den Sichten sys.databases und sys.dm_database_copies auf Server2 Informationen zur neuen Datenbank mit dem Namen Database2A abgefragt.

ImportantWichtig
Die folgende Anweisung gibt nur beim Ausführen des Kopiervorgangs ein Resultset zurück. Nachdem der Kopiervorgang abgeschlossen wurde und die neue Datenbank online ist, gibt die Abfrage kein Ergebnis mehr zurück.

-- Execute on the master database.
-- Retrieve state of the new database, Database1B.
SELECT name, state, state_desc FROM sys.databases WHERE name = 'Database1B'

ImportantWichtig
Die folgende Anweisung gibt nur beim Ausführen des Kopiervorgangs ein Resultset zurück. Nachdem der Kopiervorgang abgeschlossen wurde und die neue Datenbank online ist, gibt die Abfrage kein Ergebnis mehr zurück.

-- Execute on the master database.
-- Retrieve copying details.
SELECT * FROM sys.dm_database_copies copies
Inner JOIN sys.databases databases ON copies.database_id = databases.database_id
      WHERE databases.name = 'Database1B';

Pfeilsymbol, das mit dem Link "Zurück zum Anfang" verwendet wird [Top]

Wenn Sie den Kopiervorgang beenden möchten, bevor er abgeschlossen wurde, löschen Sie die Zieldatenbank mithilfe der DROP DATABASE-Anweisung. Damit dies funktioniert, muss eine Anmeldung verwendet werden, die die oben in diesem Thema unter Berechtigungen beschriebenen Berechtigungsanforderungen erfüllt.

Pfeilsymbol, das mit dem Link "Zurück zum Anfang" verwendet wird [Top]

  • Nach Abschluss des Kopiervorgangs wechselt die neue Datenbank wie folgt in einen von zwei Status:

    • War der Kopiervorgang erfolgreich, wechselt die neue Datenbank in den Status ONLINE. Wenn die neue Datenbank den Status ONLINE besitzt, kann sie unabhängig von der Quelldatenbank verwaltet und verwendet werden.

    • War der Kopiervorgang nicht erfolgreich, wechselt die neue Datenbank in den Status SUSPECT. Eine Datenbank mit dem Status SUSPECT ist nicht verfügbar. Zugriff und Wiederherstellung sind nicht möglich. Löschen Sie in diesem Fall die Zieldatenbank, und kopieren Sie die Quelldatenbank dann erneut.

    Fragen Sie zum Anzeigen des Status die state_desc-Spalte der sys.databases-Sicht ab.

  • Nach Abschluss des Kopiervorgangs besitzt die neue Datenbank dieselbe Dienstebene, Leistungsstufe und maximale Größe wie die Quelldatenbank. Informationen zum Festlegen und Ändern der Dienstebene oder der Leistungsstufe in Azure SQL-Datenbank finden Sie unter Ändern der Dienstebenen und Leistungsstufen von Datenbanken.

  • Nach Abschluss eines serverübergreifenden Kopiervorgangs können Anmeldungen, Benutzer und Berechtigungen der Kopie unabhängig von der Quelldatenbank verwaltet werden. Mithilfe der DBO-Anmeldung und der ALTER USER-Anweisung können Sie den Benutzern in der neuen Datenbank Anmeldungen auf dem neuen Azure SQL-Datenbank-Server zuordnen. Beispiel: ALTER USER userName WITH LOGIN='loginName'. Weitere Informationen finden Sie unter ALTER USER (Azure SQL-Datenbank).

Pfeilsymbol, das mit dem Link "Zurück zum Anfang" verwendet wird [Top]

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft