Dela via


Säkerhetskopiera och återställa SQL Server-databaser

Gäller för:SQL Server

Den här artikeln beskriver fördelarna med att säkerhetskopiera SQL Server-databaser, beskriver grundläggande villkor för säkerhetskopiering och återställning och introducerar säkerhetskopierings- och återställningsstrategier för SQL Server och säkerhetsöverväganden för säkerhetskopiering och återställning av SQL Server.

Den här artikeln introducerar SQL Server-säkerhetskopior. Specifika steg för att säkerhetskopiera SQL Server-databaser finns i Skapa säkerhetskopior.

Sql Server-komponenten för säkerhetskopiering och återställning ger ett viktigt skydd för att skydda viktiga data som lagras i dina SQL Server-databaser. För att minimera risken för katastrofal dataförlust måste du säkerhetskopiera dina databaser för att regelbundet bevara ändringar av dina data. En välplanerad strategi för säkerhetskopiering och återställning hjälper till att skydda databaser mot dataförlust som orsakas av en mängd olika fel. Testa din strategi genom att återställa en uppsättning säkerhetskopior och sedan återställa databasen för att förbereda dig för att effektivt reagera på en katastrof.

Förutom lokal lagring för lagring av säkerhetskopiorna stöder SQL Server även säkerhetskopiering till och återställning från Azure Blob Storage. Mer information finns i Säkerhetskopiering och återställning av SQL Server med Microsoft Azure Blob Storage. För databasfiler som lagras med Azure Blob Storage ger SQL Server 2016 (13.x) möjlighet att använda Azure-ögonblicksbilder för nästan omedelbar säkerhetskopiering och snabbare återställningar. Mer information finns i Säkerhetskopiering av ögonblicksbilder av databasfiler i Azure. Azure erbjuder även en säkerhetskopieringslösning i företagsklass för SQL Server som körs på virtuella Azure-datorer. Den är en fullständigt hanterad säkerhetskopieringslösning som stöder AlwaysOn-tillgänglighetsgrupper, långsiktig kvarhållning, återställning till tidpunkt och central hantering och övervakning. Mer information finns i Om SQL Server-säkerhetskopiering på virtuella Azure-datorer.

Varför säkerhetskopiera?

  • När du säkerhetskopierar dina SQL Server-databaser, kör teståterställningsprocedurer på dina säkerhetskopior och lagrar kopior av säkerhetskopior på en säker plats utanför platsen, skyddas du från potentiellt katastrofal dataförlust. Säkerhetskopiering är det enda sättet att skydda dina data.

    Med giltiga säkerhetskopior av en databas kan du återställa dina data från många fel, till exempel:

    • Mediefel.
    • Användarfel, till exempel att ta bort en tabell av misstag.
    • Maskinvarufel, till exempel en skadad diskenhet eller permanent förlust av en server.
    • Naturkatastrofer. Genom att använda SQL Server Backup till Azure Blob Storage kan du skapa en säkerhetskopia utanför platsen i en annan region än din lokala plats, som ska användas i händelse av en naturkatastrof som påverkar din lokala plats.
  • Dessutom är säkerhetskopior av en databas användbara för rutinmässiga administrativa ändamål, till exempel att kopiera en databas från en server till en annan, konfigurera AlwaysOn-tillgänglighetsgrupper eller databasspegling och arkivering.

Ordlista över säkerhetskopieringsvillkor

säkerhetskopiera [verb]
Processen att skapa en säkerhetskopia [substantiv] genom att kopiera dataposter från en SQL Server-databas eller loggposter från transaktionsloggen.

backup [substantiv]
En kopia av data som du kan använda för att återställa och återställa data efter ett fel. Säkerhetskopior av en databas kan också användas för att återställa en kopia av databasen till en ny plats.

säkerhetskopieringsenhet
En disk eller bandenhet som SQL Server-säkerhetskopior skrivs till och från vilka de kan återställas. SQL Server-säkerhetskopior kan också skrivas till en Azure Blob Storage och URL-format används för att ange målet och namnet på säkerhetskopieringsfilen. Mer information finns i Säkerhetskopiering och återställning av SQL Server med Microsoft Azure Blob Storage.

säkerhetskopieringsmedia
Ett eller flera band eller diskfiler som en eller flera säkerhetskopior har skrivits till.

säkerhetskopiering av data
En säkerhetskopia av data i en fullständig databas (en databassäkerhetskopia), en partiell databas (en partiell säkerhetskopia) eller en uppsättning datafiler eller filgrupper (en filsäkerhetskopia).

