Lezen in het Engels

Delen via


Herstel van gerelateerde databases die gemarkeerde transactie bevatten

van toepassing op:SQL Server-

Dit onderwerp is alleen relevant voor databases die gemarkeerde transacties bevatten en die gebruikmaken van de volledige of bulksgewijs vastgelegde herstelmodellen.

Zie Een SQL Server-database herstellen naar een bepaald herstelpunt (volledig herstelmodel)voor informatie over de vereisten voor het herstellen naar een specifiek herstelpunt.

SQL Server biedt ondersteuning voor het invoegen van benoemde markeringen in het transactielogboek om herstel naar die specifieke markering mogelijk te maken. Logboekmarkeringen zijn transactiespecifiek en worden alleen ingevoegd wanneer de bijbehorende transactie wordt doorgevoerd. Als gevolg hiervan kunnen merken worden gekoppeld aan specifiek werk en kunt u teruggaan naar een punt dat dit werk bevat of uitsluit.

Voordat u benoemde markeringen in het transactielogboek invoegt, moet u rekening houden met het volgende:

Transact-SQL syntaxis voor het invoegen van benoemde markeringen in een transactielogboek

Als u markeringen in de transactielogboeken wilt invoegen, gebruikt u de instructie BEGIN TRANSACTION en de WITH MARK [description] clausule. De markering heeft dezelfde naam als de transactie. De optionele beschrijving is een tekstuele beschrijving van de markering, niet de markeringsnaam. De naam van zowel de transactie als de markering die in de volgende BEGIN TRANSACTION instructie is gemaakt, is bijvoorbeeld Tx1:

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

Het transactielogboek registreert de marknaam (transactienaam), beschrijving, database, gebruiker, datum/tijd informatie en het logboekreeksnummer (LSN). De datum/tijd- informatie wordt gebruikt met de markeringsnaam om de markering uniek te identificeren.

Voor informatie over het invoegen van een markering in een transactie die over meerdere databases strekt, zie Gemarkeerde transacties gebruiken om gerelateerde databases consistent te herstellen (Volledig Herstelmodel).

Transact-SQL Sintaxis voor teruggaan naar een markering

Wanneer u zich op een gemarkeerde transactie richt met behulp van eenRESTORE LOG instructie, kunt u een van de volgende clausules gebruiken om bij of onmiddellijk voor de markering te stoppen:

  • Gebruik de component WITH STOPATMARK = '<mark_name>' om op te geven dat de gemarkeerde transactie het herstelpunt is.

    STOPATMARK rolt vooruit naar het teken en neemt de gemarkeerde transactie op in de roll forward.

  • Gebruik de clausule WITH STOPBEFOREMARK = '<mark_name>' om aan te geven dat de logboekrecord die direct voor de markering komt het herstelpunt is.

    STOPBEFOREMARK rolt vooruit naar de markering en sluit de gemarkeerde transactie uit van de roll forward.

De opties STOPATMARK en STOPBEFOREMARK ondersteunen beide een optionele AFTER datetime clausule. Wanneer datum/tijd- wordt gebruikt, hoeven markeringsnamen niet uniek te zijn.

Als NA de datum/tijd- wordt weggelaten, stopt de vooruitrol bij de eerste markering met de opgegeven naam. Als NA datum/tijd- is opgegeven, stopt het doorgaan bij de eerste markering met de opgegeven naam, exact op of na datum/tijd-.

Notitie

Net als bij alle herstelbewerkingen naar een bepaald tijdstip is herstellen naar een markering niet toegestaan wanneer de database bewerkingen ondergaat die bulksgewijs worden geregistreerd.

Om te herstellen naar een gemarkeerde transactie

een database herstellen naar een gemarkeerde transactie (SQL Server Management Studio)

RESTORE (Transact-SQL)

De logboekback-ups voorbereiden

In dit voorbeeld is een geschikte back-upstrategie voor deze gerelateerde databases het volgende:

  1. Gebruik het volledige herstelmodel voor beide databases.

  2. Maak een volledige back-up van elke database.

    Een back-up van de databases kan opeenvolgend of tegelijkertijd worden gemaakt.

  3. Voordat u een back-up maakt van het transactielogboek, markeert u een transactie die in alle databases wordt uitgevoerd. Zie Gemarkeerde transacties gebruiken om gerelateerde databases consistent (volledig herstelmodel) te herstellenvoor meer informatie over het maken van gemarkeerde transacties.

  4. Maak een back-up van het transactielogboek in elke database.

De database herstellen naar een gemarkeerde transactie

De back-up herstellen

  1. Maak indien mogelijk tail-log-back-ups van de onbeschadigde databases.

  2. Herstel de meest recente volledige databaseback-up van elke database.

  3. Identificeer de meest recente gemarkeerde transactie die beschikbaar is in alle back-ups van het transactielogboek. Deze informatie wordt opgeslagen in de logmarkhistory tabel in de msdb-database op elke server.

  4. Identificeer de logboekback-ups voor alle gerelateerde databases die deze markering bevatten.

  5. Herstel elke logboekback-up en stop bij de gemarkeerde transactie.

  6. Herstel elke database.

Zie ook

TRANSACTIE (Transact-SQL)
RESTORE (Transact-SQL)
Back-ups van transactielogboeken (SQL Server) toepassen
gemarkeerde transacties gebruiken om gerelateerde databases consistent te herstellen (volledig herstelmodel)
Overzicht herstellen en herstel (SQL Server)
een SQL Server-database herstellen naar een bepaald tijdstip (volledig herstelmodel)
herstelreeksen (volledig herstelmodel) plannen en uitvoeren