Utforska SÄKERHETSKOPIERing till URL för SQL Server (Azure Storage)

Slutförd

Det första steget i den här processen är att skapa ett Azure Storage-konto i din Azure-prenumeration. SQL Server kan antingen använda Azure Storage-kontonamnet och dess åtkomstnyckelvärde för att autentisera och skriva och läsa blobar till Microsoft Azure Blob Storage-tjänsten eller använda en signaturtoken för delad åtkomst som beviljar läs- och skrivbehörighet till enskilda containrar. SQL Server-autentiseringsuppgifterna lagrar den här autentiseringsinformationen och använder den under säkerhetskopierings- eller återställningsåtgärderna.

Om du vill implementera SQL Server Backup till URL kan du använda följande metoder:

  • Säkerhetskopieringsaktivitet i SQL Server Management Studio: Du kan säkerhetskopiera en databas till URL via säkerhetskopieringsaktiviteten i SQL Server Management Studio med hjälp av en SQL Server-autentiseringsuppgift.
  • Guiden Säkerhetskopiering till URL för SQL Server med hjälp av underhållsplan: Guiden Underhållsplan i SQL Server Management Studio innehåller URL som ett av målalternativen och andra stödobjekt som krävs för att säkerhetskopiera till Azure Storage som SQL-autentiseringsuppgifterna.
  • Transact-SQL, PowerShell eller C#: Dessa alternativ måste användas för att skapa en randig säkerhetskopieringsuppsättning, en säkerhetskopiering av SQL Server-filögonblicksbilder eller en SQL-autentiseringsuppgift med hjälp av token för delad åtkomst.

Automatisk säkerhetskopiering av SQL Server v2 för virtuella Azure-datorer

Automatisk säkerhetskopiering v2 konfigurerar automatiskt hanterad säkerhetskopiering till Microsoft Azure för alla befintliga och nya databaser på en virtuell Azure-dator som kör SQL Server 2016/2017 Standard- eller Enterprise- eller Developer-versioner. På så sätt kan du konfigurera regelbundna säkerhetskopior av databaser som använder Azure Blob Storage. Automatisk säkerhetskopiering v2 beror på SQL Server IaaS Agent-tillägget.

Automatisk säkerhetskopiering v2 fungerar med SQL Server 2016 eller senare. Om du använder SQL Server 2014 kan du använda Automatiserad säkerhetskopiering v1 för att säkerhetskopiera dina databaser.

Konfiguration av databas

  • Måldatabaser måste använda den fullständiga återställningsmodellen. Mer information om effekten av den fullständiga återställningsmodellen på säkerhetskopior finns i Säkerhetskopiering under den fullständiga återställningsmodellen.
  • Systemdatabaser behöver inte använda en fullständig återställningsmodell. Men om du behöver loggsäkerhetskopior för modell eller MSDB måste du använda den fullständiga återställningsmodellen.
  • Måldatabaser måste finnas antingen på SQL Server-standardinstansen eller på en namngiven instans som installeras genom att följa proceduren som beskrivs i Vanliga frågor och svar för SQL Server på virtuella Azure-datorer.

Du kan använda Azure-portalen eller Az PowerShell-modulen för att konfigurera automatisk säkerhetskopiering v2 under etablering eller befintliga virtuella SQL Server 2016/2017-datorer.

SQL Server-säkerhetskopiering på virtuella Azure-datorer (till Recovery Services-valv)

SQL Server Backup på virtuella Azure-datorer kan konfigureras i Azure-portalen eller PowerShell (det finns inget stöd för Azure CLI). Processen omfattar att köra identifiering av SQL Server-instanser och deras databaser från ett Azure Recovery Services-valv, välja de databaser som ska säkerhetskopieras i identifieringsresultaten och tilldela en säkerhetskopieringsprincip som avgör säkerhetskopieringsinställningar, till exempel frekvens och kvarhållning. Du har också möjlighet att aktivera Automatiskt skydd, vilket automatiskt säkerhetskopierar alla befintliga och framtida databaser på en SQL Server-instans eller AlwaysOn-tillgänglighetsgrupp.

