Kopieren oder Verschieben einer Datenbank – Azure SQL Managed Instance

Gilt für: Azure SQL Managed Instance

In diesem Artikel wird beschrieben, wie Sie eine Datenbank online zwischen Instanzen in Azure SQL Managed Instance kopieren oder verschieben. Sowohl Datenbankkopien- als auch Verschiebungsvorgänge werden in verschiedenen Azure-Abonnements innerhalb desselben Azure-Mandanten unterstützt.

Übersicht

Sie können einen Kopier- oder Verschiebevorgang einer Datenbank online zwischen verwalteten Instanzen ausführen, indem Sie Always On-Verfügbarkeitsgruppen verwenden. Das Feature zum Kopieren und Verschieben erstellt eine neue Datenbank auf der Zielinstanz als Kopie der Quelldatenbank. Mit diesem Feature erfolgt die Datenreplikation kontinuierlich, asynchron und in Quasi-Echtzeit.

Wenn Sie Ihre Datenbank kopieren, bleibt die Quelldatenbank während und nach Abschluss des Vorgangs online.

Umgekehrt wird beim Verschieben einer Datenbank die Quelldatenbank gelöscht, nachdem der Vorgang abgeschlossen ist.

Sie können mehrere Kopier- und -Verschiebevorgänge für Datenbanken von der verwalteten Quellinstanz in eine oder mehrere Zielinstanzen ausführen.

Das Kopieren und Verschieben einer Datenbank unterscheidet sich von der Zeitpunktwiederherstellung (Point-in-Time Restore, PITR), da nach Abschluss des Vorgangs eine Kopie der Datenbank erstellt wird. Bei der Zeitpunktwiederherstellung wird eine Kopie der Datenbank aus einem angegebenen Moment in der Vergangenheit erstellt.

Wichtig

Wenn Sie eine Datenbank an ein neues Ziel verschieben, werden vorhandene Sicherungen für die Zeitpunktwiederherstellung nicht mit der Datenbank verschoben und sind nicht verfügbar. Die Datenbank startet eine neue Sicherungskette auf der Zielinstanz, sobald der Verschiebevorgang abgeschlossen ist.

Verwenden dieses Features

Das Verschieben oder Kopieren einer Datenbank ist für Folgendes nützlich:

  • Verwalten von Datenbankwachstum und Leistungsanforderungen.
  • Verteilen von Workloads auf mehrere verwaltete Instanzen.
  • Verschieben von Datenbanken in eine Instanz mit mehr verfügbaren Ressourcen zur Verarbeitung der Workload.
  • Konsolidieren mehrerer Datenbanken aus mehreren Instanzen.
  • Erstellen einer Datenbankparität zwischen Entwicklungs-, Test- und Produktionsumgebungen.

Workflow

Im Folgenden sehen Sie den Workflow für das Kopieren oder Verschieben einer Datenbank:

  1. Wählen Sie die Datenbank, die verwaltete Quellinstanz und die Zielinstanz aus, und starten Sie den Vorgang.

    Für die Datenbank wird ein Seeding auf den Zielserver ausgeführt. Überprüfen Sie den Status, um zu ermitteln, ob der Vorgang noch ausgeführt wird oder ob er bereits abgeschlossen wurde.

  2. Nach Abschluss des Seedings wird als Vorgangsstatus Zum Abschluss bereit angezeigt.

    Bis zum manuellen Abschluss des Vorgangs werden sämtliche Änderungen, die an der Quelldatenbank vorgenommen werden, auf die Zieldatenbank angewandt. Sie können den Vorgang jederzeit abbrechen. Sie haben 24 Stunden Zeit, um den Vorgang explizit abzuschließen. Wenn der Vorgang nicht innerhalb von 24 Stunden abgeschlossen werden kann, wird er automatisch abgebrochen, und die Zieldatenbank wird gelöscht.

  3. Nachdem der Vorgang manuelle abgeschlossen wurde, geht Ihre Zieldatenbank online und ist für Lese- und Schreibworkloads bereit.

  4. Wenn Sie die Datenbank verschieben möchten, wird die Quelldatenbank gelöscht. Wenn Sie die Datenbank kopieren, bleibt die Quelldatenbank online, die Datensynchronisation wird jedoch beendet.

Ein Beispielworkflow für einen Verschiebungsvorgang ist im folgenden Diagramm dargestellt:

Diagramm des Workflows eines Verschiebevorgangs

Der Entwurf des Datenbankverschiebungsvorgangs garantiert keinen Datenverlust. Wenn ein Benutzer den Verschiebungsvorgang abgeschlossen hat, akzeptiert die Quelldatenbank keine Arbeitslasten mehr, und die Transaktion wird in die Zieldatenbank repliziert. Erst dann wird die Zieldatenbank online und die Quelldatenbank gelöscht. Mit diesem Entwurf wird sichergestellt, dass alle Daten aus der Quelldatenbank in die Zieldatenbank verschoben werden.

