Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
Eftersom transaktionsmärken förbrukar loggutrymme använder du dem endast för transaktioner som spelar en viktig roll i strategin för databasåterställning.
När en markerad transaktion bekräftas infogas en rad i tabellen logmarkhistory i msdb.
Om en markerad transaktion sträcker sig över flera databaser på samma databasserver eller på olika servrar måste märkena registreras i loggarna för alla berörda databaser. Mer information finns i Använda markerade transaktioner för att återställa relaterade databaser konsekvent (fullständig återställningsmodell).
Not
Information om hur du markerar transaktioner finns i Använda markerade transaktioner för att återställa relaterade databaser konsekvent (fullständig återställningsmodell).
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)
Förbereda loggsäkerhetskopiorna
I det här exemplet skulle en lämplig säkerhetskopieringsstrategi för dessa relaterade databaser vara följande:
Använd den fullständiga återställningsmodellen för båda databaserna.
Skapa en fullständig säkerhetskopia av varje databas.
Databaserna kan säkerhetskopieras sekventiellt eller samtidigt.
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).
Säkerhetskopiera transaktionsloggen för varje databas.
Återställa databasen till en markerad transaktion
Återställ säkerhetskopieringen
Skapa slutlogg säkerhetskopior av de oskadade databaserna, om möjligt.
Återställ den senaste fullständiga databassäkerhetskopian av varje databas.
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.
Identifiera loggsäkerhetskopiorna för alla relaterade databaser som innehåller det här märket.
Återställ varje loggsäkerhetskopia och stoppa vid den markerade transaktionen.
Å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)