Back-ups maken van databases en deze herstellen in Azure SQL Edge
Belangrijk
Azure SQL Edge wordt op 30 september 2025 buiten gebruik gesteld. Zie de kennisgeving buitengebruikstelling voor meer informatie en migratieopties.
Notitie
Azure SQL Edge biedt geen ondersteuning meer voor het ARM64-platform.
Azure SQL Edge is gebaseerd op de nieuwste versies van de Microsoft SQL Database Engine. Het biedt vergelijkbare mogelijkheden voor back-ups en hersteldatabases voor SQL Server in Linux en SQL Server die in containers worden uitgevoerd. Het back-up- en herstelonderdeel biedt een essentiƫle beveiliging voor het beveiligen van gegevens die zijn opgeslagen in uw Azure SQL Edge-databases.
Als u het risico op onherstelbare gegevensverlies wilt minimaliseren, moet u regelmatig een back-up maken van uw databases om wijzigingen in uw gegevens regelmatig te behouden. Een goed geplande back-up- en herstelstrategie helpt databases te beschermen tegen gegevensverlies veroorzaakt door verschillende fouten. Test uw strategie door een set back-ups te herstellen en vervolgens uw database te herstellen, om u voor te bereiden op een effectieve reactie op een noodgeval.
Zie Back-up en herstel van SQL Server-databases voor meer informatie over waarom back-ups belangrijk zijn.
Met Azure SQL Edge kunt u back-ups maken naar en herstellen vanuit zowel lokale opslag als Azure-blobs. Zie back-up en herstel van SQL Server met Azure Blob Storage en SQL Server-back-up naar URL voor meer informatie.
Een back-up maken van een database in Azure SQL Edge
Azure SQL Edge ondersteunt dezelfde back-uptypen als SQL Server. Zie Back-upoverzicht voor een volledige lijst.
Belangrijk
Databases die zijn gemaakt in Azure SQL Edge gebruiken standaard het eenvoudige herstelmodel. Als zodanig kunt u geen logboekback-ups uitvoeren op deze databases. Als u dit wilt doen, hebt u een beheerder nodig om het databaseherstelmodel te wijzigen in het volledige herstelmodel. Zie het overzicht van het herstelmodel voor een volledige lijst met herstelmodellen die worden ondersteund door SQL Server.
Een back-up maken van de lokale schijf
In het volgende voorbeeld gebruikt u de BACKUP DATABASE
Transact-SQL-opdracht om een databaseback-up in de container te maken. In dit voorbeeld maakt u een nieuwe map met de naam back-up om de back-upbestanden op te slaan.
Maak een map voor de back-ups. Voer deze opdracht uit op de host waarop uw Azure SQL Edge-container wordt uitgevoerd. Vervang <in de volgende opdracht AzureSQLEdge_Container_Name> door de naam van de Azure SQL Edge-container in uw implementatie.
sudo docker exec -it <AzureSQLEdge_Container_Name> mkdir /var/opt/mssql/backup
Maak verbinding met het Azure SQL Edge-exemplaar met behulp van SQL Server Management Studio (SSMS) of met behulp van Azure Data Studio. Voer de
BACKUP DATABASE
opdracht uit om de back-up van uw gebruikersdatabase te maken. In het volgende voorbeeld maakt u de back-up van deIronOreSilicaPrediction
database.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
Nadat u de opdracht hebt uitgevoerd, ziet u, als de back-up van de database is geslaagd, berichten die vergelijkbaar zijn met het volgende in de resultatensectie van SSMS of Azure Data Studio.
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
Back-up maken naar URL
Azure SQL Edge ondersteunt back-ups naar zowel pagina-blobs als blok-blobs. Zie Back-up maken naar blok-blob versus pagina-blob voor meer informatie. In het volgende voorbeeld wordt een back-up van de database IronOreSilicaPrediction
gemaakt naar een blok-blob.
Als u back-ups wilt configureren voor blok-blobs, genereert u eerst een SAS-token (Shared Access Signature) dat u kunt gebruiken om een SQL Server-referentie te maken in Azure SQL Edge. Het script maakt een SAS die is gekoppeld aan een opgeslagen toegangsbeleid. Zie Handtekeningen voor gedeelde toegang, deel 1, voor meer informatie: Informatie over het SAS-model. Het script schrijft ook de T-SQL-opdracht die nodig is om de referentie op SQL Server te maken. In het volgende script wordt ervan uitgegaan dat u al een Azure-abonnement hebt met een opslagaccount en een opslagcontainer voor de back-ups.
# 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
Nadat het script is uitgevoerd, kopieert u de
CREATE CREDENTIAL
opdracht naar een queryprogramma. Maak vervolgens verbinding met een exemplaar van SQL Server en voer de opdracht uit om de referentie met de SAS te maken.Maak verbinding met het Azure SQL Edge-exemplaar met behulp van SSMS of Azure Data Studio en maak de referentie met behulp van de opdracht uit de vorige stap. Zorg ervoor dat u de
CREATE CREDENTIAL
opdracht vervangt door de werkelijke uitvoer uit de vorige stap.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>';
Met de volgende opdracht maakt u een back-up van de
IronOreSilicaPrediction
container naar de Azure-opslagcontainer.BACKUP DATABASE IronOreSilicaPrediction TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/IronOreSilicaPrediction.bak' With MAXTRANSFERSIZE = 4194304,BLOCKSIZE=65536; GO
Een database herstellen in Azure SQL Edge
In Azure SQL Edge kunt u herstellen vanaf een lokale schijf, een netwerklocatie of een Azure Blob Storage-account. Zie Het overzicht herstellen en herstellen voor meer informatie over herstel en herstel in SQL Server. Zie Volledige databaseherstelbewerkingen (eenvoudig herstelmodel) voor een overzicht van het eenvoudige herstelmodel in SQL Server.
Belangrijk
Databases die zijn gemaakt in Azure SQL Edge, kunnen niet worden hersteld op een exemplaar van Microsoft SQL Server of Azure SQL. Daarnaast kan een database die is gemaakt op Microsoft SQL Server of Azure SQL worden hersteld in Azure SQL Edge, mits de database geen van de functies bevat die niet worden ondersteund door Azure SQL Edge.
Herstellen vanaf een lokale schijf
In dit voorbeeld wordt de IronOreSilicaPrediction
back-up gebruikt die u in het vorige voorbeeld hebt gemaakt. Nu gaat u deze herstellen als een nieuwe database met een andere naam.
Als het databaseback-upbestand nog niet aanwezig is in de container, kunt u de volgende opdracht gebruiken om het bestand naar de container te kopiƫren. In het volgende voorbeeld wordt ervan uitgegaan dat het back-upbestand aanwezig is op de lokale host en wordt gekopieerd naar de map /var/opt/mssql/backup in een Azure SQL Edge-container met de naam sql1.
sudo docker cp IronOrePredictDB.bak sql1:/var/opt/mssql/backup
Maak verbinding met het Azure SQL Edge-exemplaar met behulp van SSMS of Azure Data Studio om de herstelopdracht uit te voeren. In het volgende voorbeeld
IronOrePredictDB.bak
wordt hersteld om een nieuwe database te maken.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';
Nadat u de herstelopdracht hebt uitgevoerd, ziet u, als de herstelbewerking is geslaagd, berichten die vergelijkbaar zijn met het volgende in het uitvoervenster.
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
Restore from URL (Herstellen vanaf URL)
Azure SQL Edge biedt ook ondersteuning voor het herstellen van een database vanuit een Azure Storage-account. U kunt herstellen vanuit de blok-blobs of back-ups van pagina-blobs. In het volgende voorbeeld wordt het back-upbestand van de IronOreSilicaPrediction_2020_04_16.bak
database op een blok-blob hersteld om de database te maken. 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;