Der Datenbankkopievorgang ähnelt dem Verschieben der Datenbank. Der einzige wichtige Unterschied besteht darin, wie der Vorgang endet. Durch das Abschließen des Datenbankkopievorgangs wird die Replikation des Transaktionsprotokolls in die Zieldatenbank beendet. Obwohl der Benutzer den Befehl explizit ausgibt, um den Kopiervorgang abzuschließen, steuert der Benutzer nicht genau den Moment, in dem die Protokollreplikation beendet wird. Schließlich sind Quell- und Zieldatenbanken online, unabhängig und bereit für Lese-/Schreibzugriff.

Voraussetzungen

Bevor Sie eine Datenbank kopieren oder verschieben können, müssen die folgenden Anforderungen erfüllt sein:

  • Sie müssen über Leseberechtigungen für die Ressourcengruppe verfügen, die die verwaltete Quellinstanz enthält, sowie über Schreibberechtigungen auf Datenbankebene für die Quell- und die Zielinstanzen.
  • Wenn sich die Quell- und Zielinstanzen in unterschiedlichen virtuellen Netzwerken befinden, muss Netzwerkkonnektivität zwischen den virtuellen Netzwerken der beiden Instanzen bestehen, z. B. durch Peering virtueller Azure-Netzwerke. Außerdem muss ein- und ausgehender Datenverkehr an Port 5022 und dem Portbereich 11000-11999 für das TCP-Protokoll zugelassen werden. Dies gilt für die Subnetze, in denen die Quell- und Zielinstanzen gehostet werden. Weitere Informationen finden Sie unter Einrichten der Netzwerkkonnektivität zwischen Instanzen in verschiedenen Azure VNets.

Kopieren oder Verschieben einer Datenbank

Sie können eine Datenbank über das Azure-Portal in eine andere verwaltete Instanz kopieren oder verschieben. Gehen Sie folgendermaßen vor:

  1. Navigieren Sie im Azure-Portal zu Ihrer verwalteten Instanz.

  2. Wählen Sie unter Datenverwaltung die Option Datenbanken aus.

  3. Wählen Sie mindestens eine Datenbank und dann am oberen Rand des Bereichs entweder Kopieren oder Verschieben aus.

    Wenn Sie Verschieben auswählen, wird die Quelldatenbank nach Abschluss des Vorgangs gelöscht, während die Quelldatenbank bei Kopieren nach Abschluss des Vorgangs online bleibt. Wenn Sie eine der beiden Optionen auswählen, wird die Seite Move Managed Database (Verwaltete Datenbank verschieben) oder Copy Managed Database (Verwaltete Datenbank kopieren) geöffnet. Nachdem die Seite geöffnet wurde, können Sie mehrere Datenbanken auswählen, die in den Vorgang einbezogen werden sollen.

    Screenshot der Seite „Datenbanken“ für Azure SQL Managed Instance mit hervorgehobenen Optionen „Verschieben“ und „Kopieren“

  4. Geben Sie im Bereich Quelldetails Informationen zur Quelldatenbank und zur verwalteten Instanz an.

  5. Geben Sie im Bereich Zieldetails Informationen zur verwalteten Zielinstanz an.

  6. Wählen Sie Review + Start (Überprüfen + Starten) aus, um Ihre Quell- und Zieldetails zu überprüfen, und wählen Sie dann Start aus, um den Vorgang zu starten.

    Wenn Sie Start auswählen, gelangen Sie wieder zur Seite Datenbanken für Ihre Instanz, auf der Sie den Fortschritt des Vorgangs überwachen können.

  7. Überprüfen Sie auf der Seite Datenbanken in der Spalte Vorgangsdetails, ob der Status Ihres Vorgangs Verschieben wird ausgeführt bzw. Kopieren wird ausgeführt lautet.

    Wenn Sie den Vorgang abbrechen müssen, können Sie die Option In Bearbeitung sowie die verwendete Datenbank und dann Vorgang abbrechen auswählen, um das Seeding zu beenden und die Zieldatenbank löschen.

    Screenshot der Seite „Datenbanken“ für Azure SQL Managed Instance, die zeigt, dass ein Kopiervorgang ausgeführt wird

  8. Überwachen Sie den Vorgang. Nach Abschluss des Seedings wird in der Spalte Vorgangsdetails der Status Verschieben bereit für den Abschluss oder Kopieren bereit für den Abschluss angezeigt.

  9. Wählen Sie Zum Abschluss bereit aus, um die Spalte Vorgangsdetails zu öffnen. Wählen Sie die Datenbank aus, die Sie kopieren oder verschieben möchten, und wählen Sie dann Abschließen aus, um den Vorgang abzuschließen und die Zieldatenbank online zu schalten.

    An der Quelldatenbank vorgenommene Änderungen werden während dieser Zeit in die Zieldatenbank repliziert, bis Sie Abschließen auswählen. Wenn der Vorgang nicht innerhalb von 24 Stunden abgeschlossen wird, wird er automatisch abgebrochen, und die Zieldatenbank wird gelöscht. Wenn Sie Abschließen auswählen, wird der Vorgang abgeschlossen, und Sie gelangen zurück zur Seite Datenbanken, auf der Sie überprüfen können, ob der Vorgang abgeschlossen wurde.

    Wenn Sie die Datenbank verschoben haben, ist der Datenbankname nicht verfügbar, da er jetzt offline ist.