databassäkerhetskopiering
En säkerhetskopia av en databas. Fullständiga databassäkerhetskopior representerar hela databasen när säkerhetskopieringen slutfördes. Differentiella databassäkerhetskopior innehåller endast ändringar som gjorts i databasen sedan den senaste fullständiga databassäkerhetskopian.

differentiell säkerhetskopiering
En datasäkerhetskopia som baseras på den senaste fullständiga säkerhetskopian av en fullständig eller partiell databas eller en uppsättning datafiler eller filgrupper (differentiell bas) och som endast innehåller de data som har ändrats sedan basen.

fullständig säkerhetskopiering
En datasäkerhetskopia som innehåller alla data i en specifik databas eller uppsättning filgrupper eller filer, och även tillräckligt med logg för att kunna återställa dessa data.

loggsäkerhetskopiering
En säkerhetskopia av transaktionsloggar som innehåller alla loggposter som inte säkerhetskopierades i en tidigare loggsäkerhetskopia (fullständig återställningsmodell).

recover
Så här returnerar du en databas till ett stabilt och konsekvent tillstånd.

återhämtning
En fas av databasstarten eller en återställning med återställning som försätter databasen i ett transaktionskonsekvent tillstånd.

återställningsmodell
En databasegenskap som styr transaktionsloggunderhåll på en databas. Det finns tre återställningsmodeller: enkla, fullständiga och massloggade. En databass återställningsmodell avgör dess krav på säkerhetskopiering och återställning.

återställa
En flerfasprocess som kopierar alla data och loggsidor från en angiven SQL Server-säkerhetskopia till en angiven databas och sedan vidarebefordrar alla transaktioner som loggas i säkerhetskopian genom att använda loggade ändringar för att föra data framåt i tid.

Strategier för säkerhetskopiering och återställning

Säkerhetskopiering och återställning av data måste anpassas till en viss miljö och måste fungera med de tillgängliga resurserna. Därför kräver en tillförlitlig användning av säkerhetskopiering och återställning för återställning en strategi för säkerhetskopiering och återställning. En väl utformad strategi för säkerhetskopiering och återställning balanserar affärskraven för maximal datatillgänglighet och minsta dataförlust med tanke på kostnaden för att underhålla och lagra säkerhetskopior.

En strategi för säkerhetskopiering och återställning innehåller en säkerhetskopieringsdel och en återställningsdel. Säkerhetskopieringsdelen i strategin definierar typen och frekvensen för säkerhetskopior, vilken typ och hastighet de behöver av maskinvaran, hur säkerhetskopior ska testas och var och hur säkerhetskopieringsmedia ska lagras (inklusive säkerhetsöverväganden). Återställningsdelen i strategin definierar vem som ansvarar för att utföra återställningar, hur återställningar ska utföras för att uppfylla dina mål för databastillgänglighet och minimera dataförlust samt hur återställningar testas.

Att utforma en effektiv strategi för säkerhetskopiering och återställning kräver noggrann planering, implementering och testning. Testning krävs: du har ingen säkerhetskopieringsstrategi förrän du har återställt säkerhetskopior i alla kombinationer som ingår i återställningsstrategin och har testat den återställda databasen för fysisk konsekvens. Du måste överväga en mängd olika faktorer. Dessa inkluderar:

  • Organisationens mål för dina produktionsdatabaser, särskilt kraven på tillgänglighet och skydd av data från förlust eller skada.

  • Varje databass karaktär: dess storlek, dess användningsmönster, innehållets art, kraven för dess data och så vidare.

  • Begränsningar för resurser, till exempel maskinvara, personal, utrymme för lagring av säkerhetskopieringsmedia, den fysiska säkerheten för det lagrade mediet och så vidare.

Rekommendationer för bästa praxis

Konton som utför säkerhetskopierings- eller återställningsåtgärder bör inte beviljas fler privilegier än nödvändigt. Granska säkerhetskopiering och återställning för specifik behörighetsinformation. Vi rekommenderar att säkerhetskopior krypteras och om möjligt komprimeras.

För att säkerställa säkerheten bör säkerhetskopieringsfiler ha tillägg som följer rätt konventioner:

  • Databassäkerhetskopieringsfiler .BAK bör ha tillägget
  • Loggsäkerhetskopieringsfiler .TRN bör ha tillägget.

Använda separat lagring

Viktigt!

