File-Snapshot säkerhetskopior för databasfiler i Azure

Gäller för:SQL Server

Säkerhetskopiering av SQL Server-filögonblicksbilder använder Azure-ögonblicksbilder för att tillhandahålla nästan omedelbara säkerhetskopieringar och snabbare återställningar för databasfiler som lagras med Azure Blob Storage. Med den här funktionen kan du förenkla säkerhetskopierings- och återställningsprinciperna. Mer information om hur du lagrar databasfiler med Azure Blob Storage finns i SQL Server Data Files i Microsoft Azure.

Diagram som förklarar arkitekturen för säkerhetskopiering av ögonblicksbilder.

Har du redan ett Azure-konto? Besök SQL Server på Azure Virtual Machines för att starta en virtuell dator med SQL Server redan installerat.

Använda Azure-ögonblicksbilder för att säkerhetskopiera databasfiler som lagras i Azure

Vad är en säkerhetskopiering av SQL Server-filögonblicksbilder

En filsäkerhetskopiering med ögonblicksbilder består av en uppsättning Azure-ögonblicksbilder av de blobs som innehåller databasfilerna samt en säkerhetskopieringsfil som pekar på dessa filögonblicksbilder. Varje filsnapshot lagras i containern med basbloben. Du kan ange att själva säkerhetskopieringsfilen ska skrivas till URL, disk eller band. Säkerhetskopiering till URL rekommenderas. Mer information om säkerhetskopiering finns i Säkerhetskopiering och säkerhetskopiering till URL finns i SQL Server Backup to URL (Säkerhetskopiering till URL för SQL Server).

Diagram över arkitekturen för ögonblicksbildfunktionen.

Om du tar bort basbloben ogiltigförklaras säkerhetskopieringsuppsättningen och du hindras från att släppa en blob som innehåller filögonblicksbilder (såvida du inte uttryckligen väljer att ta bort en blob med alla dess filögonblicksbilder). Att ta bort en databas eller en datafil tar inte heller bort basbloben eller någon av dess filversioner. Om du tar bort säkerhetskopieringsfilen tas inte heller någon av filögonblicksbilderna i säkerhetskopieringsuppsättningen bort. Om du vill ta bort en uppsättning säkerhetskopior av ögonblicksbilder använder du den sys.sp_delete_backup system lagrade proceduren.

Fullständig databassäkerhetskopiering: Om du utför en fullständig säkerhetskopia av databasen med hjälp av säkerhetskopiering av ögonblicksbilder skapas en Azure-ögonblicksbild av varje data och loggfil som består av databasen, upprättar säkerhetskopieringskedjan för transaktionsloggen och skriver platsen för filögonblicksbilderna i säkerhetskopian.

Säkerhetskopiering av transaktionslogg: Om du utför en säkerhetskopiering av transaktionsloggen med hjälp av säkerhetskopiering av filögonblicksbilder skapas en ögonblicksbild av varje databasfil (inte bara transaktionsloggen), platsinformationen för filögonblicksbilden registreras i säkerhetskopian och transaktionsloggfilen trunkas.

Viktigt!

Efter den första fullständiga säkerhetskopian som krävs för att upprätta säkerhetskopieringskedjan för transaktionsloggen (som kan vara en säkerhetskopia av en filögonblicksbild) behöver du bara utföra säkerhetskopior av transaktionsloggen eftersom varje säkerhetskopieringsuppsättning för transaktionsloggfilsögonblicksbilder innehåller filögonblicksbilder av alla databasfiler och kan användas för att utföra en databasåterställning eller en loggåterställning. Efter den första fullständiga databassäkerhetskopian behöver du inte ytterligare fullständiga eller differentiella säkerhetskopior eftersom Azure Blob Storage hanterar skillnaderna mellan varje filögonblicksbild och basblobens aktuella tillstånd för varje databasfil.

Anmärkning

En självstudiekurs om hur du använder SQL Server med Microsoft Azure Blob Storage finns i Självstudie: Använda Microsoft Azure Blob Storage med SQL Server-databaser

Återställa med hjälp av säkerhetskopior av fil-snapshots