Leistung von Kopier- und Verschiebungsvorgängen

Sowohl Datenbankkopie- als auch Verschiebungsvorgänge weisen zwei Phasen auf. Die erste Phase ist das initiale Seeding und die zweite die Replikation der Änderungen von der Quelldatenbank zur Zieldatenbank. Normalerweise ist das initiale Seeding die anspruchsvollere Phase des Vorgangs. Die Zeit, die für das initiale Seeding benötigt wird, hängt von der Größe der Daten und der Anzahl der aktiven Kopier- oder Verschiebungsvorgänge ab. Die Intensität des auf der Azure SQL Managed Instance an der Quelle und am Ziel stattfindenden Workloads und die Geschwindigkeit des Netzwerks zwischen Quelle und Ziel beeinflussen ebenfalls die Seeding-Geschwindigkeit. Unter optimalen Bedingungen und wenn die Konnektivität zwischen Quelle und Ziel über das empfohlene globale VNet-Peering hergestellt wird, beträgt die Seeding-Geschwindigkeit bis zu 360 GB pro Stunde. Der Seedingprozess und seine Geschwindigkeit können über den DMV sys.dm_hadr_physical_seeding_stats überwacht werden.

SELECT 
	role_desc,
	transfer_rate_bytes_per_second,
	transferred_size_bytes,
	database_size_bytes,
	start_time_utc,
	estimate_time_complete_utc,
	end_time_utc,
	local_physical_seeding_id
FROM
	sys.dm_hadr_physical_seeding_stats;

Begrenzungen

Beachten Sie die folgenden Einschränkungen des Features zum Kopieren und Verschieben:

  • Die Quell- und Zielinstanzen dürfen nicht identisch sein.
  • Sowohl die Quell- als auch die Zielinstanzen müssen sich in derselben Azure-Region.
  • Sie können nur Benutzerdatenbanken kopieren und verschieben. Das Kopieren und Verschieben von Systemdatenbanken wird nicht unterstützt.
  • Für eine Datenbank kann jeweils nur ein einziger Verschiebe- oder Kopiervorgang durchgeführt werden.
  • Für die Quellinstanz können bis zu acht Kopier- oder Verschiebevorgänge gleichzeitig ausgeführt werden. Sie können mehr als acht Vorgänge starten, aber einige werden in die Warteschlange eingereiht und später verarbeitet, wie vom Dienst verwaltet.
  • Sie können eine Datenbank während eines Kopier- oder Verschiebevorgangs nicht umbenennen.
  • Datenbanktags werden nicht mit Kopier- oder Verschiebungsvorgängen kopiert.
  • Durch das Kopieren und Verschieben von Datenbanken werden keine Sicherungen für die Zeitpunktwiederherstellung kopiert oder verschoben.
  • Sie können keine Datenbank kopieren oder verschieben, die Teil einer Failovergruppe ist oder den Managed Instance-Link verwendet.
  • Die verwaltete Quell- oder Zielinstanz sollte nicht mit einer Failovergruppe (georedundante Notfallwiederherstellung) konfiguriert werden.
  • Sie müssen die Transaktionsreplikation, das Change Data Capture-Feature (CDC) oder verteilte Transaktionen neu konfigurieren, nachdem Sie eine Datenbank verschoben haben, die diese Features nutzt.
  • Wenn die Quelldatenbank einen kundenseitig verwalteten Schlüssel (Customer Managed Key, CMK) als TDE-Schutz verwendet, muss die Zielinstanz zum Kopieren oder Bewegen der Datenbank zur SQL Managed Zielinstance Zugriff auf denselben Schlüssel haben, der zur Verschlüsselung der Quelldatenbank in Azure Key Vault verwendet wurde.
  • Eine Datenbank aus einer Instanz, die mit der Always-up-to-date-Updaterichtlinie konfiguriert ist, kann nicht kopiert oder in eine Instanz verschoben werden, die mit der SQL Server 2022-Updaterichtlinie konfiguriert ist. Sobald eine Datenbank aus einer Instanz, die mit der SQL Server 2022-Updaterichtlinie konfiguriert ist, in eine Instanz kopiert oder verschoben wird, die mit der Always-up-to-date-Updaterichtlinie konfiguriert ist, kann sie nicht mehr in eine Instanz kopiert oder verschoben werden, die mit der SQL Server 2022-Updaterichtlinie konfiguriert ist.

Weitere Dokumentation zum Kopieren und Verschieben von Datenbanken.

Weitere Datenverschiebungsoptionen finden Sie unter: