Migrieren von Datenbanken mit nativer Sicherung und Wiederherstellung
Viele SQL Server-Experten betrachten die Migration mithilfe eines Sicherungs- und Wiederherstellungsprozesses als einfachste Migrationsmethode.
Microsoft Azure Blob Storage unterstützt zwei Arten von Blobs: Block- und Seitenblobs. Für SQL Server 2016 und spätere Versionen werden Blockblobs bevorzugt. Die Wahl zwischen Block- und Seitenblobs hängt von der Art der verwendeten Anmeldeinformationen ab – Shared Access Signature für Blockblob und Speicherschlüssel für Seitenblob.
Im Vergelich zu einem Seitenblob bietet die Sicherung auf einem Blockblob einige Vorteile, wie z. B. eine sicherere Autorisierung, eine verbesserte Sicherungsperformance und Unterstützung für größere Datenbanksicherungen.
Wenn Sie sich für eine vollständige Datenbanksicherung in einer Datei entscheiden, können Sie die lokalen Sicherungsdateien entweder über den Azure Data Explorer oder das AzCopy Befehlszeilendienstprogramm auf eine Azure-VM übertragen.
Sicherung und Wiederherstellung mit Azure Blob Storage in SQL Server
Für eine Sicherung per URL wird ein Azure-Speicherkonto benötigt, und es wird der Azure Blob Storage-Dienst verwendet. Innerhalb des Speicherkontos gibt es Container, und die Blobs werden dort gespeichert. Im Gegensatz zu einem Pfad auf Ihrer lokalen Festplatte sieht der Pfad zu einer Sicherungsdatei etwa so aus: https://{AccountName}.blob.core.windows.net/{ContainerName}/MyDatabase.bak
. Sie können zusätzliche Ordnernamen unter Ihrem Container hinzufügen, um die Identifizierung der Sicherungen zu erleichtern (z. B. FULL, DIFF, LOG).
Um eine Sicherung auf oder eine Wiederherstellung von einer URL durchzuführen, muss eine Authentifizierung zwischen der SQL Server-Instanz und Azure hergestellt werden. Denken Sie daran, dass SQL Server innerhalb einer Azure-VM nicht weiß, dass es auf Azure ausgeführt wird.
Wenn Sie SQL Server-Anmeldeinformationen erstellen, haben Sie zwei Optionen für die Authentifizierung:
- Der Name und der Zugriffsschlüssel des Azure-Speicherkontos, wobei die Sicherung als Seitenblob gespeichert wird
- Eine SAS (Shared Access Signature), wobei die Sicherung als Blockblob gespeichert wird. Bei größeren Datenbanken können Sie eine Sicherung in mehreren Blockblobs erstellen.
Tipp
Für größere Datenbanken werden komprimierte Datenbanksicherungen empfohlen.
Die Wiederherstellung von einer URL ist genauso einfach wie die Wiederherstellung von einem Datenträger oder einer Netzwerkfreigabe. Wählen Sie im SQL Server Management Studio im Assistenten die URL als Sicherungsmedientyp aus. Wenn Sie Transact-SQL verwenden, würden Sie statt FROM DISK
die Option FROM URL
mit dem entsprechenden Speicherort und den Namen der Sicherungsdatei(en) verwenden.
Hinweis
Sicherungssätze im Stripesetformat werden unterstützt und sind aus Performance-Gründen zu empfehlen. Darüber hinaus sollten Sie Sicherungen, wenn sie kleiner als 200 GB sind, stripen, um den Grenzwert für Blöcke zu umgehen.
Führen Sie die folgende Anweisung aus, um ein Transaktionsprotokoll zu sichern.
BACKUP LOG contoso
TO URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso202003271200.trn'
Führen Sie die folgende Anweisung aus, um eine vollständige Datenbanksicherung zurückzuspielen, ohne sie wiederherzustellen, so dass eine Differenz- oder Transaktionsprotokoll-Sicherung durchgeführt werden kann.
RESTORE DATABASE contoso
FROM URL = 'https://myacc.blob.core.windows.net/mycontainer/contoso20200327.bak'
WITH NORECOVERY