Sichern und Wiederherstellen von Datenbanken in Azure SQL Edge
Wichtig
Azure SQL Edge wird am 30. September 2025 eingestellt. Weitere Informationen und Migrationsoptionen finden Sie im Einstellungshinweis.
Hinweis
Azure SQL Edge unterstützt die ARM64-Plattform nicht mehr.
Azure SQL Edge basiert auf der neuesten Version der Microsoft SQL Server-Datenbank-Engine. Die Lösung bietet ähnliche Funktionen zum Sichern und Wiederherstellen von Datenbanken wie SQL Server unter Linux und in Containern ausgeführte SQL Server-Instanzen. Mit der Sicherungs- und Wiederherstellungskomponente wird eine wichtige Vorkehrung zum Schutz von in Azure SQL Edge-Datenbanken gespeicherten Daten bereitgestellt.
Um die Gefahr eines schwerwiegenden Datenverlusts zu minimieren, sollten Sie Ihre Datenbanken regelmäßig sichern, damit Änderungen an Ihren Daten nicht verloren gehen. Eine gut geplante Sicherungs- und Wiederherstellungsstrategie hilft, Datenbanken vor Datenverlusten zu schützen, die durch verschiedene Fehler verursacht werden können. Testen Sie Ihre Strategie, indem Sie einen Sicherungssatz und anschließend Ihre Datenbank wiederherstellen, um sich auf die effektive Reaktion auf einen Notfall vorzubereiten.
Weitere Informationen dazu, warum Sicherungen wichtig sind, finden Sie unter Sichern und Wiederherstellen von SQL Server-Datenbanken.
Azure SQL Edge ermöglicht die Sicherung in und Wiederherstellung aus lokalem Speicher und Azure-Blobs. Weitere Informationen finden Sie unter Sicherung und Wiederherstellung von SQL Server mit Azure Blob Storage und SQL Server-Sicherung über URLs.
Sichern einer Datenbank in Azure SQL Edge
Azure SQL Edge unterstützt die gleichen Sicherungstypen wie SQL Server. Eine vollständige Liste finden Sie in der Übersicht für die Sicherung.
Wichtig
In Azure SQL Edge erstellte Datenbanken verwenden standardmäßig das einfache Wiederherstellungsmodell. Daher können für diese Datenbanken keine Protokollsicherungen erfolgen. Wenn dies erforderlich sein sollte, muss ein Administrator das Modell für die Datenbankwiederherstellung in das vollständige Wiederherstellungsmodell ändern. Eine vollständige Liste der von SQL Server unterstützten Wiederherstellungsmodelle finden Sie in der Übersicht über das Wiederherstellungsmodell.
Sichern auf lokalem Datenträger
Im folgenden Beispiel erstellen Sie mit dem Transact-SQL-Befehl BACKUP DATABASE
eine Datenbanksicherung im Container. Im Rahmen dieses Beispiels erstellen Sie einen neuen Ordner mit dem Namen backup, in dem die Sicherungsdateien gespeichert werden.
Erstellen Sie einen Ordner für die Sicherungen. Führen Sie diesen Befehl auf dem Host aus, auf dem sich der Azure SQL Edge-Container befindet. Ersetzen Sie im folgenden Befehl <
durch den Namen des Azure SQL Edge-Containers in Ihrer Bereitstellung. sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Stellen Sie mithilfe von SQL Server Management Studio (SSMS) oder Azure Data Studio eine Verbindung mit der Azure SQL Edge-Instanz her. Führen Sie den Befehl
BACKUP DATABASE
aus, um die Sicherung der Benutzerdatenbank zu erstellen. Im folgenden Beispiel erstellen Sie eine Sicherung der DatenbankIronOreSilicaPrediction
.BACKUP DATABASE [IronOreSilicaPrediction] TO DISK = N'/var/opt/mssql/backup/IronOrePredictDB.bak' WITH NOFORMAT, NOINIT, NAME = N'IronOreSilicaPrediction-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10; GO
Nachdem Sie den Befehl ausgeführt haben und die Sicherung der Datenbank erfolgreich war, werden im Abschnitt „Ergebnisse“ von SQL Server Management Studio oder Azure Data Studio Meldungen ähnlich den folgenden angezeigt.
10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. 100 percent processed. Processed 51648 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction' on file 1. Processed 2 pages for database 'IronOreSilicaPrediction', file 'IronOreSilicaPrediction_log' on file 1. BACKUP DATABASE successfully processed 51650 pages in 3.588 seconds (112.461 MB/sec). Completion time: 2020-04-09T23:54:48.4957691-07:00
Auf URL sichern
Azure SQL Edge unterstützt Sicherungen in Seitenblobs und in Blockblobs. Weitere Informationen finden Sie unter Sicherung: Blockblobs vs. Seitenblobs. Im folgenden Beispiel wird die Datenbank IronOreSilicaPrediction
in einem Blockblob gesichert.
Um Sicherungen in Blockblobs zu konfigurieren, generieren Sie zuerst ein SAS-Token (Shared Access Signature), mit dem SQL Server-Anmeldeinformationen für Azure SQL Edge erstellt werden können. Das Skript erstellt eine SAS, die einer gespeicherten Zugriffsrichtlinie zugeordnet ist. Weitere Informationen finden Sie unter Shared Access Signatures (SAS), Teil 1: Grundlegendes zum SAS-Modell. Das Skript schreibt auch den T-SQL-Befehl, der zum Erstellen der Anmeldeinformationen unter SQL Server erforderlich ist. Im folgenden Skript wird davon ausgegangen, dass Sie bereits über ein Azure-Abonnement mit einem Speicherkonto und einen Speichercontainer für die Sicherungen verfügen.
# Define global variables for the script $subscriptionName='<your subscription name>' # the name of subscription name you will use $resourcegroupName = '<your resource group name>' # the name of resource group you will use $storageAccountName= '<your storage account name>' # the storage account name you will use for backups $containerName= '<your storage container name>' # the storage container name to which you will attach the SAS policy with its SAS token $policyName = 'SASPolicy' # the name of the SAS policy # adds an authenticated Azure account for use in the session Login-AzAccount # set the tenant, subscription and environment for use in the rest of Select-AzSubscription -Subscription $subscriptionName # Generate the SAS token $sa = Get-AzStorageAccount -ResourceGroupName $resourcegroupName -Name $storageAccountName $storagekey = Get-AzStorageAccountKey -ResourceGroupName $resourcegroupName -Name $storageAccountName $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storagekey[0].Value $cbc = Get-AzStorageContainer -Name $containerName -Context $storageContext $policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission "rwld" $sas = New-AzStorageContainerSASToken -Policy $policyName -Context $storageContext -Container $containerName Write-Host 'Shared Access Signature= '$($sas.Substring(1))'' # Outputs the Transact SQL to the clipboard and to the screen to create the credential using the Shared Access Signature Write-Host 'Credential T-SQL' $tSql = "CREATE CREDENTIAL [{0}] WITH IDENTITY='Shared Access Signature', SECRET='{1}'" -f $cbc.CloudBlobContainer.Uri.AbsoluteUri,$sas.Substring(1) $tSql | clip Write-Host $tSql
Nachdem das Skript erfolgreich ausgeführt wurde, kopieren Sie den Befehl
CREATE CREDENTIAL
in ein Abfragetool. Stellen Sie dann eine Verbindung mit einer Instanz von SQL Server her, und führen Sie den Befehl zur Erstellung der Anmeldeinformationen mit der SAS aus.Stellen Sie mithilfe von SQL Server Management Studio oder Azure Data Studio eine Verbindung mit der Azure SQL Edge-Instanz her, und erstellen Sie die Anmeldeinformationen dann mithilfe des Befehls im vorherigen Schritt. Stellen Sie sicher, dass Sie den Befehl
CREATE CREDENTIAL
durch die tatsächliche Ausgabe im vorherigen Schritt ersetzen.IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';
Der folgende Befehl erstellt eine Sicherung von
IronOreSilicaPrediction
im Azure Storage-Container.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Wiederherstellen einer Datenbank in Azure SQL Edge
In Azure SQL Edge kann eine Wiederherstellung mithilfe eines lokalen Datenträgers, Netzwerkspeicherorts oder Azure Blob Storage-Kontos erfolgen. Weitere Informationen zur Wiederherstellung finden Sie in der Übersicht über die Wiederherstellung. Eine Übersicht über das einfache Wiederherstellungsmodell in SQL Server finden Sie unter Vollständige Datenbankwiederherstellungen (einfaches Wiederherstellungsmodell).
Wichtig
Datenbanken, die in Azure SQL Edge erstellt wurden, können nicht in einer Instanz von Microsoft SQL Server oder Azure SQL wiederhergestellt werden. Außerdem kann eine Datenbank, die in Microsoft SQL Server oder Azure SQL erstellt wurde, in Azure SQL Edge wiederhergestellt werden, sofern die Datenbank keine der Funktionen enthält, die von Azure SQL Edge nicht unterstützt werden.
Wiederherstellen von einem lokalem Datenträger
In diesem Beispiel wird die Sicherung von IronOreSilicaPrediction
verwendet, die Sie im vorherigen Beispiel erstellt haben. Sie stellen sie nun als neue Datenbank mit einem anderen Namen wieder her.
Wenn die Datenbanksicherungsdatei nicht bereits im Container vorhanden ist, können Sie die Datei mit dem folgenden Befehl in den Container kopieren. Im folgenden Beispiel wird davon ausgegangen, dass die Sicherungsdatei auf dem lokalen Host vorhanden ist und in den Ordner „/var/opt/mssqlbBackup“ in einem Azure SQL Edge-Container mit dem Namen sql1 kopiert wird.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Stellen Sie mithilfe von SQL Server Management Studio oder Azure Data Studio eine Verbindung mit der Azure SQL Edge-Instanz her, um den Wiederherstellungsbefehl auszuführen. Im folgenden Beispiel wird
IronOrePredictDB.bak
wiederhergestellt, um die neue DatenbankIronOreSilicaPrediction_2
zu erstellen.Restore FilelistOnly from disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak' Restore Database IronOreSilicaPrediction_2 From disk = N'/var/opt/mssql/backup/IronOrePredictDB.bak' WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.mdf', MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_2.ldf';
Nach Ausführung des Wiederherstellungsbefehls wird bei erfolgreichem Wiederherstellungsvorgang im Ausgabefenster eine Meldung ähnlich der folgenden angezeigt.
Processed 51648 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction' on file 1. Processed 2 pages for database 'IronOreSilicaPrediction_2', file 'IronOreSilicaPrediction_log' on file 1. RESTORE DATABASE successfully processed 51650 pages in 6.543 seconds (61.670 MB/sec). Completion time: 2020-04-13T23:49:21.1600986-07:00
Wiederherstellen über URL
Azure SQL Edge unterstützt auch das Wiederherstellen einer Datenbank aus einem Azure Storage-Konto. Wiederherstellungen können aus Sicherungen von Blockblobs oder Seitenblobs erfolgen. Im folgenden Beispiel wird die Datenbank-Sicherungsdatei IronOreSilicaPrediction_2020_04_16.bak
aus einem Blockblob wiederhergestellt, um die Datenbank IronOreSilicaPrediction_3
zu erstellen.
RESTORE DATABASE IronOreSilicaPrediction_3
FROM URL = 'https://mystorageaccount.blob.core.windows.net/mysecondcontainer/IronOreSilicaPrediction_2020_04_16.bak'
WITH MOVE 'IronOreSilicaPrediction' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.mdf',
MOVE 'IronOreSilicaPrediction_log' TO '/var/opt/mssql/data/IronOreSilicaPrediction_Primary_3.ldf',
STATS = 10;