Säkerhetskopiera och återställa databaser i Azure SQL Edge
Viktigt!
Azure SQL Edge dras tillbaka den 30 september 2025. Mer information och migreringsalternativ finns i meddelandet Om pensionering.
Kommentar
Azure SQL Edge stöder inte längre ARM64-plattformen.
Azure SQL Edge bygger på de senaste versionerna av Microsoft SQL Database Engine. Det ger liknande funktioner för säkerhetskopiering och återställning av databaser som SQL Server på Linux och SQL Server som körs i containrar. Komponenten säkerhetskopiering och återställning ger ett viktigt skydd för att skydda data som lagras i dina Azure SQL Edge-databaser.
För att minimera risken för katastrofal dataförlust bör du säkerhetskopiera dina databaser regelbundet för att bevara ändringar av dina data regelbundet. En välplanerad strategi för säkerhetskopiering och återställning hjälper till att skydda databaser mot dataförlust som orsakas av olika fel. Testa din strategi genom att återställa en uppsättning säkerhetskopior och sedan återställa databasen för att förbereda dig för att effektivt reagera på en katastrof.
Mer information om varför säkerhetskopior är viktiga finns i Säkerhetskopiera och återställa SQL Server-databaser.
Med Azure SQL Edge kan du säkerhetskopiera till och återställa från både lokal lagring och Azure-blobar. Mer information finns i Säkerhetskopiering och återställning av SQL Server med Azure Blob Storage och SQL Server-säkerhetskopiering till URL.
Säkerhetskopiera en databas i Azure SQL Edge
Azure SQL Edge stöder samma säkerhetskopieringstyper som SQL Server. En fullständig lista finns i Översikt över säkerhetskopiering.
Viktigt!
Databaser som skapats i Azure SQL Edge använder den enkla återställningsmodellen som standard. Därför kan du inte utföra loggsäkerhetskopior på dessa databaser. Om du behöver göra detta behöver du en administratör för att ändra databasåterställningsmodellen till den fullständiga återställningsmodellen. En fullständig lista över återställningsmodeller som stöds av SQL Server finns i Översikt över återställningsmodell.
Säkerhetskopiera till lokal disk
I följande exempel använder BACKUP DATABASE
du transact-SQL-kommandot för att skapa en databassäkerhetskopia i containern. I det här exemplet skapar du en ny mapp med namnet backup för att lagra säkerhetskopieringsfilerna.
Skapa en mapp för säkerhetskopiorna. Kör det här kommandot på värden där azure SQL Edge-containern körs. I följande kommando ersätter <du AzureSQLEdge_Container_Name> med namnet på Azure SQL Edge-containern i distributionen.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Anslut till Azure SQL Edge-instansen med hjälp av SQL Server Management Studio (SSMS) eller med hjälp av Azure Data Studio.
BACKUP DATABASE
Kör kommandot för att säkerhetskopiera användardatabasen. I följande exempel säkerhetskopierarIronOreSilicaPrediction
du databasen.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
När du har kört kommandot visas meddelanden som liknar följande i resultatavsnittet i SSMS eller Azure Data Studio om säkerhetskopieringen av databasen lyckas.
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
Säkerhetskopiera till URL
Azure SQL Edge stöder säkerhetskopieringar till både sidblobar och blockblobar. Mer information finns i Säkerhetskopiera till blockblob jämfört med sidblob. I följande exempel säkerhetskopieras databasen IronOreSilicaPrediction
till en blockblob.
Om du vill konfigurera säkerhetskopieringar för att blockera blobar genererar du först en SAS-token (signatur för delad åtkomst) som du kan använda för att skapa en SQL Server-autentiseringsuppgift i Azure SQL Edge. Skriptet skapar en SAS som är associerad med en lagrad åtkomstprincip. Mer information finns i Signaturer för delad åtkomst, del 1: Förstå SAS-modellen. Skriptet skriver även det T-SQL-kommando som krävs för att skapa autentiseringsuppgifterna på SQL Server. Följande skript förutsätter att du redan har en Azure-prenumeration med ett lagringskonto och en lagringscontainer för säkerhetskopiorna.
# 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
När skriptet har körts kopierar du
CREATE CREDENTIAL
kommandot till ett frågeverktyg. Anslut sedan till en instans av SQL Server och kör kommandot för att skapa autentiseringsuppgifterna med SAS.Anslut till Azure SQL Edge-instansen med hjälp av SSMS eller Azure Data Studio och skapa autentiseringsuppgifterna med hjälp av kommandot från föregående steg. Ersätt
CREATE CREDENTIAL
kommandot med de faktiska utdata från föregående steg.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>';
Följande kommando tar en säkerhetskopia av
IronOreSilicaPrediction
till Azure Storage-containern.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Återställa en databas i Azure SQL Edge
I Azure SQL Edge kan du återställa från en lokal disk, en nätverksplats eller ett Azure Blob Storage-konto. Mer information om återställning och återställning i SQL Server finns i Översikt över återställning och återställning. En översikt över den enkla återställningsmodellen i SQL Server finns i Slutför databasåterställningar (enkel återställningsmodell).
Viktigt!
Databaser som skapats i Azure SQL Edge kan inte återställas på en instans av Microsoft SQL Server eller Azure SQL. Dessutom kan en databas som skapats på Microsoft SQL Server eller Azure SQL återställas i Azure SQL Edge, förutsatt att databasen inte innehåller någon av de funktioner som inte stöds av Azure SQL Edge.
Återställa från en lokal disk
I det här exemplet används den IronOreSilicaPrediction
säkerhetskopia som du gjorde i föregående exempel. Nu ska du återställa den som en ny databas med ett annat namn.
Om databassäkerhetskopieringsfilen inte redan finns i containern kan du använda följande kommando för att kopiera filen till containern. I följande exempel förutsätts att säkerhetskopieringsfilen finns på den lokala värden och kopieras till mappen /var/opt/mssql/backup till en Azure SQL Edge-container med namnet sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Anslut till Azure SQL Edge-instansen med hjälp av SSMS eller Azure Data Studio för att köra återställningskommandot. I följande exempel
IronOrePredictDB.bak
återställs för att skapa en ny databas,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';
När du har kört återställningskommandot visas meddelanden som liknar följande i utdatafönstret om återställningsåtgärden lyckades.
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
Återställa från URL
Azure SQL Edge stöder också återställning av en databas från ett Azure Storage-konto. Du kan återställa från antingen blockblobbar eller sidblobsäkerhetskopior. I följande exempel IronOreSilicaPrediction_2020_04_16.bak
återställs databassäkerhetskopieringsfilen på en blockblob för att skapa databasen. 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;