Kopieren einer transaktionskonsistenten Kopie einer Datenbank in Azure SQL-Datenbank
Gilt für::Azure SQL-Datenbank
Azure SQL-Datenbank bietet mehrere Methoden zum Erstellen einer Kopie einer vorhandenen Datenbank auf demselben logischen Azure SQL-Datenbankserver oder einem anderen logischen Server. Sie können eine Datenbank über das Azure-Portal, PowerShell, die Azure CLI oder Transact-SQL kopieren.
Hinweis
Microsoft Entra ID war zuvor als Azure Active Directory (Azure AD) bekannt.
Übersicht
Bei einer Datenbankkopie handelt es sich um eine im Hinblick auf Transaktionen konsistente Momentaufnahme der Quelldatenbank zum Zeitpunkt, wenn die Kopieranforderung initiiert wurde. Sie können denselben logischen Server oder einen anderen logischen Server für die Kopie auswählen. Außerdem können Sie die Sicherungsredundanz und die Computegröße der Quelldatenbank beibehalten oder eine andere Sicherungsspeicherredundanz und/oder Computegröße innerhalb derselben Dienstebene verwenden. Es ist auch möglich, eine Datenbank der Dienstebene Standard auf die Dienstebene Standard oder General Purpose und eine Datenbank der Dienstebene Premium auf die Dienstebene Premium oder Business Critical zu kopieren.
Nach Abschluss der Kopie ist die neue Datenbank eine voll funktionsfähige und unabhängige Datenbank für die Quelldatenbank. Die Anmeldungen, Benutzer und Berechtigungen in der kopierten Datenbank werden unabhängig von der Quelldatenbank verwaltet. Die Kopie wird mithilfe der Georeplikationstechnik erstellt. Sobald das Replikat-Seeding abgeschlossen ist, wird der Georeplikationslink automatisch beendet. Alle Anforderungen zur Nutzung der Georeplikation gelten für den Datenbank-Kopiervorgang. Weitere Informationen finden Sie unter Aktive Georeplikation – Übersicht.
Hinweis
Das Azure-Portal, PowerShell und die Azure CLI bieten keine Unterstützung für das Kopieren von Datenbanken in ein anderes Abonnement.
Datenbankkopie für Hyperscale-Datenbanken
Bei Datenbanken in der Hyperscale-Dienstebene bestimmt die Zieldatenbank, ob es sich um eine schnelle Kopie oder eine Kopie nach Datengröße handelt:
Schnelles Kopieren: Wenn der Kopiervorgang in derselben Region wie die Quelle erfolgt, wird die Kopie aus den Momentaufnahmen von Blobs erstellt. Diese Kopie ist unabhängig von der Datenbankgröße ein schneller Vorgang.
Kopie der Größe der Daten: Wenn sich die Zieldatenbank in einer anderen Region befindet als die Quelldatenbank oder wenn sich die Redundanz des Datenbanksicherungsspeichers (lokal, zonenbasiert, geografisch) der Zieldatenbank von der der Quelldatenbank unterscheidet, ist der Kopiervorgang ein Vorgang der Größe der Daten. Die für das Kopieren benötigte Zeit ist nicht direkt proportional zur Größe, da Seitenserverblobs parallel kopiert werden.
Anmeldungen in der Datenbankkopie
Wenn Sie eine Datenbank auf denselben logischen Server kopieren, können dieselben Anmeldungen in beiden Datenbanken verwendet werden. Der Sicherheitsprinzipal, den Sie zum Kopieren der Datenbank verwenden, wird zum Datenbankbesitzer der neuen Datenbank.
Wenn Sie eine Datenbank auf einen anderen logischen Server kopieren, wird der Sicherheitsprinzipal, der den Kopiervorgang auf dem logischen Zielserver initiiert hat, zum Besitzer der neuen Datenbank.
Ungeachtet des Zielservers werden alle Datenbankbenutzer, ihre Berechtigungen und ihre Sicherheits-IDs (SIDs) in die Datenbankkopie kopiert. Durch die Verwendung von eigenständigen Datenbankbenutzern für den Datenzugriff stellen Sie sicher, dass die kopierte Datenbank die gleichen Benutzeranmeldeinformationen verwendet, sodass sofort nach Abschluss des Kopiervorgang ein Zugriff mit denselben Anmeldeinformationen möglich ist.
Wenn Sie Anmeldungen auf Serverebene für den Datenzugriff verwenden und die Datenbank auf einen anderen Server kopieren, funktioniert der anmeldungsbasierte Zugriff möglicherweise nicht. Dies kann passieren, da die Anmeldungen nicht auf dem logischen Zielserver vorhanden sind oder dass diese Kennwörter und Sicherheits-IDs (SIDs) unterschiedlich sind. Weitere Informationen zum Verwalten von Anmeldungen beim Kopieren einer Datenbank auf einen anderen Server finden Sie unter Konfigurieren und Verwalten der Sicherheit von Azure SQL-Datenbank für die Geowiederherstellung oder den Failover. Nachdem der Kopiervorgang auf einem anderen logischen Server erfolgreich ausgeführt wurde und bevor andere Benutzer erneut zugeordnet werden, kann sich nur die dem Datenbankbesitzer zugeordnete Anmeldung anmelden, oder der Serveradministrator kann sich bei der kopierten Datenbank anmelden. Informationen zum Auflösen von Anmeldungen nach Abschluss des Kopiervorgangs finden Sie unter Auflösen von Anmeldungen.
Kopieren mithilfe des Azure-Portals
Um eine Datenbank mithilfe des Azure-Portal zu kopieren, öffnen Sie die Seite für die Datenbank und wählen dann Kopieren aus, um die Seite SQL-Datenbank erstellen – Datenbank kopieren zu öffnen. Füllen Sie die Werte für den logischen Zielserver aus, in den Sie die Datenbank kopieren möchten.
Kopieren einer Datenbank
Sie können eine Datenbank mithilfe von PowerShell, der Azure CLI und Transact-SQL (T-SQL) kopieren.
Verwenden Sie in PowerShell das Cmdlet New-AzSqlDatabaseCopy.
Wichtig
Das PowerShell-Modul Azure Resource Manager (AzureRM) wurde am 29. Februar 2024 nicht mehr unterstützt. Alle zukünftigen Entwicklungen sollten das Az.Sql-Modul verwenden. Benutzern wird empfohlen, von AzureRM zum Az PowerShell-Modul zu migrieren, um fortgesetzte Unterstützung und Updates sicherzustellen. Das AzureRM-Modul wird nicht mehr verwaltet oder unterstützt. Die Argumente für die Befehle im Az PowerShell-Modul und in den AzureRM-Modulen sind wesentlich identisch. Weitere Informationen zur Kompatibilität finden Sie unter Einführung in das neue Az PowerShell-Modul.
New-AzSqlDatabaseCopy -ResourceGroupName "<resourceGroup>" -ServerName $sourceserver -DatabaseName "<databaseName>" `
-CopyResourceGroupName "myResourceGroup" -CopyServerName $targetserver -CopyDatabaseName "CopyOfMySampleDatabase"
Der Datenbank-Kopiervorgang ist ein asynchroner Vorgang, aber die Zieldatenbank wird sofort erstellt, nachdem die Anforderung akzeptiert wurde. Wenn Sie den Kopiervorgang abbrechen müssen, während er noch ausgeführt wird, sollten Sie die Zieldatenbank mit dem Cmdlet Remove-AzSqlDatabase löschen.
Ein vollständiges PowerShell-Beispielskript finden Sie unter Verwenden von PowerShell zum Kopieren einer Datenbank auf einen neuen logischen Server.
Überwachen des Fortschritts des Kopiervorgangs
Überwachen Sie den Kopiervorgang, indem Sie die Ansichten sys.databases, sys.dm_database_copies und sys.dm_operation_status abfragen. 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 Sichtsys.databases
für die neue Datenbank den WertSUSPECT
. Führen Sie die DROP-Anweisung in der neuen Datenbank aus, und wiederholen Sie den Vorgang später noch einmal. - Ist der Kopiervorgang erfolgreich, enthält die Spalte
state_desc
der Sichtsys.databases
für die neue Datenbank den WertONLINE
. Der Kopiervorgang ist abgeschlossen, und die neue Datenbank ist eine normale Datenbank, die unabhängig von der Quelldatenbank geändert werden kann.
Hinweis
Wenn Sie den Kopiervorgang während der Ausführung abbrechen möchten, führen Sie die Anweisung DROP DATABASE für die neue Datenbank aus.
Wichtig
Falls Sie eine Kopie mit einem deutlich niedrigeren Dienstziel als die Quelle erstellen müssen, verfügt die Zieldatenbank ggf. nicht über genügend Ressourcen für die Durchführung des Seedingprozesses. Möglicherweise schlägt dadurch der Kopiervorgang fehl. Verwenden Sie in diesem Szenario eine Geowiederherstellungsanforderung, um eine Kopie auf einem anderen logischen Server und/oder einer anderen Region zu erstellen. Weitere Informationen finden Sie unter Wiederherstellen einer Azure SQL-Datenbank mit Datenbanksicherungen.
Berechtigungen
Zum Erstellen einer Datenbankkopie müssen Sie über die folgenden Rollen verfügen:
- Besitzer des Abonnements
- Rolle „Mitwirkender von SQL Server“ oder
- Benutzerdefinierte Rolle auf dem logischen Quellserver mit folgenden Berechtigungen:
Microsoft.Sql/servers/databases/read
Microsoft.Sql/servers/databases/write
und
- Benutzerdefinierte Rolle auf dem logischen Zielserver mit folgenden Berechtigungen:
Microsoft.Sql/servers/read
Microsoft.Sql/servers/databases/read
Microsoft.Sql/servers/databases/write
Zum Abbrechen eines Datenbank-Kopiervorgangs müssen Sie über die folgenden Rollen verfügen:
- Besitzer des Abonnements
- Rolle „Mitwirkender von SQL Server“ oder
- Benutzerdefinierte Rolle für die Quell- und Zieldatenbank mit den folgenden Berechtigungen:
Microsoft.Sql/servers/databases/delete
Zum Verwalten der Datenbankkopie über das Azure-Portal benötigen Sie außerdem die folgenden Berechtigungen:
Microsoft.Resources/subscriptions/resources/read
Microsoft.Resources/deployments/read
Microsoft.Resources/deployments/write
Microsoft.Resources/deployments/operationstatuses/read
Falls Sie die Operationen unter „Deployments“ in der Ressourcengruppe des Portals, Operationen über mehrere Ressourcenanbieter einschließlich SQL-Operationen sehen möchten, so benötigen Sie diese zusätzlichen Berechtigungen:
Microsoft.Resources/subscriptions/resourcegroups/deployments/operations/read
Microsoft.Resources/subscriptions/resourcegroups/deployments/operationstatuses/read
Auflösen von Anmeldungen
Nachdem die neue Datenbank auf dem logischen Zielserver online ist, verwenden Sie die ALTER USER-Anweisung, um die Benutzer aus der neuen Datenbank den Anmeldungen auf dem logischen Zielserver neu zuzuordnen. Informationen zum Auflösen von verwaisten Benutzern finden Sie unter Problembehandlung bei verwaisten Benutzern. Siehe auch Konfigurieren und Verwalten der Sicherheit von Azure SQL-Datenbank für die Geowiederherstellung oder den Failover.
Für alle Benutzer werden in der neuen Datenbank die Berechtigungen beibehalten, über die sie auch in der Quelldatenbank verfügt haben. Der Benutzer, der das Kopieren der Datenbank initiiert hat, wird zum Datenbankbesitzer der neuen Datenbank. Nachdem der Kopiervorgang erfolgreich abgeschlossen wurde und bevor andere Benutzer neu zugeordnet werden, kann sich nur der Datenbankbesitzer bei der neuen Datenbank anmelden.
Informationen zum Verwalten von Benutzern und Anmeldungen beim Kopieren einer Datenbank auf einen anderen logischen Server finden Sie unter Konfigurieren und Verwalten der Azure SQL-Datenbanksicherheit für Geowiederherstellung oder Failover.
Fehler beim Kopieren von Datenbanken
Die folgenden Fehler können beim Kopieren einer Datenbank in Azure SQL-Datenbank auftreten. Weitere Informationen finden Sie unter Kopieren einer transaktionskonsensalen Kopie einer Datenbank in der Azure SQL-Datenbank.
Fehlercode | severity | BESCHREIBUNG |
---|---|---|
40635 | 16 | Der Client mit der IP-Adresse "%.*ls" ist vorübergehend deaktiviert. |
40637 | 16 | Das Kopieren von Datenbanken ist derzeit deaktiviert. |
40561 | 16 | Fehler beim Kopieren der Datenbank. Die Quell- oder die Zieldatenbank ist nicht vorhanden. |
40562 | 16 | Fehler beim Kopieren der Datenbank. Die Quelldatenbank wurde gelöscht. |
40563 | 16 | Fehler beim Kopieren der Datenbank. Die Zieldatenbank wurde gelöscht. |
40564 | 16 | Interner Fehler beim Kopieren der Datenbank. Löschen Sie die Zieldatenbank, und wiederholen Sie den Vorgang. |
40565 | 16 | Fehler beim Kopieren der Datenbank. Es darf jeweils nur eine Datenbankkopie von derselben Quelle erstellt werden. Löschen Sie die Zieldatenbank, und versuchen Sie es später erneut. |
40566 | 16 | Interner Fehler beim Kopieren der Datenbank. Löschen Sie die Zieldatenbank, und wiederholen Sie den Vorgang. |
40567 | 16 | Interner Fehler beim Kopieren der Datenbank. Löschen Sie die Zieldatenbank, und wiederholen Sie den Vorgang. |
40568 | 16 | Fehler beim Kopieren der Datenbank. Die Quelldatenbank ist nicht mehr verfügbar. Löschen Sie die Zieldatenbank, und wiederholen Sie den Vorgang. |
40569 | 16 | Fehler beim Kopieren der Datenbank. Die Zieldatenbank ist nicht mehr verfügbar. Löschen Sie die Zieldatenbank, und wiederholen Sie den Vorgang. |
40570 | 16 | Interner Fehler beim Kopieren der Datenbank. Löschen Sie die Zieldatenbank, und versuchen Sie es später erneut. |
40571 | 16 | Interner Fehler beim Kopieren der Datenbank. Löschen Sie die Zieldatenbank, und versuchen Sie es später erneut. |
Zugehöriger Inhalt
- Autorisieren des Datenbankzugriffs für Azure SQL-Datenbank, SQL Managed Instance und Azure Synapse Analytics
- Konfigurieren und Verwalten der Sicherheit von Azure SQL-Datenbank für die Geowiederherstellung oder den Failover
- Exportieren in eine BACPAC-Datei – Azure SQL-Datenbank und Azure SQL Managed Instance