När du kör identifiering på en SQL Server gör Azure Backup följande:

  • Lägger till tillägget AzureBackupWindowsWorkload.
  • Skapar ett NT SERVICE\AzureWLBackupPluginSvc-konto för att identifiera databaser på den virtuella datorn. Det här kontot används för säkerhetskopiering och återställning och kräver SQL-sysadmin-behörigheter.
  • Identifierar databaser som körs på en virtuell dator. Azure Backup använder kontot NT AUTHORITY\SYSTEM. Det här kontot måste vara en offentlig inloggning i SQL.

Om du inte skapade den virtuella SQL Server-datorn med hjälp av en Azure Marketplace-avbildning måste du tilldela till NT SERVICE\AzureWLBackupPluginSvc-kontot sysadmin-rollen.

Ögonblicksbildsbaserade säkerhetskopior av SQL Server-filer till Azure Storage

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 hjälp av Azure Blob Storage-tjänsten. Med den här funktionen kan du förenkla säkerhetskopierings- och återställningsprinciperna.

Du kan använda Azure PowerShell-skript och SQL-frågor för att implementera SQL Server-datafiler som Azure Blobs. Med hjälp av skript kan du enkelt skapa en databas i SQL Server som körs lokalt eller på en virtuell dator i Azure och konfigurera en dedikerad lagringsplats för dina data i Azure Blob Storage. Du kan också använda Azure-portalen i stället för PowerShell-skript.

Oavsett val av implementeringsmetod innebär processen att konfigurera ett lagringskonto, skapa SQL Server-autentiseringsuppgifter och skapa en databas med filer som lagras i blobar. SQL Server behöver autentiseringsuppgifterna för att lagra säkerhetsinformationen som den använder för att skriva till och läsa från Azure Blob-containern.

Underhåll av filsäkerhetskopieringsuppsättning

  • Ta 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 säkerhetskopieringsuppsättning för ö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äkerhetskopieringsfilen 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 har tagits bort utan att använda den sys.sp_delete_backup systemlagringsproceduren 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 använder du systemfunktionen sys.fn_db_backup_file_snapshots för att visa en lista över 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äkerhetskopieringsfilen som har överblivnas. Du hittar exempel med den här systemfunktionen och dessa system lagrade procedurer längst ned på den här sidan.

Återställa med hjälp av säkerhetskopior av filögonblicksbilder

Eftersom varje uppsättning säkerhetskopiering av filögonblicksbilder innehåller en filögonblicksbild av varje databasfil kräver en återställningsprocess högst två intilliggande uppsättningar för säkerhetskopiering av ögonblicksbilder. Detta gäller oavsett om säkerhetskopieringsuppsättningen kommer från en fullständig databassäkerhetskopia eller en loggsäkerhetskopia. Detta skiljer sig 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 återställningsprocessen förblir densamma oavsett om återställningen använder en säkerhetskopia av en filögonblicksbild eller en uppsättning direktuppspelningssäkerhetskopior.

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 säkerhetskopiering av en transaktionsloggfilsögonblickskopia för att utföra en ÅTERSTÄLLNINGSDATABAS-åtgärd använder du vanligtvis en säkerhetskopieringsuppsättning för transaktionsloggar för att utföra den här typen av ÅTERSTÄLLNINGSDATABAS-åtgärd och använder sällan en fullständig databassäkerhetskopia.

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 ÅTERSTÄLLNINGSDATABAS-åtgärd MED NORECOVERY med hjälp av säkerhetskopieringsuppsättningen för transaktionsloggfil-ögonblicksbilder från den tidigare tidpunkten och utför en ÅTERSTÄLLNINGSLOGGÅTGÄRD MED ÅTERSTÄLLNING med hjälp av säkerhetskopieringsuppsättningen för transaktionsloggfilens ögonblicksbild från senare tidpunkt och använder STOPAT-argumentet för att ange den tidpunkt då återställningen från transaktionsloggen skulle stoppas.

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

