Delen via


Back-ups van transactielogboeken toepassen (SQL Server)

van toepassing op:SQL Server-

Het onderwerp is alleen relevant voor het volledige herstelmodel of het bulksgewijs vastgelegde herstelmodel.

In dit onderwerp wordt beschreven hoe u back-ups van transactielogboeken toepast als onderdeel van het herstellen van een SQL Server-database.

Vereisten voor het herstellen van back-ups van transactielogboeken

Als u een back-up van een transactielogboek wilt toepassen, moet aan de volgende vereisten worden voldaan:

  • Voldoende logboekback-ups voor een herstelreeks: U moet voldoende logboekrecords hebben waarvan een back-up is gemaakt om een herstelvolgorde te voltooien. De benodigde logboekback-ups, inclusief de back-up van tail-log indien nodig, moeten beschikbaar zijn vóór het begin van de herstelreeks.

  • Juiste herstelvolgorde: De direct voorafgaande volledige database back-up of differentiële database back-up moet eerst worden hersteld. Vervolgens moeten alle transactielogboeken die na die volledige of differentiële databaseback-up worden gemaakt, in chronologische volgorde worden hersteld. Als een back-up van een transactielogboek in deze logboekketen verloren of beschadigd is, kunt u alleen transactielogboeken herstellen voordat het ontbrekende transactielogboek wordt weergegeven.

  • Database nog niet hersteld: De database kan pas worden hersteld nadat het uiteindelijke transactielogboek is toegepast. Als u de database herstelt nadat u een van de back-ups van het tussenliggende transactielogboek hebt hersteld, kunt u de database vóór het einde van de logboekketen niet herstellen zonder de volledige herstelvolgorde opnieuw op te starten, te beginnen met de volledige databaseback-up.

    Fooi

    Een best practice is om alle logboekback-ups (RESTORE LOG *database_name* WITH NORECOVERY) te herstellen. Nadat u de laatste logboekback-up hebt hersteld, herstelt u de database vervolgens in een afzonderlijke bewerking (RESTORE DATABASE *database_name* WITH RECOVERY).

Herstel- en transactielogboeken

Wanneer u de herstelbewerking hebt voltooid en de database herstelt, wordt het herstelproces uitgevoerd om de integriteit van de database te garanderen. Voor meer informatie over het herstelproces, zie Herstel en hersteloverzicht (SQL Server).

Nadat het herstelproces is voltooid, gaat de database online en kunnen er geen back-ups meer worden gemaakt van transactielogboeken op de database. Een reeks back-ups van transactielogboeken bevat bijvoorbeeld een langlopende transactie. Het begin van de transactie wordt vastgelegd in de eerste back-up van het transactielogboek, maar het einde van de transactie wordt vastgelegd in de tweede back-up van het transactielogboek. Er is geen record van een doorvoer- of terugdraaibewerking in de eerste back-up van het transactielogboek. Als een herstelbewerking wordt uitgevoerd wanneer de eerste back-up van het transactielogboek wordt toegepast, wordt de langlopende transactie behandeld als onvolledig en worden gegevenswijzigingen die zijn vastgelegd in de eerste back-up van het transactielogboek voor de transactie teruggedraaid. SQL Server staat na dit punt niet toe dat de tweede back-up van het transactielogboek wordt toegepast.

Notitie

In sommige gevallen kunt u expliciet een bestand toevoegen tijdens het herstellen van logboeken.

Logboekback-ups gebruiken om terug te zetten naar het foutpunt

Stel de volgende reeks gebeurtenissen voor.

Tijd Gebeurtenis
8:00 uur Maak een back-up van de database om een volledige databaseback-up te maken.
Middag Maak een back-up van het transactielogboek.
16:00 uur Maak een back-up van het transactielogboek.
18:00 uur Maak een back-up van de database om een volledige databaseback-up te maken.
18:00 uur Maak een back-up van het transactielogboek.
19:45 uur Er treedt een storing op.

Zie Transaction Log Backups (SQL Server)voor een uitleg van deze voorbeeldreeks van back-ups.

Als u de database om 9:45 uur (het storingspunt) wilt herstellen, kunt u een van de volgende alternatieve procedures gebruiken:

Alternatief 1: de database herstellen met behulp van de meest recente volledige databaseback-up

  1. Maak een tail-log back-up van het huidige actieve transactielogboek op het moment van de storing.

  2. Herstel de volledige databaseback-up van 8:00 uur niet. Herstel in plaats daarvan de recentere back-up van de volledige database van 06:00 uur en pas vervolgens de back-up van 8:00 P.M. log en de back-up van het tail-log toe.

Alternatief 2: de database herstellen met behulp van een eerdere volledige databaseback-up

Dit alternatieve proces is handig als een probleem voorkomt dat u de volledige databaseback-up van 16:00 uur gebruikt. Dit proces duurt langer dan het herstellen van de volledige databaseback-up van 16:00 uur.

  1. Maak een back-up van het huidige actieve transactielogboek vanaf het foutpunt.

  2. Herstel de volledige databaseback-up van 8:00 uur en herstel alle vier de back-ups van transactielogboeken in volgorde. Hiermee worden alle voltooide transacties tot 9:45 uur doorgestuurd.

    Dit alternatief wijst op de redundante beveiliging die wordt geboden door het onderhouden van een keten van back-ups van transactielogboeken in een reeks volledige databaseback-ups.

In sommige gevallen kunt u ook transactielogboeken gebruiken om een database te herstellen naar een bepaald tijdstip. Voor meer informatie een SQL Server-database herstellen naar een bepaald tijdstip (volledig herstelmodel).

Gerelateerde taken

Een back-up van een transactielogboek toepassen

Herstellen op uw herstelpunt

Een database herstellen na het herstellen van back-ups met behulp van WITH NORECOVERY

Zie ook

Het transactielogboek (SQL Server)
architectuur en beheerhandleiding voor SQL Server-transactielogboeken