Delen via


Voorbeeld: Gedeeltelijk herstellen van database (Volledig herstelmodus)

Van toepassing op:SQL Server

Een gefaseerde herstelvolgorde herstelt en haalt een database in fasen terug op het niveau van de bestandsgroep, beginnend met de primaire bestandsgroep en alle lees-schrijf secundaire bestandsgroepen.

In dit voorbeeld wordt de database adb na een noodgeval hersteld naar een nieuwe computer. De database maakt gebruik van het volledige herstelmodel; Daarom moet voordat de herstelbewerking wordt gestart, een back-up van het tail-logbestand van de database worden gemaakt. Vóór het noodgeval zijn alle bestandsgroepen online. De bestandsgroep B heeft het kenmerk Alleen-lezen. Alle secundaire bestandsgroepen moeten worden hersteld, maar ze worden hersteld in volgorde van belang: A (hoogste), Cen ten slotte B. In dit voorbeeld zijn er vier logboekback-ups, waaronder de back-up van tail-log.

back-up van Tail-Log

Voordat de database wordt hersteld, moet de databasebeheerder een back-up maken van de staart van het logboek. Omdat de database beschadigd is, moet u de back-up van het tail-logbestand maken met behulp van de optie NO_TRUNCATE:

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE  

De tail-log-back-up is de laatste back-up die wordt toegepast in de volgende herstelreeksen.

Reeksen herstellen

Opmerking

De syntaxis voor een onlineherstelvolgorde is hetzelfde als voor een offline herstelvolgorde.

  1. Gedeeltelijk herstellen van de primaire en secundaire bestandsgroep A.

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1   
       WITH PARTIAL, NORECOVERY  
    RESTORE DATABASE adb FILEGROUP='A' FROM backup2   
       WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    
  2. Online herstellen van bestandsgroep C.

    Op dit moment zijn de primaire bestandsgroep en secundaire bestandsgroep A online. Alle bestanden in bestandsgroepen B en C wachten op herstel, en de bestandsgroepen zijn offline.

    Berichten uit de laatste RESTORE LOG instructie in stap 1 geven aan dat het terugdraaien van transacties waarbij bestandsgroep C is betrokken, is uitgesteld, omdat deze bestandsgroep niet beschikbaar is. Normale bewerkingen kunnen worden voortgezet, maar vergrendelingen worden behouden door deze transacties en het afkappen van logbestanden vindt pas plaats nadat het terugdraaien is voltooid.

    In de tweede herstelvolgorde herstelt de databasebeheerder de bestandsgroep C:

    RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    

    Op dit moment zijn de primaire en bestandsgroepen A en C online. Bestanden in de bestandsgroep B blijven in de status 'herstel in afwachting', terwijl de bestandsgroep offline is. Uitgestelde transacties zijn opgelost en vindt de truncatie van logboeken plaats.

  3. Online herstellen van bestandsgroep B.

In de derde herstelvolgorde herstelt de databasebeheerder de bestandsgroep B. De back-up van de bestandsgroep B is gemaakt nadat de bestandsgroep het kenmerk Alleen-lezen heeft gekregen. Daarom hoeft deze niet te worden doorgestuurd tijdens het herstel.

RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY  

Alle bestandsgroepen zijn nu online.

Aanvullende voorbeelden

Zie ook

BACKUP (Transact-SQL)
Online Restore (SQL Server)
Back-ups van transactielogboeken (SQL Server) toepassen
RESTORE (Transact-SQL)
Piecemeal Restores (SQL Server)