Se till att du placerar dina databassäkerhetskopior på en separat fysisk plats eller enhet från databasfilerna. När din fysiska enhet som lagrar dina databaser inte fungerar eller kraschar beror återställningsbarheten på möjligheten att komma åt den separata enhet eller fjärrenhet som lagrade säkerhetskopiorna för att kunna utföra en återställning. Tänk på att du kan skapa flera logiska volymer eller partitioner från samma fysiska diskenhet. Studera noggrant diskpartitionen och de logiska volymlayouterna innan du väljer en lagringsplats för säkerhetskopiorna.

Välj lämplig återställningsmodell

Säkerhetskopierings- och återställningsåtgärder sker inom ramen för en återställningsmodell. En återställningsmodell är en databasegenskap som styr hur transaktionsloggen hanteras. Därför avgör en databass återställningsmodell vilka typer av säkerhetskopieringar och återställningsscenarier som stöds för databasen och vilken storlek säkerhetskopieringen av transaktionsloggen skulle vara. Vanligtvis använder en databas antingen den enkla återställningsmodellen eller den fullständiga återställningsmodellen. Du kan utöka den fullständiga återställningsmodellen genom att växla till den massloggade återställningsmodellen före massåtgärder. En introduktion till dessa återställningsmodeller och hur de påverkar hantering av transaktionsloggar finns i transaktionsloggen.

Det bästa valet av återställningsmodell för databasen beror på dina affärskrav. Använd den enkla återställningsmodellen för att undvika hantering av transaktionsloggar och förenkla säkerhetskopiering och återställning. Använd den fullständiga återställningsmodellen för att minimera exponeringen av arbetsförluster på bekostnad av administrativa kostnader. Om du vill minimera påverkan på loggstorleken under massloggade åtgärder samtidigt som du tillåter återställning av dessa åtgärder använder du en massloggad återställningsmodell. Information om effekten av återställningsmodeller på säkerhetskopiering och återställning finns i Översikt över säkerhetskopiering.

Utforma din strategi för säkerhetskopiering

När du har valt en återställningsmodell som uppfyller dina affärskrav för en specifik databas måste du planera och implementera en motsvarande säkerhetskopieringsstrategi. Den optimala säkerhetskopieringsstrategin beror på en mängd olika faktorer, varav följande är särskilt viktiga:

  • Hur många timmar om dagen måste program komma åt databasen?

    Om det finns en förutsägbar lågbelastningsperiod rekommenderar vi att du schemalägger fullständiga databassäkerhetskopior för den perioden.

  • Hur ofta kommer det sannolikt att ske ändringar och uppdateringar?

    Om ändringarna är frekventa bör du tänka på följande:

    • Under den enkla återställningsmodellen bör du överväga att schemalägga differentiella säkerhetskopior mellan fullständiga databassäkerhetskopior. En differentiell säkerhetskopia samlar bara in ändringarna sedan den senaste fullständiga databassäkerhetskopian.

    • Under den fullständiga återställningsmodellen bör du schemalägga frekventa loggsäkerhetskopior. Schemaläggning av differentiella säkerhetskopior mellan fullständiga säkerhetskopior kan minska återställningstiden genom att minska antalet loggsäkerhetskopior som du måste återställa när du har återställt data.

  • Kommer det sannolikt att ske ändringar i endast en liten del av databasen eller i en stor del av databasen?

    För en stor databas där ändringar koncentreras i en del av filerna eller filgrupperna kan partiella säkerhetskopior och eller fullständiga filsäkerhetskopior vara användbara. Mer information finns i Partiella säkerhetskopior (SQL Server) och Fullständiga filsäkerhetskopior (SQL Server).

  • Hur mycket diskutrymme kommer en fullständig databassäkerhetskopia att kräva?

  • Hur långt tidigare behöver företaget underhålla säkerhetskopior?

    Kontrollera att du har ett korrekt schema för säkerhetskopiering som har upprättats enligt kraven för programmet och verksamheten. När säkerhetskopiorna blir gamla är risken för dataförlust högre om du inte har ett sätt att återskapa alla data till felpunkten. Innan du väljer att ta bort gamla säkerhetskopior på grund av begränsningar för lagringsresurser bör du överväga om återställning krävs så långt tidigare.

Beräkna storleken på en fullständig databassäkerhetskopia

Innan du implementerar en strategi för säkerhetskopiering och återställning bör du uppskatta hur mycket diskutrymme en fullständig databassäkerhetskopia ska använda. Säkerhetskopieringsåtgärden kopierar data i databasen till säkerhetskopian. Säkerhetskopian innehåller endast faktiska data i databasen och inte något oanvänt utrymme. Därför är säkerhetskopieringen vanligtvis mindre än själva databasen. Du kan uppskatta storleken på en fullständig databassäkerhetskopia med hjälp av den sp_spaceused system lagrade proceduren. Mer information finns i sp_spaceused (Transact-SQL).

