Översikt över återställning och återhämtning (SQL Server)
gäller för:SQL Server
Den här artikeln innehåller en översikt över databasåterställnings- och återställningsprocessen för SQL Server.
Överblick
För att återställa en SQL Server-databas från ett fel måste en databasadministratör återställa en uppsättning SQL Server-säkerhetskopior i en logiskt korrekt och meningsfull återställningssekvens. Återställnings- och återställningsprocessen för SQL Server stöder återställning av data från säkerhetskopior av en hel databas, en datafil eller en datasida enligt följande:
Databasen (en fullständig databasåterställning)
Hela databasen återställs och återhämtas, och databasen är offline under återställnings- och återhämtningsåtgärderna.
Datafilen (en filåterställning)
En datafil eller en uppsättning filer återställs och återskapas. Under en filåterställning är de filgrupper som innehåller filerna automatiskt offline under återställningen. Alla försök att komma åt en offlinefilgrupp orsakar ett fel.
Datasidan (en sidåterställning)
Under den fullständiga återställningsmodellen eller den massloggade återställningsmodellen kan du återställa enskilda sidor. Sidåterställningar kan utföras på valfri databas, oavsett antalet filgrupper.
SÄKERHETSKOPIERing och återställning av SQL Server fungerar i alla operativsystem som stöds. Information om vilka operativsystem som stöds finns i maskinvaru- och programvarukrav. Information om stöd för säkerhetskopieringar från tidigare versioner av SQL Server finns i avsnittet Compatibility Support i RESTORE.
Återställningsscenarier
Ett återställningsscenario i SQL Server är processen att återställa data från en eller flera säkerhetskopior och sedan återställa databasen. Vilka återställningsscenarier som stöds beror på databasens återställningsmodell och utgåva av SQL Server.
I följande tabell beskrivs möjliga återställningsscenarier som stöds för olika återställningsmodeller.
Återställningsscenario | Enligt enkel återhämtningsmodell | Under fullständiga/massloggade återställningsmodeller |
---|---|---|
Slutför databasåterställning | Den grundläggande återställningsstrategin. En fullständig återställning av databasen kan innebära att du helt enkelt återställer och återhämtar en säkerhetskopia av hela databasen. En fullständig databasåterställning kan också innebära att du återställer en fullständig databassäkerhetskopia följt av återställning och återställning av en differentiell säkerhetskopia. Mer information finns i Complete Database Restores (Simple Recovery Model). |
Den grundläggande återställningsstrategin. En fullständig databasåterställning omfattar återställning av en fullständig databassäkerhetskopia och eventuellt en differentiell säkerhetskopia (om någon) följt av återställning av alla efterföljande loggsäkerhetskopior (i sekvens). Den fullständiga databasåterställningen är klar genom att återställa den senaste loggsäkerhetskopian och även återskapa den (ÅTERSTÄLL MED ÅTERSTÄLLNING). Mer information finns i Fullständig databasåterställning (fullständig återställningsmodell) |
Filåterställning 1 | Återställ en eller flera skadade skrivskyddade filer utan att återställa hela databasen. Filåterställning är endast tillgängligt om databasen har minst en skrivskyddad filgrupp. | Återställer en eller flera filer utan att återställa hela databasen. Filåterställning kan utföras när databasen är offline eller, för vissa utgåvor av SQL Server, medan databasen förblir online. Under en filåterställning är de filgrupper som innehåller de filer som återställs alltid offline. |
Sidåterställning | Ej tillämpligt | Återställer en eller flera skadade sidor. Sidåterställning kan utföras när databasen är offline eller, för vissa utgåvor av SQL Server, medan databasen förblir online. Under en sidåterställning är de sidor som återställs alltid offline. En obruten kedja av loggsäkerhetskopior måste vara tillgänglig, ända fram till den aktuella loggfilen, och alla måste tillämpas för att uppdatera sidan up-totill den aktuella loggfilens status. Mer information finns i Restore Pages (SQL Server). |
Styckeåterställning 1 | Återställa och återfå databasen stegvis på filgruppsnivå, med början i den primära filgruppen och alla läs-/skrivbara, sekundära filgrupper. | Återställ och återställ databasen i faser på filgruppsnivå, från och med den primära filgruppen. Mer information finns i Stegvisa återställningar (SQL Server) |
1 Online-återställning stöds endast i Enterprise Edition.
Steg för att återställa en databas
Databasmotorn utför två steg för att utföra en filåterställning:
Skapar eventuella saknade databasfiler.
Kopierar data från säkerhetskopieringsenheterna till databasfilerna.
Databasmotorn utför tre steg för att utföra en databasåterställning:
Skapar databasen och transaktionsloggfilerna om de inte redan finns.
Kopierar alla data-, logg- och indexsidor från säkerhetskopieringsmedia för en databas till databasfilerna.
Tillämpar transaktionsloggen i det som kallas återställningsprocessen.
Oavsett hur data återställs garanterar SQL Server Database Engine att hela databasen är logiskt konsekvent innan en databas kan återställas. Om du till exempel återställer en fil kan du inte återställa den och aktivera den förrän den har rullats tillräckligt långt för att vara konsekvent med databasen.
Fördelar med en fil- eller sidåterställning
Återställning och återställning av filer eller sidor i stället för hela databasen ger följande fördelar:
Återställning av mindre data minskar den tid som krävs för att kopiera och återställa dem.
Om du återställer filer eller sidor i SQL Server kan andra data i databasen vara online under återställningen.
Återställning och transaktionsloggen
I de flesta återställningsscenarier är det nödvändigt att använda en säkerhetskopia av transaktionsloggen och låta SQL Server Database Engine köra återställningsprocessen för att databasen ska kunna tas online. Återställning är den process som används av SQL Server för varje databas för att starta i ett transaktionsmässigt konsekvent - eller rent - tillstånd.
Om det sker en redundansväxling eller en annan icke-ren avstängning kan databaserna vara kvar i ett tillstånd där vissa ändringar aldrig har skrivits från buffertcachen till datafilerna, och det kan finnas vissa ändringar från ofullständiga transaktioner i datafilerna. När en instans av SQL Server startas körs en återställning av varje databas, som består av tre faser, baserat på den senaste databaskontrollpunkt:
Fas 1 är Analysis Phase som analyserar transaktionsloggen för att avgöra vad som är den sista kontrollpunkten och skapar dirty page table (DPT) och Active Transaction Table (ATT). DPT innehåller poster med sidor som var felaktiga när databasen stängdes av. ATT innehåller poster för transaktioner som var aktiva vid den tidpunkt då databasen inte stängdes av.
Fas 2 är Gör om fas som vidarebefordrar varje ändring som registrerats i loggen som kanske inte har skrivits till datafilerna när databasen stängdes av. Det minsta loggsekvensnummer (minLSN) som krävs för en lyckad databasomfattande återställning finns i DPT och markerar början på de redo-operationer som behövs på alla smutsiga sidor. I den här fasen skriver SQL Server Database Engine till disken alla smutsiga sidor som tillhör incheckade transaktioner.
fas 3 är Ångra fas som återställer ofullständiga transaktioner som finns i ATT för att säkerställa att databasens integritet bevaras. Efter återställningen går databasen online och inga fler säkerhetskopieringar av transaktionsloggar kan tillämpas på databasen.
Information om förloppet för varje databasåterställningssteg loggas i SQL Server-felloggen. Databasens återställningsstatus kan också spåras med hjälp av utökade händelser. Mer information finns i blogginlägget Nya utökade händelser för databasåterställningsförlopp.
Not
För en stegvis återställningssituation, om en skrivskyddad filgrupp har varit skrivskyddad sedan innan filsäkerhetskopian skapades, är det inte nödvändigt att tillämpa loggsäkerhetskopior på filgruppen, och detta steg hoppas över av filåterställningen.
Obs
För att maximera tillgängligheten för databaser i en företagsmiljö när SQL Server-tjänsten har startats, till exempel efter en redundansväxling av en Always On-redundansklusterinstans eller en lokal omstart, kan SQL Server Enterprise Edition ta en databas online efter Återställningsfasen, medan Ångra-fasen fortfarande körs. Detta kallas Fast Recovery. Fast Recovery är dock inte tillgängligt när databasen övergår till ett onlinetillstånd, men SQL Server-tjänsten har inte startats om. Om du till exempel kör ALTER DATABASE AdventureWorks SET ONLINE;
kan databasen inte vara i läs- och skrivläge förrän alla tre faserna av återställningen har slutförts.
Återställningsmodeller och återställningsåtgärder som stöds
Vilka återställningsåtgärder som är tillgängliga för en databas beror på dess återställningsmodell. I följande tabell sammanfattas om och i vilken utsträckning var och en av återställningsmodellerna stöder ett givet återställningsscenario.
Återställningsprocess | Fullständig återställningsmodell | Massloggad återställningsmodell | Enkel återställningsmodell |
---|---|---|---|
Dataräddning | Fullständig återställning (om loggen är tillgänglig). | Viss exponering för dataförlust. | Alla data sedan den senaste fullständiga eller differentiella säkerhetskopieringen går förlorade. |
Återställning till en viss tidpunkt | All tid som täcks av loggsäkerhetskopiorna. | Tillåts inte om loggsäkerhetskopian innehåller massloggade ändringar. | Stöds inte. |
Filåterställning 1 | Fullständigt stöd. | Ibland. 2 | Endast tillgängligt för skrivskyddade sekundära filer. |
Sidåterställning 1 | Fullständigt stöd. | Ibland. 2 | Ingen. |
Stegvis återställning (filgruppsnivå) 1 | Fullständigt stöd. | Ibland. 2 | Endast tillgängligt för skrivskyddade sekundära filer. |
1 Endast tillgängligt i Enterprise-versionen av SQL Server
2 För de villkor som krävs, se Återställningsbegränsningar under Simple Recovery Model, senare i den här artikeln.
Viktig
Oavsett återställningsmodellen för en databas går det inte att återställa en SQL Server-säkerhetskopia till en SQL Server Database Engine-version som är äldre än den version som skapade säkerhetskopian.
Återställningsscenarier under den enkla återställningsmodellen
Den enkla återställningsmodellen tillämpar följande begränsningar för återställningsåtgärder:
Filåterställning och bitåterställning är endast tillgängliga för skrivskyddade sekundära filgrupper. Information om dessa återställningsscenarier finns i Filåterställningar (enkel återställningsmodell) och Sekventiella återställningar (SQL Server).
Sidåterställning tillåts inte.
Återställning till en viss tidpunkt är inte tillåten.
Om någon av dessa begränsningar är olämpliga för dina återställningsbehov rekommenderar vi att du överväger att använda den fullständiga återställningsmodellen. Mer information finns i Översikt över säkerhetskopiering (SQL Server).
Viktig
Oavsett återställningsmodellen för en databas kan en SQL Server-säkerhetskopiering inte återställas av en version av SQL Server som är äldre än den version som skapade säkerhetskopian.
Återställa under den massloggade återställningsmodellen
I det här avsnittet beskrivs återställningsöverväganden som är unika för en massloggad återställningsmodell, som endast är avsedd som ett komplement till den fullständiga återställningsmodellen.
Obs
En introduktion till den massloggade återställningsmodellen finns i Transaktionsloggen.
I allmänhet liknar den massloggade återställningsmodellen den fullständiga återställningsmodellen, och informationen som beskrivs för den fullständiga återställningsmodellen gäller även för båda. Återställning vid en specifik tidpunkt och online-återställning påverkas av den massloggade återställningsmodellen.
Begränsningar för återställning till en viss tidpunkt
Om loggen säkerhetskopieras med massloggad återställningsmodell och innehåller massloggade ändringar, tillåts inte återställning till en specifik tidpunkt. Om du försöker utföra återställning vid en viss tidpunkt på en loggsäkerhetskopia som innehåller massändringar, misslyckas återställningen.
Begränsningar för onlineåterställning
En onlineåterställningssekvens fungerar endast om följande villkor uppfylls:
Alla nödvändiga loggsäkerhetskopior måste ha gjorts innan återställningssekvensen startar.
Massändringar måste säkerhetskopieras innan du startar onlineåterställningssekvensen.
Om det finns massändringar i databasen måste alla filer antingen vara online eller defunct (dvs. inte längre en del av databasen).
Om dessa villkor inte uppfylls misslyckas onlineåterställningssekvensen.
Notera
Vi rekommenderar att du byter till den fullständiga återställningsmodellen innan du startar en onlineåterställning. Mer information finns i Recovery-modeller (SQL Server).
Information om hur du utför en onlineåterställning finns i Online Restore (SQL Server).
Database Recovery Advisor (SQL Server Management Studio)
Database Recovery Advisor underlättar konstruera återställningsplaner som implementerar optimala korrekta återställningssekvenser. Många kända problem med databasåterställning och förbättringar som kunderna har begärt har åtgärdats. Viktiga förbättringar som introducerades av Database Recovery Advisor är:
algoritm för återställningsplan: Algoritmen som används för att konstruera återställningsplaner har förbättrats avsevärt, särskilt för komplexa återställningsscenarier. Många gränsfall, inklusive förgreningsscenarier vid återställningar till ögonblicksbild, hanteras mer effektivt än i tidigare versioner av SQL Server.
Tidpunktsåterställningar: Database Recovery Advisor avsevärt underlättar att återställa en databas till en viss tidpunkt. En tidslinje för visuell säkerhetskopiering förbättrar avsevärt stödet för återställningar till tidpunkt. Med den här visuella tidslinjen kan du välja en lämplig tidpunkt som återställningspunkt för att återställa en databas. Tidslinjen gör det lättare att bläddra i en förgrenad återställningssökväg (en sökväg som sträcker sig över återställningsförgreningar). En återställningsplan för en specifik tidpunkt inkluderar automatiskt de säkerhetskopior som är relevanta för återställningen till måltidpunkten (datum och tid). Mer information finns i Återställa en SQL Server-databas till en tidpunkt (fullständig återställningsmodell).
Mer information finns i om Database Recovery Advisor i följande SQL Server Manageability-bloggar:
Accelererad databasåterställning
Accelererad databasåterställning (ADR) är tillgänglig från och med SQL Server 2019 (15.x). ADR är också tillgängligt i Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (endast dedikerad SQL-pool) och SQL-databas i Microsoft Fabric. Accelererad databasåterställning förbättrar databasens tillgänglighet avsevärt, särskilt i närvaro av långvariga transaktioner, genom att omdesigna SQL Server Database Engine återställningsprocess. En databas med ADR aktiverat slutför återställningsprocessen betydligt snabbare efter en redundansväxling eller annan oväntad avstängning. När ADR är aktiverat slutförs återställningen av avbrutna långvariga transaktioner omedelbart.
Du kan aktivera ADR per databas i SQL Server 2019 (15.x) och senare versioner med hjälp av följande syntax:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Not
ADR är alltid aktiverat i Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (endast dedikerad SQL-pool) och SQL-databas i Microsoft Fabric.