Zálohování a obnovení databází v Azure SQL Edge
Důležité
Azure SQL Edge bude vyřazeno 30. září 2025. Další informace a možnosti migrace najdete v oznámení o vyřazení.
Poznámka:
Azure SQL Edge už nepodporuje platformu ARM64.
Azure SQL Edge je založený na nejnovějších verzích databázového stroje Microsoft SQL. Poskytuje podobné možnosti zálohování a obnovení databáze pro SQL Server v Linuxu a SQL Serveru spuštěném v kontejnerech. Komponenta zálohování a obnovení poskytuje základní ochranu pro ochranu dat uložených v databázích Azure SQL Edge.
Pokud chcete minimalizovat riziko katastrofické ztráty dat, měli byste pravidelně zálohovat databáze, abyste zachovali úpravy dat pravidelně. Dobře plánovaná strategie zálohování a obnovení pomáhá chránit databáze před ztrátou dat způsobenou různými selháními. Otestujte svou strategii obnovením sady záloh a následným obnovením databáze, abyste mohli efektivně reagovat na havárii.
Další informace o tom, proč jsou zálohy důležité, najdete v tématu Zálohování a obnovení databází SQL Serveru.
Azure SQL Edge umožňuje zálohování a obnovení z místního úložiště i objektů blob Azure. Další informace najdete v tématu Zálohování a obnovení SQL Serveru se službou Azure Blob Storage a zálohováním SQL Serveru na adresu URL.
Zálohování databáze v Azure SQL Edge
Azure SQL Edge podporuje stejné typy zálohování jako SQL Server. Úplný seznam najdete v tématu Přehled zálohování.
Důležité
Databáze vytvořené v Azure SQL Edge ve výchozím nastavení používají jednoduchý model obnovení. V těchto databázích proto nemůžete zálohovat protokoly. Pokud to potřebujete udělat, budete potřebovat správce, aby změnil model obnovení databáze na úplný model obnovení. Úplný seznam modelů obnovení podporovaných SQL Serverem najdete v přehledu modelu obnovení.
Zálohování na místní disk
V následujícím příkladu BACKUP DATABASE
použijete příkaz Transact-SQL k vytvoření zálohy databáze v kontejneru. V tomto příkladu vytvoříte novou složku s názvem zálohování pro ukládání záložních souborů.
Vytvořte složku pro zálohy. Spusťte tento příkaz na hostiteli, na kterém je spuštěný kontejner Azure SQL Edge. V následujícím příkazu nahraďte <AzureSQLEdge_Container_Name> názvem kontejneru Azure SQL Edge ve vašem nasazení.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Připojte se k instanci Azure SQL Edge pomocí aplikace SQL Server Management Studio (SSMS) nebo pomocí nástroje Azure Data Studio. Spuštěním
BACKUP DATABASE
příkazu proveďte zálohu uživatelské databáze. V následujícím příkladu vytváříte zálohuIronOreSilicaPrediction
databáze.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 spuštění příkazu se v části s výsledky aplikace SSMS nebo Azure Data Studio zobrazí zprávy podobné následujícímu.
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
Zálohování na adresu URL
Azure SQL Edge podporuje zálohování objektů blob stránky i objektů blob bloku. Další informace najdete v tématu Zálohování do objektu blob bloku a objektu blob stránky. V následujícím příkladu se databáze IronOreSilicaPrediction
zálohuje do objektu blob bloku.
Pokud chcete nakonfigurovat zálohy na objekty blob bloku, nejprve vygenerujte token sdíleného přístupového podpisu (SAS), který můžete použít k vytvoření přihlašovacích údajů SQL Serveru v Azure SQL Edge. Skript vytvoří SAS, který je přidružený k uloženým zásadám přístupu. Další informace najdete v tématu Sdílené přístupové podpisy, část 1: Principy modelu SAS. Skript také zapíše příkaz T-SQL potřebný k vytvoření přihlašovacích údajů na SQL Serveru. Následující skript předpokládá, že už máte předplatné Azure s účtem úložiště a kontejner úložiště pro zálohy.
# 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 úspěšném spuštění skriptu zkopírujte
CREATE CREDENTIAL
příkaz do nástroje pro dotazy. Pak se připojte k instanci SQL Serveru a spuštěním příkazu vytvořte přihlašovací údaje pomocí SAS.Připojte se k instanci Azure SQL Edge pomocí SSMS nebo Azure Data Studia a vytvořte přihlašovací údaje pomocí příkazu z předchozího kroku. Nezapomeňte příkaz nahradit
CREATE CREDENTIAL
skutečným výstupem z předchozího 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>';
Následující příkaz vytvoří zálohu kontejneru
IronOreSilicaPrediction
úložiště Azure.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Obnovení databáze v Azure SQL Edge
V Azure SQL Edge můžete provést obnovení z místního disku, síťového umístění nebo účtu služby Azure Blob Storage. Další informace o obnovení a obnovení na SQL Serveru naleznete v tématu Přehled obnovení a obnovení. Přehled jednoduchého modelu obnovení na SQL Serveru najdete v tématu Úplné obnovení databáze (jednoduchý model obnovení).
Důležité
Databáze vytvořené v Azure SQL Edge nejde obnovit v instanci Microsoft SQL Serveru nebo Azure SQL. Kromě toho je možné obnovit databázi vytvořenou na Microsoft SQL Serveru nebo Azure SQL v Azure SQL Edge za předpokladu, že databáze neobsahuje žádné funkce, které Azure SQL Edge nepodporuje.
Obnovení z místního disku
Tento příklad používá IronOreSilicaPrediction
zálohu, kterou jste provedli v předchozím příkladu. Teď ji obnovíte jako novou databázi s jiným názvem.
Pokud záložní soubor databáze v kontejneru ještě není, můžete soubor zkopírovat do kontejneru pomocí následujícího příkazu. Následující příklad předpokládá, že záložní soubor se nachází na místním hostiteli a kopíruje se do složky /var/opt/mssql/backup do kontejneru Azure SQL Edge s názvem sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Připojte se k instanci Azure SQL Edge pomocí SSMS nebo Azure Data Studia a spusťte příkaz pro obnovení. V následujícím příkladu
IronOrePredictDB.bak
je obnovena pro vytvoření nové databáze ,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';
Pokud operace obnovení proběhla úspěšně, zobrazí se po spuštění příkazu restore zprávy podobné následujícímu v okně výstupu.
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
Obnovení z adresy URL
Azure SQL Edge také podporuje obnovení databáze z účtu azure Storage. Můžete provést obnovení ze záloh objektů blob bloku nebo objektu blob stránky. V následujícím příkladu IronOreSilicaPrediction_2020_04_16.bak
se záložní soubor databáze v objektu blob bloku obnoví a vytvoří databázi 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;