Tworzenie kopii zapasowych i przywracanie baz danych w usłudze Azure SQL Edge
Ważne
Usługa Azure SQL Edge zostanie wycofana 30 września 2025 r. Aby uzyskać więcej informacji i opcji migracji, zobacz powiadomienie o wycofaniu.
Uwaga
Usługa Azure SQL Edge nie obsługuje już platformy ARM64.
Usługa Azure SQL Edge jest oparta na najnowszych wersjach aparatu bazy danych Microsoft SQL Database. Zapewnia podobne możliwości tworzenia kopii zapasowych i przywracania bazy danych do programu SQL Server w systemie Linux i programie SQL Server uruchomionym w kontenerach. Składnik tworzenia i przywracania kopii zapasowych zapewnia podstawowe zabezpieczenia ochrony danych przechowywanych w bazach danych usługi Azure SQL Edge.
Aby zminimalizować ryzyko katastrofanej utraty danych, należy okresowo tworzyć kopie zapasowe baz danych, aby regularnie zachowywać modyfikacje danych. Dobrze zaplanowana strategia tworzenia i przywracania kopii zapasowych pomaga chronić bazy danych przed utratą danych spowodowaną różnymi awariami. Przetestuj strategię, przywracając zestaw kopii zapasowych, a następnie odzyskując bazę danych, aby przygotować się do skutecznego reagowania na awarię.
Aby dowiedzieć się więcej o tym, dlaczego kopie zapasowe są ważne, zobacz Tworzenie kopii zapasowych i przywracanie baz danych programu SQL Server.
Usługa Azure SQL Edge umożliwia tworzenie kopii zapasowych i przywracanie z magazynu lokalnego i obiektów blob platformy Azure. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej i przywracanie programu SQL Server przy użyciu usługi Azure Blob Storage i kopii zapasowej programu SQL Server pod adresem URL.
Tworzenie kopii zapasowej bazy danych w usłudze Azure SQL Edge
Usługa Azure SQL Edge obsługuje te same typy kopii zapasowych co program SQL Server. Aby uzyskać pełną listę, zobacz Omówienie kopii zapasowych.
Ważne
Bazy danych utworzone w usłudze Azure SQL Edge domyślnie używają prostego modelu odzyskiwania. W związku z tym nie można wykonywać kopii zapasowych dzienników w tych bazach danych. Jeśli musisz to zrobić, musisz mieć administratora, aby zmienić model odzyskiwania bazy danych na model pełnego odzyskiwania. Aby uzyskać pełną listę modeli odzyskiwania obsługiwanych przez program SQL Server, zobacz Omówienie modelu odzyskiwania.
Tworzenie kopii zapasowej na dysku lokalnym
W poniższym przykładzie użyjesz BACKUP DATABASE
polecenia Transact-SQL, aby utworzyć kopię zapasową bazy danych w kontenerze. W tym przykładzie utworzysz nowy folder o nazwie kopia zapasowa do przechowywania plików kopii zapasowej.
Utwórz folder dla kopii zapasowych. Uruchom to polecenie na hoście, na którym działa kontener usługi Azure SQL Edge. W poniższym poleceniu zastąp <AzureSQLEdge_Container_Name> nazwą kontenera usługi Azure SQL Edge we wdrożeniu.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Nawiąż połączenie z wystąpieniem usługi Azure SQL Edge przy użyciu programu SQL Server Management Studio (SSMS) lub przy użyciu narzędzia Azure Data Studio. Uruchom polecenie ,
BACKUP DATABASE
aby utworzyć kopię zapasową bazy danych użytkownika. W poniższym przykładzie tworzysz kopię zapasowąIronOreSilicaPrediction
bazy danych.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
Po uruchomieniu polecenia, jeśli tworzenie kopii zapasowej bazy danych zakończy się pomyślnie, w sekcji wyników programu SSMS lub Azure Data Studio zostaną wyświetlone komunikaty podobne do poniższych.
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
Tworzenie kopii zapasowej do adresu URL
Usługa Azure SQL Edge obsługuje kopie zapasowe zarówno stronicowych obiektów blob, jak i blokowych obiektów blob. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej blokowych obiektów blob a stronicowych obiektów blob. W poniższym przykładzie tworzona jest kopia zapasowa bazy danych IronOreSilicaPrediction
do blokowego obiektu blob.
Aby skonfigurować kopie zapasowe w celu blokowania obiektów blob, najpierw wygeneruj token sygnatury dostępu współdzielonego (SAS), którego można użyć do utworzenia poświadczeń programu SQL Server w usłudze Azure SQL Edge. Skrypt tworzy sygnaturę dostępu współdzielonego skojarzona z zapisanymi zasadami dostępu. Aby uzyskać więcej informacji, zobacz Sygnatury dostępu współdzielonego, część 1: Opis modelu sygnatury dostępu współdzielonego. Skrypt zapisuje również polecenie T-SQL wymagane do utworzenia poświadczeń w programie SQL Server. Poniższy skrypt zakłada, że masz już subskrypcję platformy Azure z kontem magazynu i kontenerem magazynu dla kopii zapasowych.
# 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
Po pomyślnym uruchomieniu skryptu skopiuj
CREATE CREDENTIAL
polecenie do narzędzia do wykonywania zapytań. Następnie połącz się z wystąpieniem programu SQL Server i uruchom polecenie , aby utworzyć poświadczenie przy użyciu sygnatury dostępu współdzielonego.Nawiąż połączenie z wystąpieniem usługi Azure SQL Edge przy użyciu programu SSMS lub narzędzia Azure Data Studio i utwórz poświadczenie przy użyciu polecenia z poprzedniego kroku. Pamiętaj, aby zastąpić
CREATE CREDENTIAL
polecenie rzeczywistymi danymi wyjściowymi z poprzedniego kroku.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>';
Następujące polecenie wykonuje kopię zapasową
IronOreSilicaPrediction
kontenera usługi Azure Storage.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Przywracanie bazy danych w usłudze Azure SQL Edge
W usłudze Azure SQL Edge można przywrócić z dysku lokalnego, lokalizacji sieciowej lub konta usługi Azure Blob Storage. Aby uzyskać więcej informacji na temat przywracania i odzyskiwania w programie SQL Server, zobacz Przywracanie i odzyskiwanie — omówienie. Aby zapoznać się z omówieniem prostego modelu odzyskiwania w programie SQL Server, zobacz Ukończone przywracanie bazy danych (prosty model odzyskiwania).
Ważne
Nie można przywrócić baz danych utworzonych w usłudze Azure SQL Edge w wystąpieniu programu Microsoft SQL Server lub usługi Azure SQL. Ponadto bazę danych utworzoną na serwerze Microsoft SQL Server lub azure SQL można przywrócić w usłudze Azure SQL Edge, pod warunkiem że baza danych nie zawiera żadnych funkcji, które nie są obsługiwane przez usługę Azure SQL Edge.
Przywracanie z dysku lokalnego
W tym przykładzie użyto IronOreSilicaPrediction
kopii zapasowej utworzonej w poprzednim przykładzie. Teraz przywrócisz ją jako nową bazę danych o innej nazwie.
Jeśli plik kopii zapasowej bazy danych nie jest jeszcze obecny w kontenerze, możesz użyć następującego polecenia, aby skopiować plik do kontenera. W poniższym przykładzie przyjęto założenie, że plik kopii zapasowej znajduje się na hoście lokalnym i jest kopiowany do folderu /var/opt/mssql/backup do kontenera usługi Azure SQL Edge o nazwie sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Połącz się z wystąpieniem usługi Azure SQL Edge przy użyciu programu SSMS lub narzędzia Azure Data Studio, aby uruchomić polecenie przywracania. W poniższym przykładzie
IronOrePredictDB.bak
zostanie przywrócona w celu utworzenia nowej bazy danych .IronOreSilicaPrediction_2
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';
Po uruchomieniu polecenia przywracania, jeśli operacja przywracania zakończyła się pomyślnie, w oknie danych wyjściowych będą wyświetlane komunikaty podobne do poniższych.
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
Przywracanie z adresu URL
Usługa Azure SQL Edge obsługuje również przywracanie bazy danych z konta usługi Azure Storage. Można przywrócić z blokowych obiektów blob lub stronicowych kopii zapasowych obiektów blob. W poniższym przykładzie IronOreSilicaPrediction_2020_04_16.bak
plik kopii zapasowej bazy danych w blokowym obiekcie blob zostanie przywrócony w celu utworzenia bazy danych . IronOreSilicaPrediction_3
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;