Dela via


Återställning av relaterade databaser som innehåller markerad transaktion

gäller för:SQL Server

Det här avsnittet är endast relevant för databaser som innehåller markerade transaktioner och som använder de fullständiga eller massloggade återställningsmodellerna.

Information om kraven för att återställa till en viss återställningspunkt finns i Återställa en SQL Server-databas till en tidpunkt (fullständig återställningsmodell).

SQL Server stöder infogning av namngivna märken i transaktionsloggen för att tillåta återställning till det specifika märket. Loggmarkeringar är transaktionsspecifika och infogas endast om deras associerade transaktion begås. Därför kan märken kopplas till specifikt arbete och du kan återställa till en punkt som inkluderar eller exkluderar det här arbetet.

Tänk på följande innan du infogar namngivna märken i transaktionsloggen:

Transact-SQL Syntax för att infoga namngivna märken i en transaktionslogg

Om du vill infoga markeringar i transaktionsloggarna använder du instruktionen BEGIN TRANSACTION och WITH MARK [description] -instruktionen. Märket heter samma som transaktionen. Den valfria beskrivningen är en textbeskrivning av märket, inte marknamnet. Till exempel är namnet på både transaktionen och märket som skapas i följande BEGIN TRANSACTION-instruktion Tx1:

BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'    

Transaktionsloggen registrerar markeringsnamnet (transaktionsnamnet), beskrivningen, databasen, användaren, datetime information och loggsekvensnumret (LSN). Den datetime- informationen används med marknamnet för att unikt identifiera märket.

Information om hur du infogar en markering i en transaktion som sträcker sig över flera databaser finns i Använda markerade transaktioner för att återställa relaterade databaser konsekvent (fullständig återställningsmodell).

Transact-SQL syntax för återställning till en markering

När du riktar in dig på en markerad transaktion med hjälp av enRESTORE LOG-instruktion kan du använda en av följande satser för att stoppa vid eller omedelbart före märket:

  • Använd satsen WITH STOPATMARK = <mark_name> för att ange att den markerade transaktionen är återställningspunkten.

    STOPATMARK rullar vidare till märket och innehåller den markerade transaktionen i framåtrullningen.

  • Använd satsen WITH STOPBEFOREMARK = <mark_name> för att ange att loggposten som är omedelbart före märket är återställningspunkten.

    STOPBEFOREMARK rullar vidare till märket och exkluderar den markerade transaktionen från framåtrullningen.

Alternativen STOPATMARK och STOPBEFOREMARK stöder båda en valfri AFTER datetime--sats. När datetime- används behöver inte marknamn vara unika.

Om AFTER datetime utelämnas, stannar framåtrullningen vid den första markeringen som har det angivna namnet. Om det anges EFTER datetime, stoppas framflyttning vid det första märket som har det angivna namnet, exakt vid eller efter datetime.

Not

Precis som i alla återställningsåtgärder vid en punkt i tiden tillåts inte återställning till en markering när databasen genomgår åtgärder som massloggas.

Återställ till en markerad transaktion

Återställa en databas till en markerad transaktion (SQL Server Management Studio)

RESTORE (Transact-SQL)

Förbereda loggsäkerhetskopiorna

I det här exemplet skulle en lämplig säkerhetskopieringsstrategi för dessa relaterade databaser vara följande:

  1. Använd den fullständiga återställningsmodellen för båda databaserna.

  2. Skapa en fullständig säkerhetskopia av varje databas.

    Databaserna kan säkerhetskopieras sekventiellt eller samtidigt.

  3. Innan du säkerhetskopierar transaktionsloggen markerar du en transaktion som körs i alla databaser. Information om hur du skapar de markerade transaktionerna finns i Använda markerade transaktioner för att återställa relaterade databaser konsekvent (fullständig återställningsmodell).

  4. Säkerhetskopiera transaktionsloggen för varje databas.

Återställa databasen till en markerad transaktion

Återställ säkerhetskopieringen

  1. Skapa slutlogg säkerhetskopior av de oskadade databaserna, om möjligt.

  2. Återställ den senaste fullständiga databassäkerhetskopian av varje databas.

  3. Identifiera den senaste markerade transaktionen som är tillgänglig i alla säkerhetskopior av transaktionsloggen. Den här informationen lagras i tabellen logmarkhistory i msdb-databasen på varje server.

  4. Identifiera loggsäkerhetskopiorna för alla relaterade databaser som innehåller det här märket.

  5. Återställ varje loggsäkerhetskopia och stoppa vid den markerade transaktionen.

  6. Återställ varje databas.

Se även

STARTA TRANSAKTION (Transact-SQL)
ÅTERSTÄLL (Transact-SQL)
Tillämpa säkerhetskopieringar av transaktionsloggar (SQL Server)
använda markerade transaktioner för att återställa relaterade databaser konsekvent (fullständig återställningsmodell)
Översikt över återställning och återhämtning (SQL Server)
Återställa en SQL Server-databas till en tidpunkt (fullständig återställningsmodell)
planera och utföra återställningssekvenser (fullständig återställningsmodell)