Eftersom varje uppsättning säkerhetskopior av filögonblicksbilder innehåller en filögonblicksbild av varje databasfil, kräver en återställningsprocess som mest två angränsande uppsättningar säkerhetskopior av filögonblicksbilder. Detta gäller oavsett om säkerhetskopieringsuppsättningen kommer från en fullständig databassäkerhetskopia eller en loggsäkerhetskopia. Detta skiljer sig mycket från återställningsprocessen när du använder traditionella säkerhetskopieringsfiler för direktuppspelning för att utföra återställningsprocessen. Med traditionell säkerhetskopiering av direktuppspelning kräver återställningsprocessen att en hel kedja med säkerhetskopieringsuppsättningar används: den fullständiga säkerhetskopieringen, en differentiell säkerhetskopia och en eller flera säkerhetskopior av transaktionsloggar. Återställningsdelen av processen förblir densamma oavsett om en fil-snapshot-säkerhetskopia eller en strömmande säkerhetskopia används.

Till tidpunkten för en säkerhetskopieringsuppsättning: För att kunna utföra en ÅTERSTÄLLNINGSDATABAS-åtgärd för att återställa en databas till tidpunkten för en viss uppsättning säkerhetskopiering av filögonblicksbilder krävs endast den specifika säkerhetskopieringsuppsättningen, plus själva basblobbarna. Eftersom du kan använda en ögonblicksbild av transaktionsloggfiler för att utföra en ÅTERSTÄLLNINGSDATABAS-åtgärd använder du vanligtvis en transaktionsloggsäkerhetskopieringsuppsättning för att utföra den här typen av ÅTERSTÄLLNINGSDATABAS-åtgärd och använder sällan en heltäckande databassäkerhetskopieringsuppsättning. Ett exempel visas i slutet av den här artikeln som visar den här tekniken.

Till en tidpunkt mellan två säkerhetskopieringsuppsättningar för filögonblicksbilder: För att kunna utföra en RESTORE DATABASE-åtgärd för att återställa en databas till en viss tidpunkt mellan tiden för två angränsande säkerhetskopieringsuppsättningar för transaktionsloggar krävs endast två säkerhetskopieringsuppsättningar för transaktionsloggar (en före och en efter den tidpunkt då du vill återställa databasen). För att åstadkomma detta utför du en RESTORE DATABASE-åtgärd WITH NORECOVERY med hjälp av backupuppsättningen för transaktionsloggfil-snapshot från den tidigare tidpunkten och utför en RESTORE LOG-åtgärd WITH RECOVERY med hjälp av backupuppsättningen för transaktionsloggfil-snapshot från den senare tidpunkten och använder STOPAT-argumentet för att ange den tidpunkt då återställningen från transaktionsloggbackupen skulle stoppas. Ett exempel visas i slutet av den här artikeln som visar den här tekniken.

Underhåll av filsäkerhetskopieringsuppsättning

Tar bort en uppsättning säkerhetskopiering av ögonblicksbilder: Du kan inte skriva över en säkerhetskopieringsuppsättning för filögonblicksbilder med argumentet FORMAT. Argumentet FORMAT tillåts inte att undvika att lämna överblivna filögonblicksbilder som skapades med den ursprungliga säkerhetskopieringen av filögonblicksbilden. Om du vill ta bort en uppsättning säkerhetskopior av ögonblicksbilder använder du den sys.sp_delete_backup system lagrade proceduren. Den här lagrade proceduren tar bort säkerhetskopieringsfilen och de filögonblicksbilder som utgör säkerhetskopieringsuppsättningen. Om du använder en annan metod för att ta bort en uppsättning säkerhetskopior av en ögonblicksbild kan du ta bort säkerhetskopian utan att ta bort filögonblicksbilderna i säkerhetskopieringsuppsättningen.

Ta bort överblivna säkerhetskopieringsfilögonblicksbilder: Du kan ha överblivna filögonblicksbilder om säkerhetskopieringsfilen togs bort utan att använda systemlagringsproceduren sys.sp_delete_backup eller om en databas- eller databasfil togs bort medan blobarna som innehåller databasen eller databasfilen hade säkerhetskopieringsfilögonblicksbilder associerade med dem. Om du vill identifiera filögonblicksbilder som kan vara överblivna sys.fn_db_backup_file_snapshots använder du systemfunktionen för att lista alla filögonblicksbilder av databasfilerna. Om du vill identifiera de filögonblicksbilder som ingår i en specifik uppsättning säkerhetskopior av filögonblicksbilder använder du proceduren RESTORE FILELISTONLY system stored ( ÅTERSTÄLL FILELISTONLY system lagrad). Du kan sedan använda den sys.sp_delete_backup_file_snapshot system lagrade proceduren för att ta bort en enskild ögonblicksbild av säkerhetskopian som har överblivna filer. Exempel som använder den här systemfunktionen och dessa system lagrade procedurer finns i slutet av den här artikeln. Mer information finns i sp_delete_backup, sys.fn_db_backup_file_snapshots, sp_delete_backup_file_snapshot och RESTORE FILELISTONLY.

