Udforsk SQL Server Backup til URL-adresse (Azure Storage)
Oprettelse af en Azure Storage-konto i dit Azure-abonnement er det første trin i denne proces. SQL Server kan enten bruge navnet på Azure Storage-kontoen og dens adgangsnøgleværdi til at godkende og skrive og læse blobs til Microsoft Azure Blob Storage-tjenesten eller bruge et token til delt adgangssignatur, der giver læse- og skrivetilladelser til individuelle objektbeholdere. Legitimationsoplysningerne til SQL Server gemmer disse godkendelsesoplysninger og bruger dem under sikkerhedskopierings- eller gendannelseshandlinger.
Hvis du vil implementere SQL Server Backup til URL-adressen, kan du bruge følgende metoder:
- Sikkerhedskopiér opgave i SQL Server Management Studio: Du kan sikkerhedskopiere en database til URL-adressen via sikkerhedskopiopgaven i SQL Server Management Studio ved hjælp af legitimationsoplysningerne til SQL Server.
- SQL Server-sikkerhedskopiering til URL-adresse ved hjælp af guiden Vedligeholdelsesplan: Guiden Vedligeholdelsesplan i SQL Server Management Studio indeholder URL-adressen som en af destinationsmulighederne og andre understøttende objekter, der kræves for at sikkerhedskopiere til Azure Storage, f.eks. SQL-legitimationsoplysningerne.
- Transact-SQL-, PowerShell- eller C#-: Disse indstillinger skal bruges til at oprette et stribet sikkerhedskopisæt, en sikkerhedskopi af en SQL Server-filsnapshot eller en SQL-legitimationsoplysninger ved hjælp af tokenet Delt adgang.
SQL Server Automated Backup v2 til Azure Virtual Machines
Automatiseret sikkerhedskopiering v2 konfigurerer automatisk Administreret sikkerhedskopiering til Microsoft Azure for alle eksisterende og nye databaser på en Azure Virtual Machine, der kører SQL Server 2016/2017 Standard-, Enterprise- eller Developer-udgaver. Dette giver dig mulighed for at konfigurere almindelige sikkerhedskopieringer af databaser, der bruger Azure blob Storage. Automatiseret sikkerhedskopiering v2 afhænger af SQL Server IaaS Agent-udvidelsen.
Automatiseret sikkerhedskopiering v2 fungerer sammen med SQL Server 2016 eller nyere. Hvis du bruger SQL Server 2014, kan du bruge Automatiseret sikkerhedskopiering v1 til at sikkerhedskopiere dine databaser.
Databasekonfiguration
- Destinationsdatabaser skal bruge den fulde genoprettelsesmodel. Du kan få flere oplysninger om virkningen af den fulde genoprettelsesmodel på sikkerhedskopier under Sikkerhedskopiering under den fulde genoprettelsesmodel.
- Systemdatabaser behøver ikke at bruge en fuld genoprettelsesmodel. Men hvis du kræver, at der tages sikkerhedskopier af logfiler for model eller MSDB, skal du bruge den fulde genoprettelsesmodel.
- Destinationsdatabaser skal enten være på standardforekomsten af SQL Server eller en navngivet forekomst, der er installeret ved at følge den procedure, der er beskrevet i Ofte stillede spørgsmål om SQL Server på Azure Virtual Machines.
Du kan bruge Azure Portal- eller Az PowerShell-modulet til at konfigurere Automatiseret sikkerhedskopi v2 under klargøring eller eksisterende virtuelle SQL Server 2016/2017-maskiner.
SQL Server-sikkerhedskopiering i Azure Virtual Machines (til Recovery Services Vault)
SQL Server Backup i Azure Virtual Machines kan konfigureres på Azure Portal eller PowerShell (der er ingen understøttelse af Azure CLI). Processen omfatter kørsel af registrering af SQL Server-instanser og deres databaser fra en Azure Recovery Services-vault, valg af de databaser, der skal sikkerhedskopieres i registreringsresultaterne, og tildeling af en sikkerhedskopieringspolitik, der bestemmer indstillinger for sikkerhedskopiering, f.eks. hyppighed og opbevaring. Du har også mulighed for at aktivere Automatisk beskyttelse, som automatisk sikkerhedskopier alle eksisterende og fremtidige databaser på en SQL Server-forekomst eller Always On Availability Group.
Når du kører registrering på en SQL Server, gør Azure Backup følgende:
- Tilføjer udvidelsen AzureBackupWindowsWorkload.
- Opretter en NT SERVICE\AzureWLBackupPluginSvc-konto for at finde databaser på den virtuelle maskine. Denne konto bruges til sikkerhedskopiering og gendannelse og kræver SQL-sysadmin-tilladelser.
- Registrerer databaser, der kører på en virtuel maskine. Azure Backup bruger NT AUTHORITY\SYSTEM-kontoen. Denne konto skal være et offentligt logon på SQL.
Hvis du ikke oprettede den virtuelle SQL Server-maskine ved hjælp af et Azure Marketplace-billede, skal du tildele sysadmin-rollen til NT SERVICE\AzureWLBackupPluginSvc-kontoen.
Snapshotbaserede sikkerhedskopier af SQL Server-filer til Azure Storage
Sql Server Sikkerhedskopiering af filer og snapshot bruger Azure-snapshots til at levere næsten øjeblikkelige sikkerhedskopier og hurtigere gendannelser af databasefiler, der er gemt ved hjælp af Azure Blob Storage-tjenesten. Denne funktion giver dig mulighed for at forenkle politikkerne for sikkerhedskopiering og gendannelse.
Du kan bruge Azure PowerShell-scripts og SQL-forespørgsler til at implementere SQL Server-datafiler som Azure Blobs. Ved hjælp af scripts kan du nemt oprette en database i SQL Server, der kører i det lokale miljø eller på en virtuel maskine på Azure, og konfigurere en dedikeret lagerplacering til dine data i Azure Blob Storage. Du kan også bruge Azure Portal i stedet for PowerShell-scripts.
Uanset valget af implementeringsmetode omfatter processen konfiguration af en lagerkonto, oprettelse af legitimationsoplysninger til SQL Server og oprettelse af en database med filer, der er gemt i blobs. SQL Server skal bruge legitimationsoplysningerne til at gemme de sikkerhedsoplysninger, den bruger til at skrive til og læse fra Azure-blobobjektbeholderen.
Vedligeholdelse af filsikkerhedskopieringssæt
- Sletning af et sikkerhedskopieringssæt til filsnapshot: Du kan ikke overskrive et sikkerhedskopieringssæt med et filsnapshot ved hjælp af argumentet FORMAT. Argumentet FORMAT er ikke tilladt for at undgå at efterlade tabte filsnapshots, der blev oprettet med den oprindelige sikkerhedskopi af filsnapshot. Hvis du vil slette et sikkerhedskopisæt af typen fil-snapshot, skal du bruge sys.sp_delete_backup systemlagrede procedure. Denne lagrede procedure sletter sikkerhedskopifilen og de snapshots, der udgør sikkerhedskopisættet. Hvis du bruger en anden metode til at slette et sikkerhedskopieringssæt til filsnapshot, kan det slette sikkerhedskopifilen uden at slette fil-snapshots i sikkerhedskopisættet.
- sletning af tabte sikkerhedskopieringsfilsnapshot: Du har muligvis mistet øjebliksbilleder af filer, hvis sikkerhedskopifilen blev slettet uden at bruge den sys.sp_delete_backup systemlagrede procedure, eller hvis en database eller databasefil blev droppet, mens de blob(er), der indeholder databasen eller databasefilen, havde sikkerhedskopifilsnapshots knyttet til dem. Hvis du vil identificere filsnapshots, der kan være tabt, skal du bruge systemfunktionen sys.fn_db_backup_file_snapshots til at få vist alle filsnapshots af databasefilerne. Hvis du vil identificere de filsnapshots, der er en del af et bestemt sikkerhedskopisæt til filsnapshot, skal du bruge den lagrede procedure RESTORE FILELISTONLY. Du kan derefter bruge sys.sp_delete_backup_file_snapshot systemlagrede procedure til at slette et individuelt sikkerhedskopieringsfilsnapshot, der blev mistet. Du kan finde eksempler ved hjælp af denne systemfunktion og disse systemlagrede procedurer nederst på denne side.
Gendan ved hjælp af sikkerhedskopier af filer og snapshots
Da hvert sikkerhedskopisæt til sikkerhedskopiering af fil-snapshot indeholder et filsnapshot af hver databasefil, kræver en gendannelsesproces højst to tilstødende sikkerhedskopisæt til fil-snapshot. Dette er tilfældet, uanset om sikkerhedskopisættet er fra en fuld databasesikkerhedskopi eller en logsikkerhedskopiering. Dette er anderledes end gendannelsesprocessen, når du bruger traditionelle sikkerhedskopifiler til streaming til at udføre gendannelsesprocessen. Med traditionel streaming-sikkerhedskopiering kræver gendannelsesprocessen brug af en hel kæde af sikkerhedskopisæt: den fulde sikkerhedskopiering, en differentieret sikkerhedskopiering og en eller flere sikkerhedskopieringer af transaktionsloggen. Gendannelsesdelen af gendannelsesprocessen forbliver den samme, uanset om gendannelsen bruger sikkerhedskopiering af filer eller et streamingsikkerhedskopisæt.
Hvis du vil udføre en gendannelsesdatabasehandling for at gendanne en database til tidspunktet for et bestemt sikkerhedskopieringssæt for et filsnapshot, er det kun det specifikke sikkerhedskopisæt, der kræves, samt selve de grundlæggende blobs. Da du kan bruge et sikkerhedskopisæt til sikkerhedskopiering af transaktionslogfiler til at udføre en gendannelsesdatabasehandling, skal du typisk bruge et sikkerhedskopisæt af transaktionsloggen til at udføre denne type GENDANNELSE AF DATABASE-handling og sjældent bruge et komplet sikkerhedskopisæt for databasen.
Hvis du vil udføre en gendannelsesdatabasehandling for at gendanne en database til et bestemt tidspunkt mellem tidspunktet for to tilstødende sikkerhedskopisæt i transaktionsloggen, kræves der kun to sikkerhedskopisæt til transaktionslogfiler (ét før og et efter det tidspunkt, hvor du vil gendanne databasen). For at opnå dette skal du udføre en GENDANNELSESDATABASE-handling MED NORECOVERY ved hjælp af sikkerhedskopisættet til sikkerhedskopiering af transaktionslogfiler og snapshot fra det tidligere tidspunkt og udføre en GENDANNELSESLOG-handling MED GENOPRETTELSE ved hjælp af sikkerhedskopieringen af transaktionslogfilens snapshot fra det senere tidspunkt og bruge STOPAT-argumentet til at angive det tidspunkt, hvor sikkerhedskopieringen af transaktionsloggen skal stoppes.
Sikkerhedskopiér databasen, og logfør ved hjælp af en sikkerhedskopi af et filsnapshot
I følgende eksempel bruges sikkerhedskopiering af fil-snapshot til at sikkerhedskopiere eksempeldatabasen AdventureWorks2016 til URL-adressen.
BACKUP DATABASE AdventureWorks2016
TO URL = 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016.bak'
WITH FILE_SNAPSHOT ;
Gendan fra en sikkerhedskopi af en SQL Server-filsnapshot
I følgende eksempel gendannes databasen AdventureWorks2016 ved hjælp af et sikkerhedskopisæt til sikkerhedskopiering af transaktionslogfiler og viser en genoprettelseshandling. Bemærk, at du kan gendanne en database fra et enkelt sikkerhedskopisæt af transaktionslogfiler og snapshots.
RESTORE DATABASE AdventureWorks2016 FROM URL = 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016_2015_05_18_16_00_00.trn'
WITH RECOVERY, REPLACE ;
Gendan fra en sikkerhedskopi af en SQL Server-filsnapshot til et tidspunkt
I følgende eksempel gendannes AdventureWorks2016 til tilstanden på et angivet tidspunkt ved hjælp af to sikkerhedskopisæt af transaktionslogfiler og øjebliksbillede, og der vises en genoprettelseshandling.
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' ;
Slet et sikkerhedskopisæt til databasefilsnapshot
Hvis du vil slette et sikkerhedskopisæt af typen fil-snapshot, skal du bruge sys.sp_delete_backup systemlagrede procedure. Angiv databasenavnet for at få systemet til at bekræfte, at det angivne sikkerhedskopieringssæt til filsnapshot faktisk er en sikkerhedskopi af den angivne database. Hvis der ikke er angivet et databasenavn, slettes det angivne sikkerhedskopisæt med sine filsnapshots uden en sådan validering.
Hvis du forsøger at slette et sikkerhedskopieringssæt med et filsnapshot ved hjælp af en anden metode, f.eks. Azure Portal eller Azure Storage-fremviseren i SQL Server Management Studio, slettes filsnapshots ikke i sikkerhedskopisættet. Disse værktøjer sletter kun selve sikkerhedskopifilen, der indeholder pointererne til fil-snapshots i sikkerhedskopisættet fil-snapshot. Hvis du vil identificere øjebliksbilleder af sikkerhedskopier, der er tilbage, efter at en sikkerhedskopifil er blevet slettet forkert, skal du bruge systemfunktionen sys.fn_db_backup_file_snapshots og derefter bruge den lagrede procedure for sys.sp_delete_backup_file_snapshot system til at slette et individuelt sikkerhedskopifilsnapshot.
I følgende eksempel slettes det angivne sikkerhedskopisæt til fil-snapshot, herunder sikkerhedskopifilen og de fil-snapshots, der består af det angivne sikkerhedskopisæt.
sys.sp_delete_backup 'https://[mystorageaccountname].blob.core.windows.net/[mycontainername]/AdventureWorks2016.bak', 'adventureworks2016' ;
Vis sikkerhedskopiering af databasefilsnapshots
Hvis du vil have vist snapshots af basisblob for hver databasefil, skal du bruge systemfunktionen sys.fn_db_backup_file_snapshots. Denne systemfunktion giver dig mulighed for at få vist alle sikkerhedskopieringsfilsnapshots af hver grundlæggende blob for en database, der er gemt ved hjælp af Azure Blob Storage-tjenesten. En primær use case for denne funktion er at identificere øjebliksbilleder af sikkerhedskopier af en database, der forbliver, når sikkerhedskopifilen for et sikkerhedskopisæt af typen fil-snapshot slettes ved hjælp af en anden mekanisme end den lagrede procedure for sys.sp_delete_backup system. Hvis du vil finde de sikkerhedskopieringsfilsnapshots, der er en del af intakte sikkerhedskopisæt, og dem, der ikke er en del af intakte sikkerhedskopisæt, skal du bruge den lagrede procedure RESTORE FILELISTONLY til at få vist de filsnapshots, der tilhører hver sikkerhedskopifil.
I følgende eksempel returneres listen over alle sikkerhedskopieringsfilsnapshots for den angivne database.
USE AdventureWorks2016
select * from sys.fn_db_backup_file_snapshots (null) ;
GO
select * from sys.fn_db_backup_file_snapshots ('AdventureWorks2016') ;
Slet et enkelt sikkerhedskopieringsfilsnapshot til en database
Hvis du vil slette et individuelt sikkerhedskopieringsfilsnapshot af en databasebaseblob, skal du bruge sys.sp_delete_backup_file_snapshot systemlagrede procedure. En primær use case for denne systemlagrede procedure er at slette tabte filer med snapshotfiler, der er tilbage, efter at en sikkerhedskopifil er blevet slettet, ved hjælp af en anden metode end den sys.sp_delete_backup systemlagrede procedure.
Advarsel
Hvis du sletter et individuelt filsnapshot, der er en del af et sikkerhedskopieringssæt til filsnapshot, bliver sikkerhedskopisættet ugyldigt.
I følgende eksempel slettes det angivne sikkerhedskopieringsfilsnapshot. URL-adressen til den angivne sikkerhedskopi blev hentet ved hjælp af systemfunktionen sys.fn_db_backup_file_snapshots.
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' ;