Schemalägga säkerhetskopieringar

Att utföra en säkerhetskopieringsåtgärd har minimal effekt på transaktioner som körs. Därför kan du köra säkerhetskopieringsåtgärder under vanliga åtgärder. Du kan utföra en SQL Server-säkerhetskopiering med minimal effekt på produktionsarbetsbelastningar.

Information om samtidighetsbegränsningar under säkerhetskopiering finns i Översikt över säkerhetskopiering (SQL Server).

När du har bestämt vilka typer av säkerhetskopior du behöver och hur ofta du måste utföra varje typ rekommenderar vi att du schemalägger regelbundna säkerhetskopieringar som en del av en databasunderhållsplan för databasen. Information om underhållsplaner och hur du skapar dem för säkerhetskopior av databaser och loggsäkerhetskopior finns i Använda guiden Underhållsplan.

Testa dina säkerhetskopior

Du har ingen återställningsstrategi förrän du har testat dina säkerhetskopior. Det är mycket viktigt att noggrant testa din säkerhetskopieringsstrategi för var och en av dina databaser genom att återställa en kopia av databasen till ett testsystem. Du måste testa att återställa alla typer av säkerhetskopior som du tänker använda. Vi rekommenderar också att du utför databaskonsekvenskontroller via DBCC CHECKDB för databasen när du har återställt säkerhetskopian för att verifiera att säkerhetskopieringsmediet inte har skadats.

Kontrollera mediestabilitet och konsekvens

Använd verifieringsalternativen som tillhandahålls av säkerhetskopieringsverktygen (BACKUP T-SQL-kommandot, UNDERHÅLLsplaner för SQL Server, säkerhetskopieringsprogramvaran eller lösningen osv.). Ett exempel finns i RESTORE-instruktioner – VERIFYONLY.

Använd avancerade funktioner som BACKUP CHECKSUM att identifiera problem med själva säkerhetskopieringsmediet. Mer information finns i Möjliga mediefel vid säkerhetskopiering och återställning (SQL Server)

Strategi för dokumentsäkerhetskopiering/återställning

Vi rekommenderar att du dokumenterar dina säkerhetskopierings- och återställningsprocedurer och behåller en kopia av dokumentationen i din körningsbok. Vi rekommenderar också att du underhåller en åtgärdshandbok för varje databas. Den här åtgärdshandboken ska dokumentera platsen för säkerhetskopiorna, namn på säkerhetskopieringsenheter (om några) och hur lång tid som krävs för att återställa testsäkerhetskopiorna.

Övervaka förloppet med XEvent

Säkerhetskopierings- och återställningsåtgärder kan ta lång tid på grund av storleken på en databas och komplexiteten i de åtgärder som ingår. När det uppstår problem med någon av operationerna kan du använda den backup_restore_progress_trace utökade händelsen för att övervaka förloppet live. Mer information om utökade händelser finns i Översikt över utökade händelser.

Varning

Om du använder den backup_restore_progress_trace utökade händelsen kan det orsaka prestandaproblem och förbruka en betydande mängd diskutrymme. Använd under korta tidsperioder, var försiktig och testa noggrant innan du implementerar i produktion.

-- Create the backup_restore_progress_trace extended event session
CREATE EVENT SESSION [BackupRestoreTrace] ON SERVER
ADD EVENT sqlserver.backup_restore_progress_trace
ADD TARGET package0.event_file(SET filename=N'BackupRestoreTrace')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO

-- Start the event session
ALTER EVENT SESSION [BackupRestoreTrace]
ON SERVER
STATE = start;
GO

-- Stop the event session
ALTER EVENT SESSION [BackupRestoreTrace]
ON SERVER
STATE = stop;
GO

Exempelutdata från utökad händelse

Skärmbild av ett exempel på säkerhetskopiera xevent-utdata. Skärmbild av ett exempel på säkerhetskopiera xevent-utdata, fortsatte.

Mer om säkerhetskopieringsuppgifter

Arbeta med säkerhetskopieringsenheter och säkerhetskopieringsmedia

Skapa säkerhetskopior

Anmärkning

För partiella eller kopieringsbaserade säkerhetskopior måste du använda instruktionen Transact-SQL BACKUP med PARTIAL alternativet eller COPY_ONLY .

Använda SSMS

Använda T-SQL

Återställa datasäkerhetskopior

Använda SSMS

Använda T-SQL

Återställa transaktionsloggar (fullständig återställningsmodell)

Använda SSMS

Använda T-SQL