Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2016 (13.x) och senare versioner
Den här självstudien hjälper dig att förstå hur du använder Azure Blob Storage för datafiler och säkerhetskopior i SQL Server 2016 och senare versioner.
Stöd för Azure Blob Storage i SQL Server introducerades i SQL Server 2012 (11.x) Service Pack 1 CU2 och förbättrades i senare versioner. En översikt över funktionerna och fördelarna med att använda den här funktionen finns i SQL Server-datafiler i Microsoft Azure.
Den här självstudien visar hur du arbetar med SQL Server-datafiler i Azure Blob Storage i flera avsnitt. Varje avsnitt fokuserar på en specifik uppgift och du bör slutföra avsnitten i följd. Först får du lära dig hur du skapar en ny container i Blob Storage med en lagrad åtkomstprincip och en signatur för delad åtkomst. Sedan får du lära dig hur du skapar en SQL Server-autentiseringsuppgift för att integrera SQL Server med Azure Blob Storage. Därefter säkerhetskopierar du en databas till Blob Storage och återställer den till en virtuell Azure-dator. Sedan använder du säkerhetskopiering av transaktionsloggar för SQL Server-ögonblicksbilder för att återställa till en tidpunkt och till en ny databas. Slutligen visar självstudien hur lagrade procedurer och funktioner i metadatasystemet används för att förstå och arbeta med säkerhetskopieringar av filögonblicksbilder.
Förutsättningar
För att slutföra den här självstudien måste du känna till begreppen säkerhetskopiering och återställning av SQL Server och T-SQL-syntax.
Om du vill använda den här självstudien behöver du ett Azure Storage-konto, SQL Server Management Studio (SSMS), åtkomst till en instans av SQL Server lokalt, åtkomst till en virtuell Azure-dator (VM) som kör en instans av SQL Server 2016 eller senare samt en AdventureWorks2022 databas. Dessutom bör kontot som används för att utfärda BACKUP kommandona och RESTORE finnas i db_backupoperator databasrollen med ändra eventuella behörigheter för autentiseringsuppgifter .
- Skaffa ett kostnadsfritt Azure-konto.
- Skapa ett Azure Storage-konto.
- Installera SQL Server 2017 Developer Edition.
- Etablera en virtuell Azure-dator som kör SQL Server.
- Installera SQL Server Management Studio.
- Ladda ned AdventureWorks-exempeldatabaser.
- Tilldela användarkontot till rollen db_backupoperator och bevilja ändra eventuella autentiseringsuppgifter behörigheter.
Viktigt!
SQL Server stöder inte Azure Data Lake Storage. Kontrollera att hierarkiskt namnområde inte är aktiverat på lagringskontot som används för den här självstudien.
1 – Skapa lagrad åtkomstprincip och lagring med delad åtkomst
I det här avsnittet använder du ett Azure PowerShell-skript för att skapa en signatur för delad åtkomst i en Azure Blob Storage-container med hjälp av en lagrad åtkomstprincip.
Anmärkning
Det här skriptet skrivs med Azure PowerShell 5.0.10586.
En signatur för delad åtkomst är en URI som ger begränsad åtkomstbehörighet till containrar, blobar, köer eller tabeller. En lagrad åtkomstprincip ger en extra nivå av kontroll över signaturer för delad åtkomst på serversidan, inklusive återkallande, upphörande eller utökad åtkomst. När du använder den här nya förbättringen måste du skapa en princip för en container med minst läs-, skriv- och listrättigheter.
Du kan skapa en lagrad åtkomstprincip och en signatur för delad åtkomst med hjälp av Azure PowerShell, Azure Storage SDK, Azure REST API eller ett verktyg från tredje part. Den här självstudien visar hur du använder ett Azure PowerShell-skript för att slutföra uppgiften. Skriptet använder Resource Manager-distributionsmodellen och skapar följande nya resurser
- Resursgrupp
- Lagringskonto
- Azure Blob Storage-container
- SAS-policy
Det här skriptet börjar med att deklarera flera variabler för att ange namnen på de tidigare resurserna och namnen på följande obligatoriska indatavärden:
- Ett prefixnamn som används för att namnge andra resursobjekt
- Prenumerationsnamn
- Datacenterplats
Skriptet slutförs genom att generera lämplig CREATE CREDENTIAL instruktion som du använder i 2 – Skapa en SQL Server-autentiseringsuppgift med hjälp av en signatur för delad åtkomst. Detta uttalande kopieras till urklippet för dig och skrivs ut i konsolen så att du kan se det.
Följ dessa steg för att skapa en princip för containern och generera en signatur för delad åtkomst (SAS):
Öppna Windows PowerShell eller Windows PowerShell ISE (se krav för tidigare versioner).
Redigera och kör sedan följande skript:
# Define global variables for the script $prefixName = '<a prefix name>' # used as the prefix for the name for various objects $subscriptionID = '<your subscription ID>' # the ID of subscription name you will use $locationName = '<a data center location>' # the data center region you will use $storageAccountName = $prefixName + 'storage' # the storage account name you will create or use $containerName = $prefixName + 'container' # the storage container name to which you will attach the SAS policy with its SAS token $policyName = $prefixName + 'policy' # the name of the SAS policy # Set a variable for the name of the resource group you will create or use $resourceGroupName = $prefixName + 'rg' # Add an authenticated Azure account for use in the session Connect-AzAccount # Set the tenant, subscription and environment for use in the rest of Set-AzContext -SubscriptionId $subscriptionID # Create a new resource group - comment out this line to use an existing resource group New-AzResourceGroup -Name $resourceGroupName -Location $locationName # Create a new Azure Resource Manager storage account - comment out this line to use an existing Azure Resource Manager storage account New-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Type Standard_RAGRS -Location $locationName # Get the access keys for the Azure Resource Manager storage account $accountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName # Create a new storage account context using an Azure Resource Manager storage account $storageContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $accountKeys[0].Value # Creates a new container in Blob Storage $container = New-AzStorageContainer -Context $storageContext -Name $containerName # Sets up a Stored Access Policy and a Shared Access Signature for the new container $policy = New-AzStorageContainerStoredAccessPolicy -Container $containerName -Policy $policyName -Context $storageContext -StartTime $(Get-Date). ToUniversalTime().AddMinutes(-5) -ExpiryTime $(Get-Date).ToUniversalTime().AddYears(10) -Permission rwld # Gets the Shared Access Signature for the policy $sas = New-AzStorageContainerSASToken -name $containerName -Policy $policyName -Context $storageContext Write-Host 'Shared Access Signature= '$($sas.Substring(1))'' # Sets the variables for the new container you just created $container = Get-AzStorageContainer -Context $storageContext -Name $containerName $cbc = $container.CloudBlobContainer # 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.Uri, $sas.Substring(1) $tSql | clip Write-Host $tSql # Once you're done with the tutorial, remove the resource group to clean up the resources. # Remove-AzResourceGroup -Name $resourceGroupNameNär skriptet har slutförts finns -instruktionen
CREATE CREDENTIALi Urklipp för användning i nästa avsnitt.
2 – Skapa en SQL Server-autentiseringsuppgift med en signatur för delad åtkomst
I det här avsnittet skapar du en autentiseringsuppgift för att lagra säkerhetsinformationen, som används av SQL Server för att skriva till och läsa från Azure Blob Storage-containern som du skapade i föregående steg.
En SQL Server-autentiseringsuppgift är ett objekt som används för att lagra autentiseringsinformation som krävs för att ansluta till en resurs utanför SQL Server. Autentiseringsuppgifterna lagrar URI-sökvägen för Azure Blob Storage-containern och signaturen för delad åtkomst för den här containern.
Följ dessa steg för att skapa en SQL Server-autentiseringsuppgift:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn i din lokala miljö.
I det nya frågefönstret klistrar du in -instruktionen
CREATE CREDENTIALmed signaturen för delad åtkomst från avsnitt 1 och kör skriptet.Skriptet ser ut som följande kod.
/* Example: USE master CREATE CREDENTIAL [https://msfttutorial.blob.core.windows.net/containername] WITH IDENTITY='SHARED ACCESS SIGNATURE' , SECRET = 'sharedaccesssignature' GO */ USE master; CREATE CREDENTIAL [https://<storage-account>.blob.core.windows.net/<container-name>] -- this name must match the container path, start with https and must not contain a forward slash at the end WITH IDENTITY = 'SHARED ACCESS SIGNATURE', -- this is a mandatory string and should not be changed SECRET = 'sharedaccesssignature'; -- this is the shared access signature key that you obtained in section 1. GOOm du vill se alla tillgängliga autentiseringsuppgifter kan du köra följande instruktion i ett frågefönster som är anslutet till din instans:
SELECT * FROM sys.credentials;Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn på den virtuella Azure-datorn.
I det nya frågefönstret klistrar du in -instruktionen
CREATE CREDENTIALmed signaturen för delad åtkomst från avsnitt 1 och kör skriptet.Upprepa steg 5 och 6 för eventuella ytterligare SQL Server-instanser som du vill ha åtkomst till containern.
3 – Säkerhetskopiering av databas till URL
I det här avsnittet säkerhetskopierar AdventureWorks2022 du databasen i SQL Server-instansen till containern som du skapade i avsnitt 1.
Följ dessa steg för att säkerhetskopiera en databas till bloblagring:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen på din virtuella Azure-dator.
Kopiera och klistra in följande Transact-SQL skript i frågefönstret. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1 och kör sedan det här skriptet.
-- To permit log backups, before the full database backup, modify the database to use the full recovery model. USE master; ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL; -- Back up the full AdventureWorks2022 database to the container that you created in section 1 BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_onprem.bak';Öppna Object Explorer och anslut till Azure Storage med ditt lagringskonto och din kontonyckel.
- Expandera Containrar, expandera containern som du skapade i avsnitt 1 och kontrollera att säkerhetskopieringen från steg 3 tidigare visas i den här containern.
4 – Återställa databasen till en virtuell dator från URL:en
I det här avsnittet återställer AdventureWorks2022 du databasen till din SQL Server-instans på den virtuella Azure-datorn.
Anmärkning
För enkelhetens skull i den här självstudien använder vi samma container för de data och loggfiler som vi använde för databassäkerhetskopian. I en produktionsmiljö skulle du förmodligen använda flera containrar och ofta flera datafiler också. Du kan också överväga att ta bort säkerhetskopieringen över flera blobar för att öka säkerhetskopieringsprestandan när du säkerhetskopierar en stor databas.
Följ dessa steg för att återställa AdventureWorks2022-databasen från Azure Blob Storage till SQL Server-instansen på den virtuella Azure-datorn:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn på den virtuella Azure-datorn.
Kopiera och klistra in följande Transact-SQL skript i frågefönstret. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1 och kör sedan det här skriptet.
-- Restore AdventureWorks2022 from URL to SQL Server instance using Azure Blob Storage for database files RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_onprem.bak' WITH MOVE 'AdventureWorks2022_data' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Data.mdf', MOVE 'AdventureWorks2022_log' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Log.ldf' --, REPLACE;Öppna Object Explorer och anslut till din Azure SQL Server-instans.
I Object Explorer expanderar du noden Databaser och kontrollerar att
AdventureWorks2022databasen har återställts (uppdatera noden efter behov).Högerklicka på AdventureWorks2022och välj Egenskaper.
Välj Filer och kontrollera att sökvägarna för de två databasfilerna är URL:er som pekar på blobar i Azure Blob Storage-containern (välj Avbryt när du är klar).
I Object Explorer ansluter du till Azure Storage.
- Expandera Containrar, expandera containern som du skapade i avsnitt 1 och kontrollera att
AdventureWorks2022_Data.mdfochAdventureWorks2022_Log.ldffrån steg 3 tidigare visas i den här containern, tillsammans med säkerhetskopian från avsnitt 3 (uppdatera noden efter behov).
- Expandera Containrar, expandera containern som du skapade i avsnitt 1 och kontrollera att
5 – Säkerhetskopiera databas med hjälp av säkerhetskopiering av ögonblicksbilder
I det här avsnittet säkerhetskopierar du databasen på den AdventureWorks2022 virtuella Azure-datorn med hjälp av säkerhetskopiering av ögonblicksbilder för att utföra en nästan omedelbar säkerhetskopiering med hjälp av Azure-ögonblicksbilder. Mer information om säkerhetskopieringar av ögonblicksbilder finns i File-Snapshot Säkerhetskopior för databasfiler i Azure
Följ dessa steg för att säkerhetskopiera AdventureWorks2022-databasen med hjälp av ögonblicksbildsäkerhetskopiering av filer:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn på den virtuella Azure-datorn.
Kopiera, klistra in och kör följande Transact-SQL skript i frågefönstret (stäng inte det här frågefönstret – du kör skriptet igen i steg 5). Med den här system lagrade proceduren kan du visa befintliga säkerhetskopior av ögonblicksbilder för varje fil som består av en angiven databas. Du kan se att det inte finns några säkerhetskopieringar av ögonblicksbilder för den här databasen.
-- Verify that no file snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');Kopiera och klistra in följande Transact-SQL skript i frågefönstret. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1 och kör sedan det här skriptet. Observera hur snabbt säkerhetskopieringen sker.
-- Backup the AdventureWorks2022 database with FILE_SNAPSHOT BACKUP DATABASE AdventureWorks2022 TO URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_Azure.bak' WITH FILE_SNAPSHOT;När du har kontrollerat att skriptet i steg 4 har körts korrekt kör du följande skript igen. Säkerhetskopieringen av filögonblicksbilden i steg 4 genererade filögonblicksbilder av både data och loggfilen.
-- Verify that two file-snapshot backups exist SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');I Object Explorer expanderar du Databases-noden i sql Server-instansen på den virtuella Azure-datorn och kontrollerar att
AdventureWorks2022-databasen har återställts till den här instansen (uppdatera noden efter behov).I Object Explorer ansluter du till Azure Storage.
Expandera Containrar, expandera containern som du skapade i avsnitt 1 och kontrollera att
AdventureWorks2022_Azure.bakfrån steg 4 tidigare visas i den här containern, tillsammans med säkerhetskopian från avsnitt 3 och databasfilerna från avsnitt 4 (uppdatera noden efter behov).
6 – Generera aktivitets- och säkerhetskopieringslogg med hjälp av säkerhetskopiering av filögonblicksbilder
I det här avsnittet genererar du aktivitet i AdventureWorks2022 databasen och skapar regelbundet säkerhetskopior av transaktionsloggar med hjälp av säkerhetskopior av filögonblicksbilder. Mer information om hur du använder säkerhetskopieringar av ögonblicksbilder finns i File-Snapshot Säkerhetskopior för databasfiler i Azure.
Följ dessa steg för att generera aktivitet i AdventureWorks2022-databasen och regelbundet skapa säkerhetskopior av transaktionsloggar med hjälp av säkerhetskopieringar av filögonblicksbilder:
Starta SSMS.
Öppna två nya frågefönster och anslut var och en till SQL Server-instansen av databasmotorn på den virtuella Azure-datorn.
Kopiera, klistra in och kör följande Transact-SQL skript i ett av frågefönstren. Tabellen
Production.Locationhar 14 rader innan vi lägger till nya rader i steg 4.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Kopiera och klistra in följande två Transact-SQL skript i de två separata frågefönstren. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1 och kör sedan skripten samtidigt i separata frågefönster. Det tar några minuter att slutföra skripten.
-- Insert 30,000 new rows into the Production.Location table in the AdventureWorks2022 database in batches of 75 DECLARE @count AS INT = 1, @inner AS INT; WHILE @count < 400 BEGIN BEGIN TRANSACTION; SET @inner = 1; WHILE @inner <= 75 BEGIN INSERT INTO AdventureWorks2022.Production.Location (Name, CostRate, Availability, ModifiedDate) VALUES (NEWID(), .5, 5.2, GETDATE()); SET @inner = @inner + 1; END COMMIT TRANSACTION; WAITFOR DELAY '00:00:01'; SET @count = @count + 1; END SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;--take 7 transaction log backups with FILE_SNAPSHOT, one per minute, and include the row count and the execution time in the backup file name DECLARE @count INT=1, @device NVARCHAR(120), @numrows INT; WHILE @count <= 7 BEGIN SET @numrows = (SELECT COUNT (*) FROM AdventureWorks2022.Production.Location); SET @device = 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-' + CONVERT (varchar(10),@numrows) + '-' + FORMAT(GETDATE(), 'yyyyMMddHHmmss') + '.bak'; BACKUP LOG AdventureWorks2022 TO URL = @device WITH FILE_SNAPSHOT; SELECT * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022'); WAITFOR DELAY '00:1:00'; SET @count = @count + 1; END;Granska utdata från det första skriptet och observera att antalet sista rader nu är 29 939.
Granska utdata från det andra skriptet och observera att varje gång instruktionen
BACKUP LOGkörs skapas två nya filögonblicksbilder, en ögonblicksbild av loggfilen och en ögonblicksbild av datafilen för totalt två ögonblicksbilder av varje databasfil. När det andra skriptet har slutförts ser du att det nu finns totalt 16 ögonblicksbilder av filer, 8 för varje databasfil – en från -instruktionenBACKUP DATABASEoch en för varje körning av -instruktionenBACKUP LOG.I Object Explorer ansluter du till Azure Storage.
Expandera Containrar, expandera containern som du skapade i avsnitt 1 och kontrollera att sju nya säkerhetskopieringsfiler visas tillsammans med datafilerna från föregående avsnitt (uppdatera noden efter behov).
7 – Återställa en databas till en tidpunkt
I det här avsnittet återställer AdventureWorks2022 du databasen till en tidpunkt mellan två av säkerhetskopiorna i transaktionsloggen.
Med traditionella säkerhetskopior, för att åstadkomma återställning till tidpunkt, skulle du behöva använda den fullständiga databassäkerhetskopian, kanske en differentiell säkerhetskopia, och alla transaktionsloggfiler fram till och precis förbi den tidpunkt som du vill återställa till. Med ögonblicksbildkopior av filer behöver du bara de två intilliggande loggsäkerhetskopiorna som anger tidsgränserna för den tidpunkt du vill återställa till. Du behöver bara två säkerhetskopieringsuppsättningar för ögonblicksbilder av loggfiler eftersom varje loggsäkerhetskopia skapar en ögonblicksbild av varje databasfil (varje datafil och loggfilen).
Följ dessa steg för att återställa en databas till en angiven tidpunkt från säkerhetskopieringsuppsättningar för ögonblicksbilder av filer:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn på den virtuella Azure-datorn.
Kopiera, klistra in och kör följande Transact-SQL skript i frågefönstret. Kontrollera att tabellen
Production.Locationhar 29 939 rader innan vi återställer den till en tidpunkt då det finns färre rader i steg 4.-- Verify row count at start SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;
Kopiera och klistra in följande Transact-SQL skript i frågefönstret. Välj två intilliggande loggsäkerhetskopieringsfiler och konvertera filnamnet till det datum och den tid du behöver för det här skriptet. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1. Ange namn på den första och andra säkerhetskopieringsfilen
STOPAT, ange tiden i formatetJune 26, 2018 01:48 PMoch kör sedan det här skriptet. Det tar några minuter att slutföra.-- restore and recover to a point in time between the times of two transaction log backups, and then verify the row count ALTER DATABASE AdventureWorks2022 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<firstbackupfile>.bak' WITH NORECOVERY, REPLACE; RESTORE LOG AdventureWorks2022 FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<secondbackupfile>.bak' WITH RECOVERY, STOPAT = 'June 26, 2018 01:48 PM'; ALTER DATABASE AdventureWorks2022 SET MULTI_USER; -- get new count SELECT COUNT(*) FROM AdventureWorks2022.Production.Location;Granska utdata. Efter återställningen är radantalet 18 389, vilket är ett radantal mellan loggsäkerhetskopiering 5 och 6 (radantalet kan variera).
8 – Återställ som ny databas från loggbackup
I det här avsnittet återställer AdventureWorks2022 du databasen som en ny databas från en säkerhetskopiering av transaktionsloggen för filögonblicksbilder.
I det här scenariot utför du en återställning till en SQL Server-instans på en annan virtuell dator för affärsanalys och rapportering. Genom att återställa till en annan instans på en annan virtuell dator avlastas arbetsbelastningen till en virtuell dator som är dedikerad och rätt dimensionerad för detta ändamål, vilket minskar resurskraven från transaktionssystemet.
Det går snabbt att återställa från en säkerhetskopia av transaktionsloggen med säkerhetskopiering av filögonblicksbilder, betydligt snabbare än med traditionella säkerhetskopieringar av direktuppspelning. Med traditionella säkerhetskopieringar för direktuppspelning måste du använda den fullständiga databassäkerhetskopian, kanske en differentiell säkerhetskopia, och några eller alla säkerhetskopior av transaktionsloggen (eller en ny fullständig databassäkerhetskopia). Men med filögonblicksbild-loggsäkerhetskopior behöver du endast den senaste loggsäkerhetskopian (eller någon annan loggsäkerhetskopia eller två intilliggande loggsäkerhetskopior för att återställa till en tidpunkt mellan två loggsäkerhetskopieringstillfällen). För att vara tydlig behöver du bara en säkerhetskopieringsuppsättning för loggfilsögonblicksbilder eftersom varje säkerhetskopia av filögonblicksloggen skapar en ögonblicksbild av varje databasfil (varje datafil och loggfilen).
Följ dessa steg för att återställa en databas till en ny databas från en säkerhetskopia av transaktionsloggen med hjälp av säkerhetskopiering av ögonblicksbilder av filer:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn på en virtuell Azure-dator.
Om det här är en annan virtuell Azure-dator än du har använt i föregående avsnitt kontrollerar du att du har följt stegen i 2 – Skapa en SQL Server-autentiseringsuppgift med hjälp av en signatur för delad åtkomst. Om du vill återställa till en annan container följer du stegen i 1 – Skapa lagrad åtkomstprincip och lagring med delad åtkomst för den nya containern.
Kopiera och klistra in följande Transact-SQL skript i frågefönstret. Välj den loggsäkerhetskopieringsfil som du vill använda. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1, ange namnet på loggsäkerhetskopian och kör sedan det här skriptet.
-- restore as a new database from a transaction log backup file RESTORE DATABASE AdventureWorks2022_EOM FROM URL = 'https://<storage-account>.blob.core.windows.net/<container-name>/<logbackupfile.bak>' WITH MOVE 'AdventureWorks2022_data' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_EOM_Data.mdf', MOVE 'AdventureWorks2022_log' TO 'https://<storage-account>.blob.core.windows.net/<container-name>/AdventureWorks2022_EOM_Log.ldf', RECOVERY --, REPLACE;Granska utdata för att kontrollera att återställningen lyckades.
I Object Explorer ansluter du till Azure Storage.
Expandera Containrar, expandera containern som du skapade i avsnitt 1 (uppdatera om det behövs) och kontrollera att de nya data- och loggfilerna visas i containern, tillsammans med blobarna från föregående avsnitt.
9 – Hantera säkerhetskopieringsuppsättningar och filsnapshots-säkerhetskopior
I det här avsnittet tar du bort en säkerhetskopieringsuppsättning med hjälp av den sp_delete_backup system lagrade proceduren. Den här system lagrade proceduren tar bort säkerhetskopieringsfilen och ögonblicksbilden av filen på varje databasfil som är associerad med den här säkerhetskopieringsuppsättningen.
Anmärkning
Om du försöker ta bort en säkerhetskopieringsuppsättning genom att ta bort säkerhetskopieringsfilen från Azure Blob Storage-containern tar du bara bort själva säkerhetskopieringsfilen – de associerade ögonblicksbilderna av filen finns kvar. Om du befinner dig i det här scenariot använder du systemfunktionen sys.fn_db_backup_file_snapshots för att identifiera URL:en för de överblivna filögonblicksbilderna och använda den sp_delete_backup_file_snapshot system lagrade proceduren för att ta bort varje ögonblicksbild av överblivna filer. Mer information finns i File-Snapshot Backups for Database Files i Azure.
Följ dessa steg om du vill ta bort en uppsättning säkerhetskopieringar av ögonblicksbilder:
Starta SSMS.
Öppna ett nytt frågefönster och anslut till SQL Server-instansen av databasmotorn på den virtuella Azure-datorn (eller till valfri SQL Server-instans med behörighet att läsa och skriva på den här containern).
Kopiera och klistra in följande Transact-SQL skript i frågefönstret. Välj den loggbackup som du vill ta bort och dess associerade ögonblicksbilder. Ändra URL:en på rätt sätt för lagringskontots namn och containern som du angav i avsnitt 1, ange namnet på loggsäkerhetskopian och kör sedan det här skriptet.
EXECUTE sys.sp_delete_backup 'https://<storage-account>.blob.core.windows.net/<container-name>/tutorial-21764-20181003205236.bak';I Object Explorer ansluter du till Azure Storage.
Expandera Containrar, expandera containern som du skapade i avsnitt 1 och kontrollera att säkerhetskopieringsfilen som du använde i steg 3 inte längre visas i den här containern (uppdatera noden efter behov).
Kopiera, klistra in och kör följande Transact-SQL-skript i frågefönstret för att verifiera att två snapshotfiler har tagits bort.
-- verify that two file snapshots have been removed SELECT * FROM sys.fn_db_backup_file_snapshots('AdventureWorks2022');
10 – Ta bort resurser
När du är klar med den här självstudien, och för att spara resurser, se till att ta bort den resursgrupp som skapades i den här självstudien.
Om du vill ta bort resursgruppen kör du följande PowerShell-kod:
# Define global variables for the script
$prefixName = '<prefix name>' # should be the same as the beginning of the tutorial
# Set a variable for the name of the resource group you will create or use
$resourceGroupName=$prefixName + 'rg'
# Adds an authenticated Azure account for use in the session
Connect-AzAccount
# Set the tenant, subscription and environment for use in the rest of
Set-AzContext -SubscriptionId $subscriptionID
# Remove the resource group
Remove-AzResourceGroup -Name $resourceGroupName
Relaterat innehåll
- SQL Server-datafiler i Microsoft Azure
- File-Snapshot Säkerhetskopior för databasfiler i Azure
- SQL Server-säkerhetskopiering till URL för Microsoft Azure Blob Storage
- Signaturer för delad åtkomst, del 1: Förstå SAS-modellen
- Skapa container
- Ange container-ACL
- Hämta ACL för container
- autentiseringsuppgifter (databasmotor)
- SKAPA AUTENTISERINGSUPPGIFTER (Transact-SQL)
- sys.credentials (Transact-SQL)
- sp_delete_backup (Transact-SQL)
- sys.fn_db_backup_file_snapshots (Transact-SQL)
- sp_delete_backup_file_snapshot (Transact-SQL)