Överväganden och begränsningar

Premium Storage: När du använder Premium Storage gäller följande begränsningar:

Enskilt lagringskonto: Fil-snapshoten och målblobbarna måste använda sig av samma lagringskonto.

Massåterställningsmodell: När du använder den massloggade återställningsmodellen och arbetar med en säkerhetskopia av transaktionsloggen som innehåller minimalt loggade transaktioner kan du inte göra en loggåterställning (inklusive återställning till tidpunkt) med hjälp av säkerhetskopieringen av transaktionsloggen. I stället utför du en databasåterställning till tidpunkten för säkerhetskopieringsuppsättningen för filögonblicksbilder. Den här begränsningen är identisk med begränsningen med säkerhetskopiering av direktuppspelning.

Onlineåterställning: När du använder backup av snapshots kan du inte utföra en onlineåterställning. Mer information om onlineåterställning finns i OnlineÅterställning (SQL Server).

Fakturering: När du använder säkerhetskopiering av SQL Server-filögonblicksbilder tillkommer ytterligare avgifter när data ändras. Mer information finns i Förstå hur ögonblicksbilder ackumulerar avgifter.

Arkivering: Om du vill arkivera en säkerhetskopia av filögonblicksbilder kan du arkivera till bloblagring eller direktuppspelningsarkivering. Om du vill arkivera till bloblagring kopierar du ögonblicksbilderna i säkerhetskopieringsuppsättningen för filögonblicksbilder till separata blobar. För att arkivera till strömmande säkerhetskopiering, återställ fil-snapshot-säkerhetskopian som en ny databas och utför sedan en vanlig strömmande säkerhetskopiering med komprimering och/eller kryptering, och arkivera den så länge som önskas, oberoende av basblobbarna.

Viktigt!

Att underhålla flera säkerhetskopieringar av filögonblicksbilder har bara en liten prestandakostnad. Att underhålla ett stort antal säkerhetskopieringar av ögonblicksbilder kan dock ha en I/O-prestandapåverkan på databasen. Vi rekommenderar att du endast behåller de fil-snapshot säkerhetskopior som krävs för att stödja ditt mål för återställningspunkt.

Säkerhetskopiera databasen och loggen med hjälp av en säkerhetskopiering av filögonblicksbilder

I det här exemplet används säkerhetskopiering av ögonblicksbilder för att säkerhetskopiera exempeldatabasen AdventureWorks2025 till URL.

-- To permit log backups, before the full database backup, modify the database   
-- to use the full recovery model.  
USE master;  
GO  
ALTER DATABASE AdventureWorks2022  
   SET RECOVERY FULL;  
GO  
-- Back up the full AdventureWorks2022 database.  
BACKUP DATABASE AdventureWorks2022   
TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak'   
WITH FILE_SNAPSHOT;  
GO  
-- Back up the AdventureWorks2022 log using a time stamp in the backup file name.  
DECLARE @Log_Filename AS VARCHAR (300);  
SET @Log_Filename = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_Log_'+   
REPLACE (REPLACE (REPLACE (CONVERT (VARCHAR (40), GETDATE (), 120), '-','_'),':', '_'),' ', '_') + '.trn';  
BACKUP LOG AdventureWorks2022  
 TO URL = @Log_Filename WITH FILE_SNAPSHOT;  
GO  

Återställ från en SQL Server-snapshot-säkerhetskopia

I följande exempel återställs AdventureWorks2025 databasen med hjälp av en ögonblicksbildssäkerhetskopieringsuppsättning av transaktionsloggfilen och visar en återställning. Observera att du kan återställa en databas från en enda uppsättning säkerhetskopieringar av transaktionsloggfiler och ögonblicksbilder.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH RECOVERY, REPLACE;  
GO  

Återställ från en backup av en SQL Server-filögonblicksbild till en given tidpunkt

I följande exempel återställs AdventureWorks2025 till dess tillstånd vid en angiven tidpunkt med hjälp av två backuppset för snapshots av transaktionsloggfiler och visar en återställningsåtgärd.

RESTORE DATABASE AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_16_00_00.trn'   
WITH NORECOVERY,REPLACE;  
GO   
  
RESTORE LOG AdventureWorks2022 FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022_2015_05_18_18_00_00.trn'   
WITH RECOVERY,STOPAT = 'May 18, 2015 5:35 PM';  
GO  

