Dela via


Använda säkerhetskopieringar av transaktionsloggar (SQL Server)

gäller för:SQL Server

Ämnet är endast relevant för den fullständiga återställningsmodellen eller den massloggade återställningsmodellen.

I det här avsnittet beskrivs hur du använder säkerhetskopior av transaktionsloggar som en del av återställningen av en SQL Server-databas.

Krav för att återställa säkerhetskopior av transaktionsloggar

Om du vill använda en säkerhetskopia av transaktionsloggen måste följande krav uppfyllas:

  • Tillräckligt med loggsäkerhetskopior för en återställningssekvens: Du måste ha tillräckligt med loggposter säkerhetskopierade för att slutföra en återställningssekvens. Nödvändiga loggsäkerhetskopior, inklusive svansloggsäkerhetskopian där det behövs, måste vara tillgängliga innan återställningssekvensen startar.

  • Rätt återställningsordning: Den omedelbart tidigare fullständiga säkerhetskopieringen eller säkerhetskopieringen av differentiella databaser måste återställas först. Sedan måste alla transaktionsloggar som skapas efter den fullständiga eller differentiella databassäkerhetskopian återställas i kronologisk ordning. Om en säkerhetskopia av transaktionsloggen i den här loggkedjan går förlorad eller skadas kan du bara återställa transaktionsloggar före den saknade transaktionsloggen.

  • Databasen har ännu inte återställts: Databasen kan inte återställas förrän den slutliga transaktionsloggen har tillämpats. Om du återställer databasen efter att du har återställt en av de mellanliggande säkerhetskopiorna för transaktionsloggen kan du inte återställa databasen efter den punkten utan att starta om den fullständiga återställningssekvensen, med början i den fullständiga databassäkerhetskopian.

    Tips

    Bästa praxis är att återställa alla loggsäkerhetskopior (RESTORE LOG *database_name* WITH NORECOVERY). När du har återställt den senaste loggsäkerhetskopian återställer du sedan databasen i en separat åtgärd (RESTORE DATABASE *database_name* WITH RECOVERY).

Återställnings- och transaktionsloggar

När du har slutfört återställningsåtgärden och återställer databasen körs återställningsprocessen för att säkerställa databasens integritet. Mer information om återställningsprocessen finns i Översikt över återställning och återhämtning (SQL Server).

När återställningsprocessen är klar går databasen online och inga fler säkerhetskopieringar av transaktionsloggar kan tillämpas på databasen. Till exempel innehåller en serie säkerhetskopior av transaktionsloggar en tidskrävande transaktion. Starten av transaktionen registreras i den första säkerhetskopieringen av transaktionsloggen, men slutet av transaktionen registreras i den andra säkerhetskopieringen av transaktionsloggen. Det finns ingen post för en inchecknings- eller återställningsåtgärd i den första säkerhetskopieringen av transaktionsloggen. Om en återställningsåtgärd körs när den första säkerhetskopieringen av transaktionsloggen tillämpas behandlas den långvariga transaktionen som ofullständig och dataändringar som registreras i den första säkerhetskopieringen av transaktionsloggen för transaktionen återställs. SQL Server tillåter inte att den andra säkerhetskopieringen av transaktionsloggen tillämpas efter den här punkten.

Anteckning

I vissa fall kan du uttryckligen lägga till en fil under loggåterställningen.

Använda loggsäkerhetskopior för att återställa till felpunkten

Anta följande händelsesekvens.

Tid Händelse
08:00 på morgonen Säkerhetskopiera databasen för att skapa en fullständig säkerhetskopia av databasen.
Middag Säkerhetskopiera transaktionsloggen.
16:00 Säkerhetskopiera transaktionsloggen.
18:00 Säkerhetskopiera databasen för att skapa en fullständig säkerhetskopia av databasen.
20.00. Säkerhetskopiera transaktionsloggen.
21:45 Fel inträffar.

En förklaring av den här exempelsekvensen med säkerhetskopior finns i Säkerhetskopior av transaktionsloggar (SQL Server).

Om du vill återställa databasen till dess tillstånd klockan 21:45 (felpunkten) kan någon av följande alternativa procedurer användas:

Alternativ 1: Återställ databasen med hjälp av den senaste fullständiga databassäkerhetskopian

  1. Skapa en säkerhetskopia av den aktiva transaktionsloggen från och med felpunkten.

  2. Återställ inte den fullständiga databassäkerhetskopian klockan 08:00 på morgonen. Återställ i stället den senaste fullständiga databassäkerhetskopian 18:00 och tillämpa sedan 8:00-P.M. log säkerhetskopian och säkerhetskopian av slutloggen.

Alternativ 2: Återställ databasen med hjälp av en tidigare fullständig databassäkerhetskopia

Den här alternativa processen är användbar om ett problem hindrar dig från att använda den fullständiga säkerhetskopian av databasen kl 18.00. Den här processen tar längre tid än att återställa från den fullständiga databassäkerhetskopian klockan 18.00.

  1. Skapa en tail-log-säkerhetskopia av den aktuellt aktiva transaktionsloggen från felpunkten.

  2. Återställ 8:00 A.M. fullständig databassäkerhetskopia och återställ sedan alla fyra säkerhetskopior av transaktionsloggen i följd. Detta vidarebefordrar alla slutförda transaktioner fram till 21:45.

    Det här alternativet pekar på den redundanta säkerhet som erbjuds genom att underhålla en kedja av säkerhetskopior av transaktionsloggar i en serie fullständiga databassäkerhetskopior.

I vissa fall kan du också använda transaktionsloggar för att återställa en databas till en viss tidpunkt. För mer information, se Återställa en SQL Server-databas till en tidpunkt (fullständig återställningsmodell).

Relaterade uppgifter

Så här använder du en säkerhetskopiering av transaktionsloggar

Återställ till din återställningspunkt

Återställa en databas efter återställning av säkerhetskopior med HJÄLP av WITH NORECOVERY

Se även

Transaktionsloggen (SQL Server)
arkitektur och hanteringsguide för SQL Server-transaktionsloggar