I följande exempel används säkerhetskopiering av ögonblicksbilder för att säkerhetskopiera AdventureWorks2016-exempeldatabasen till URL.

BACKUP DATABASE AdventureWorks2016

TO URL = 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016.bak'

WITH FILE_SNAPSHOT ;

Återställa från en säkerhetskopiering av SQL Server-filögonblicksbild

I följande exempel återställs Databasen AdventureWorks2016 med hjälp av en säkerhetskopieringsuppsättning för transaktionsloggfilsögonblicksbilder och visar en återställningsåtgärd. Observera att du kan återställa en databas från en enda uppsättning säkerhetskopieringar av transaktionsloggfiler och ögonblicksbilder.

RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016_2015_05_18_16_00_00.trn'

WITH RECOVERY, REPLACE ;

Återställa från en säkerhetskopia av SQL Server-filögonblicksbild till en tidpunkt

I följande exempel återställs AdventureWorks2016 till dess tillstånd vid en angiven tidpunkt med hjälp av två säkerhetskopieringsuppsättningar för ögonblicksbilder av transaktionsloggar och visar en återställningsåtgärd.

RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016_2015_05_18_16_00_00.trn'

WITH NORECOVERY,REPLACE ;

RESTORE LOG AdventureWorks2016 FROM URL = 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016_2015_05_18_18_00_00.trn'

WITH RECOVERY,STOPAT = 'May 18, 2015 5:35 PM' ;

Ta bort en säkerhetskopieringsuppsättning för databasfilögonblicksbild

Om du vill ta bort en säkerhetskopieringsuppsättning för ö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.

Om du försöker ta bort en säkerhetskopieringsuppsättning för ögonblicksbilder med hjälp av en annan metod, till exempel Azure-portalen 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 pekarna till filögonblicksbilderna i uppsättningen med säkerhetskopiering av filögonblicksbilder. 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 uppsättningen säkerhetskopiering av ögonblicksbilder bort, inklusive säkerhetskopieringsfilen och filögonblicksbilderna som består av den angivna säkerhetskopieringsuppsättningen.

sys.sp_delete_backup 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016.bak', 'adventureworks2016' ;

Visa ögonblicksbilder av databassäkerhetskopior

Om du vill visa filögonblicksbilder av basbloben för varje databasfil använder du funktionen sys.fn_db_backup_file_snapshots system. Med den här systemfunktionen kan du visa alla säkerhetskopierade filögonblicksbilder av varje basblob för en databas som lagras med hjälp av Azure Blob Storage-tjänsten. Ett primärt användningsfall för den här funktionen är att identifiera säkerhetskopierade ögonblicksbilder av en databas som finns kvar när säkerhetskopieringsfilen för en uppsättning säkerhetskopior av en ögonblicksbild tas bort med en annan mekanism än den sys.sp_delete_backup systemlagringsproceduren. 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 proceduren RESTORE FILELISTONLY system stored för att lista de filögonblicksbilder som hör till varje säkerhetskopia.

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

USE AdventureWorks2016

select * from sys.fn_db_backup_file_snapshots (null) ;

GO

select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2016') ;

Ta bort en enskild databassäkerhetskopia av filögonblicksbild

Om du vill ta bort en enskild säkerhetskopia av en databasbasblob använder du den sys.sp_delete_backup_file_snapshot systemlagringsproceduren. 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 sys.sp_delete_backup systemlagringsprocedur.

Varning

Om du tar bort en enskild filögonblicksbild som ingår i en uppsättning säkerhetskopiering av filögonblicksbilder kommer säkerhetskopieringsuppsättningen 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.

sys.sp_delete_backup_file_snapshot N'adventureworks2016', N'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016Data.mdf?snapshot=2015-05-29T21:31:31.6502195Z' ;