Ta bort en säkerhetskopieringsuppsättning för databasfilsnapshot

Om du vill ta bort en uppsättning säkerhetskopior av ögonblicksbilder använder du den sys.sp_delete_backup system lagrade proceduren. Ange databasnamnet så att systemet kontrollerar att den angivna säkerhetskopieringsuppsättningen för ögonblicksbilder verkligen är en säkerhetskopia för den angivna databasen. Om inget databasnamn anges tas den angivna säkerhetskopieringsuppsättningen med dess filögonblicksbilder bort utan en sådan validering. Mer information finns i sp_delete_backup.

Varning

Om du försöker ta bort en säkerhetskopieringsuppsättning för ögonblicksbilder med hjälp av en annan metod, till exempel Microsoft Azure Management Portal eller Azure Storage-visningsprogrammet i SQL Server Management Studio, tas inte filögonblicksbilderna i säkerhetskopieringsuppsättningen bort. Dessa verktyg tar bara bort själva säkerhetskopieringsfilen som innehåller referenserna till filögonblicksbilderna i säkerhetskopieringsuppsättningen. Om du vill identifiera ögonblicksbilder av säkerhetskopieringsfiler som finns kvar efter att en säkerhetskopia har tagits bort felaktigt använder du sys.fn_db_backup_file_snapshots systemfunktionen och använder sedan den sys.sp_delete_backup_file_snapshot system lagrade proceduren för att ta bort en enskild ögonblicksbild av säkerhetskopian.

I följande exempel tas den angivna säkerhetskopieringsuppsättningen med filögonblicksbilder bort, inklusive säkerhetskopieringsfilen och filögonblicksbilderna som ingår i den angivna säkerhetskopieringsuppsättningen.

EXEC sys.sp_delete_backup 'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022.bak', 'AdventureWorks2022' ;  
GO  

Visa ögonblicksbilder av databassäkerhetskopior

Om du vill visa filögonblicksbilder av basbloben för varje databasfil använder du sys.fn_db_backup_file_snapshots systemfunktionen. Med den här systemfunktionen kan du visa alla ögonblicksbilder av säkerhetskopior av varje basblob för en databas som lagras med Azure Blob Storage. Ett primärt användningsfall för den här funktionen är att identifiera ögonblicksbilder av säkerhetskopior av en databas som finns kvar när säkerhetskopieringsfilen för en uppsättning säkerhetskopior av en ögonblicksbild tas bort med hjälp av en annan mekanism än den sys.sp_delete_backup systemlagringsprocedur som används. Om du vill fastställa ögonblicksbilder av säkerhetskopieringsfiler som ingår i intakta säkerhetskopieringsuppsättningar och de som inte ingår i intakta säkerhetskopieringsuppsättningar använder du den RESTORE FILELISTONLY system lagrade proceduren för att lista de filögonblicksbilder som hör till varje säkerhetskopia. Mer information finns i sys.fn_db_backup_file_snapshots och RESTORE FILELISTONLY.

I följande exempel returneras listan över alla säkerhetskopierade filögonblicksbilder för den angivna databasen.

--Either specify the database name or set the database context  
USE AdventureWorks2022  
select * from sys.fn_db_backup_file_snapshots (null) ;  
GO  
select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2022') ;  
GO  

Ta bort en enskild databassäkerhetskopia av filsnapshot

Om du vill ta bort en enskild ögonblicksbild av säkerhetskopian av en databasbasblob använder du den sys.sp_delete_backup_file_snapshot systemlagringsprocedur. Ett primärt användningsfall för den här systemlagringsproceduren är att ta bort överblivna filögonblicksfiler som finns kvar efter att en säkerhetskopia har tagits bort med en annan metod än den sys.sp_delete_backup systemlagringsprocedur. Mer information finns i sp_delete_backup_file_snapshot.

Varning

Om du tar bort en enskild filögonblicksbild som ingår i en säkerhetskopieringsuppsättning kommer säkerhetskopian att ogiltigförklaras.

I följande exempel tas den angivna ögonblicksbilden av säkerhetskopieringsfilen bort. URL:en för den angivna säkerhetskopian erhölls med hjälp av sys.fn_db_backup_file_snapshots systemfunktionen.

EXEC sys.sp_delete_backup_file_snapshot N'AdventureWorks2022', N'https://<mystorageaccountname>.blob.core.windows.net/<mycontainername>/AdventureWorks2022Data.mdf?snapshot=2015-05-29T21:31:31.6502195Z';  
GO  

Nästa steg