Delen via


Een back-up van een transactielogboek herstellen (SQL Server)

van toepassing op:SQL Server-

In dit onderwerp wordt beschreven hoe u een back-up van een transactielogboek in SQL Server herstelt met behulp van SQL Server Management Studio of Transact-SQL.

In Dit Onderwerp

Voordat u begint

Voorwaarden

  • Back-ups moeten worden hersteld in de volgorde waarin ze zijn gemaakt. Voordat u een back-up van een bepaald transactielogboek kunt herstellen, moet u eerst de volgende vorige back-ups herstellen zonder niet-doorgevoerde transacties terug te draaien, dat is MET NORECOVERY:

    • De volledige databaseback-up en de laatste differentiële back-up, indien aanwezig, die vóór de back-up van het transactielogboek zijn gemaakt. Voordat de meest recente volledige of differentiële databaseback-up is gemaakt, moet de database gebruikmaken van het volledige herstelmodel of het bulksgewijs vastgelegde herstelmodel.

    • Alle back-ups van transactielogboeken die zijn gemaakt na de volledige databaseback-up of de differentiële back-up (als u er een herstelt) en vóór de back-up van het transactielogboek. Logboekback-ups moeten worden toegepast in de volgorde waarin ze zijn gemaakt, zonder hiaten in de logboekketen.

      Zie Back-ups van transactielogboeken (SQL Server) en Back-ups van transactielogboeken (SQL Server) toepassenvoor meer informatie over back-ups van transactielogboeken.

Veiligheid

Machtigingen

HERSTELmachtigingen worden gegeven aan rollen waarin lidmaatschapsgegevens altijd direct beschikbaar zijn voor de server. Omdat lidmaatschap van een vaste databaserol alleen kan worden gecontroleerd wanneer de database toegankelijk en onbeschadigd is, wat niet altijd het geval is wanneer RESTORE wordt uitgevoerd, hebben leden van de db_owner vaste databaserol geen MACHTIGINGEN VOOR HERSTELLEN.

SQL Server Management Studio gebruiken

Waarschuwing

Het normale proces van een herstelbewerking is het selecteren van de logboekback-ups in het dialoogvenster Database herstellen, samen met de gegevens en differentiële back-ups.

Een back-up van een transactielogboek herstellen

  1. Nadat u verbinding hebt gemaakt met het juiste exemplaar van de Microsoft SQL Server Database Engine, klikt u in Objectverkenner op de servernaam om de serverstructuur uit te vouwen.

  2. Vouw databasesuit en selecteer, afhankelijk van de database, een gebruikersdatabase of vouw systeemdatabases uit en selecteer een systeemdatabase.

  3. Klik met de rechtermuisknop op de database, wijs achtereenvolgens Taken, Herstellenaan en klik vervolgens op Transactielogboek, waarmee het dialoogvenster Transactielogboek herstellen wordt geopend.

    Notitie

    Als transactielogboek grijs wordt weergegeven, moet u mogelijk eerst een volledige of differentiële back-up herstellen. Gebruik het dialoogvenster Database back-up.

  4. Selecteer op de pagina Algemeen in de keuzelijst Database de naam van een database. Alleen databases met de herstelstatus worden vermeld.

  5. Als u de bron en locatie van de back-upsets wilt opgeven die u wilt herstellen, klikt u op een van de volgende opties:

    • Van vorige back-ups van database

      Selecteer de database die u wilt herstellen in de vervolgkeuzelijst. De lijst bevat alleen databases waarvan een back-up is gemaakt volgens de msdb back-upgeschiedenis.

    • Van bestand of tape

      Klik op de knop Bladeren (...) om het dialoogvenster Back-upapparaten selecteren te openen. Selecteer in het vak Back-upmediatype een van de vermelde apparaattypen. Als u een of meer apparaten wilt selecteren voor het back-upmedia, dient u op Toevoegente klikken.

      Nadat u de apparaten hebt toegevoegd die u wilt toevoegen aan de back-upmedia keuzelijst, klikt u op OK om terug te keren naar de pagina Algemeen.

  6. Selecteer in de raster Selecteer de back-ups van het transactielogboek om te herstellen de back-ups die u wilt herstellen. Dit raster bevat de back-ups van transactielogboeken die beschikbaar zijn voor de geselecteerde database. Een logboekback-up is alleen beschikbaar als de eerste LSN- groter is dan de laatste LSN- van de database. Logboekback-ups worden vermeld in de volgorde van de logboekreeksnummers (LSN) die ze bevatten en moeten in deze volgorde worden hersteld.

    De volgende tabel bevat de kolomkoppen van het raster en beschrijft hun waarden.

    Koptekst Waarde
    herstellen Geselecteerde selectievakjes geven aan dat de back-upsets moeten worden hersteld.
    naam Naam van de back-upset.
    component Back-uponderdeel: Database, Fileof <lege> (voor transactielogboeken).
    Database Naam van de database die betrokken is bij de back-upbewerking.
    Begindatum De datum en tijd waarop de back-upbewerking is gestart, weergegeven in de regionale instelling van de client.
    einddatum De datum en tijd waarop de back-upbewerking is voltooid, weergegeven in de landinstelling van de client.
    eerste LSN- Logboekvolgordenummer van de eerste transactie in de back-upset. Leeg voor bestandsback-ups.
    laatste LSN- Logboekvolgordenummer van de laatste transactie in de back-upset. Leeg voor bestandsback-ups.
    controlepunt LSN Logboekvolgordenummer van het meest recente controlepunt op het moment dat de back-up is gemaakt.
    volledige LSN- Logboekvolgordenummer van de meest recente volledige databaseback-up.
    Server- Naam van het database-engine-exemplaar dat de back-upbewerking heeft uitgevoerd.
    gebruikersnaam Naam van de gebruiker die de back-upbewerking heeft uitgevoerd.
    grootte Grootte van de back-upset in bytes.
    positie Positie van de back-upset in het volume.
    verloopdatum De datum en tijd waarop de back-upset verloopt.
  7. Selecteer een van de volgende opties:

    • tijdstip

      Behoud de standaardwaarde (Meest recente) of selecteer een specifieke datum en tijd door op de bladerknop te klikken, waarmee het dialoogvenster Herstel naar een bepaald tijdstip wordt geopend.

    • gemarkeerde transactie

      Herstel de database naar een eerder gemarkeerde transactie. Als u deze optie selecteert, wordt het dialoogvenster Gemarkeerde transactie selecteren geopend, waarin een raster wordt weergegeven met de gemarkeerde transacties die beschikbaar zijn in de geselecteerde back-ups van het transactielogboek.

      Standaard vindt het herstel plaats tot aan, maar exclusief, de gemarkeerde transactie. Als u de gemarkeerde transactie ook wilt herstellen, selecteert u Gemarkeerde transactie opnemen.

      De volgende tabel bevat de kolomkoppen van het raster en beschrijft hun waarden.

      Koptekst Waarde
      <lege> Hiermee wordt een selectievakje weergegeven voor het selecteren van de markering.
      transactiemarkeringen De naam van de gemarkeerde transactie die door de gebruiker is opgegeven toen de transactie werd doorgevoerd.
      datum Datum en tijd van de transactie waarop deze is doorgevoerd. Transactiedatum en -tijd worden weergegeven zoals vastgelegd in de msdbgmarkhistory tabel, niet in de datum en tijd van de clientcomputer.
      beschrijving Beschrijving van gemarkeerde transactie die is opgegeven door de gebruiker wanneer de transactie is doorgevoerd (indien van toepassing).
      LSN Logboekvolgordenummer van de gemarkeerde transactie.
      Database Naam van de database waar de gemarkeerde transactie is doorgevoerd.
      gebruikersnaam Naam van de databasegebruiker die de gemarkeerde transactie heeft doorgevoerd.
  8. Als u de geavanceerde opties wilt weergeven of selecteren, klikt u op Opties in het deelvenster Selecteer een pagina.

  9. In de sectie Opties voor herstellen zijn de volgende opties:

    • Behoud de replicatie-instellingen (WITH KEEP_REPLICATION)

      Behoudt de replicatie-instellingen bij het herstellen van een gepubliceerde database naar een andere server dan de server waarop de database is gemaakt.

      Deze optie is alleen beschikbaar met de Laat de database gereed voor gebruik door de niet-doorgevoerde transacties terug te draaien... optie (later beschreven), wat gelijk is aan het herstellen van een back-up met de optie RECOVERY.

      Als u deze optie inschakelt, wordt de optie KEEP_REPLICATION gebruikt in een Transact-SQLRESTORE instructie.

    • vragen voordat u elke back-up herstelt

      Voordat u elke back-upset herstelt (na de eerste), wordt met deze optie het dialoogvenster Doorgaan met herstellen weergegeven, waarin u wordt gevraagd aan te geven of u de herstelvolgorde wilt voortzetten. In dit dialoogvenster wordt de naam van de volgende mediaset (indien beschikbaar), de naam van de back-upset en de beschrijving van de back-upset weergegeven.

      Deze optie is vooral handig wanneer u tapes moet wisselen voor verschillende mediasets. U kunt deze bijvoorbeeld gebruiken wanneer de server slechts één tapeapparaat heeft. Wacht totdat u klaar bent om verder te gaan voordat u op OKklikt.

      Als u op Geen klikt, blijft de database in de herstelstatus. Op uw gemak kunt u de herstelvolgorde voortzetten na de laatste herstelbewerking die is voltooid. Als de volgende back-up een gegevens- of differentiële back-up is, gebruikt u de Database herstellen taak opnieuw. Als de volgende back-up een logboekback-up is, gebruikt u de taak Transactielog herstellen.

    • De toegang tot de herstelde database beperken (WITH RESTRICTED_USER)

      Maakt de herstelde database alleen beschikbaar voor de leden van db_owner, dbcreatorof sysadmin.

      Het selecteren van deze optie is synoniem aan het gebruiken van de RESTRICTED_USER optie in een Transact-SQLRESTORE instructie.

  10. Geef voor de herstelstatus opties de status van de database op na de herstelbewerking.

    • Laat de database gereed voor gebruik door niet-doorgevoerde transacties terug te draaien. Aanvullende transactielogboeken kunnen niet worden hersteld. (HERSTELLEN MET HERSTELBESTAND)

      Hiermee herstelt u de database. Deze optie is gelijk aan de optie RECOVERY in een Transact-SQLRESTORE instructie.

      Kies deze optie alleen als u geen logboekbestanden hebt die u wilt herstellen.

    • Laat de database niet operationeel en zet niet niet-doorgevoerde transacties terug. Aanvullende transactielogboeken kunnen worden hersteld. (HERSTELLEN MET NORECOVERY)

      Laat de database onhersteld, in de herstel toestand. Deze optie is gelijk aan het gebruik van de optie NORECOVERY- in een Transact-SQLRESTORE-instructie.

      Wanneer u deze optie kiest, is de optie Replicatie-instellingen behouden niet beschikbaar.

      Belangrijk

      Selecteer deze optie altijd voor een gespiegelde of secundaire database.

    • Laat de database in de modus Alleen-lezen staan. Ongedaan maken van niet-doorgevoerde transacties, maar de acties voor ongedaan maken in een bestand opslaan, zodat hersteleffecten kunnen worden omgekeerd. (HERSTELLEN MET STANDBY)

      Laat de database in stand-bystatus staan. Deze optie is gelijk aan het gebruik van de optie STAND-BY- in een Transact-SQLRESTORE-instructie.

      Als u deze optie kiest, moet u een stand-bybestand opgeven.

  11. Geef desgewenst een standbybestandsnaam op in het tekstvak Standbybestand. Deze optie is vereist als u de database in de modus Alleen-lezen laat staan. U kunt bladeren naar het stand-bybestand of de padnaam in het tekstvak typen.

Transact-SQL gebruiken

Belangrijk

U wordt aangeraden altijd expliciet MET NORECOVERY of MET RECOVERY op te geven in elke RESTORE-instructie om dubbelzinnigheid te voorkomen. Dit is met name belangrijk bij het schrijven van scripts.

Een back-up van een transactielogboek herstellen

  1. Voer de INSTRUCTIE RESTORE LOG uit om de back-up van het transactielogboek toe te passen, waarbij u het volgende opgeeft:

    • De naam van de database waarop het transactielogboek wordt toegepast.

    • Het back-upapparaat van waaruit de back-up van het transactielogboek wordt hersteld.

    • De NORECOVERY-clausule.

    De basissyntaxis voor deze instructie is als volgt:

    HERSTEL LOG database_name VAN <backup_device> MET NORECOVERY.

    Waar database_name de naam van de database is en <backup_device>de naam is van het apparaat dat de logboekback-up bevat die wordt hersteld.

  2. Herhaal stap 1 voor elke back-up van het transactielogboek die u moet toepassen.

  3. Nadat u de laatste back-up in uw herstelvolgorde hebt hersteld, gebruikt u een van de volgende instructies om de database te herstellen:

    • Herstel de database als onderdeel van de laatste RESTORE LOG-verklaring:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Wacht met het herstellen van de database door een aparte RESTORE DATABASE-instructie te gebruiken.

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Als u wacht tot de database is hersteld, hebt u de mogelijkheid om te controleren of u alle benodigde logboekback-ups hebt hersteld. Deze benadering is vaak raadzaam wanneer u een herstel op een bepaald moment uitvoert.

    Belangrijk

    Als u een gespiegelde database maakt, laat u de herstelstap weg. Een gespiegelde database moet in de status HERSTELLEN blijven.

Voorbeelden (Transact-SQL)

De AdventureWorks2022-database maakt standaard gebruik van het eenvoudige herstelmodel. Voor de volgende voorbeelden is het wijzigen van de database vereist om het volledige herstelmodel te gebruiken, als volgt:

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

Een. Een back-up van één transactielogboek toepassen

Het volgende voorbeeld begint met het herstellen van de AdventureWorks2022 database met behulp van een volledige databaseback-up die zich op een back-upapparaat bevindt met de naam AdventureWorks2022_1. In het voorbeeld wordt vervolgens de eerste back-up van het transactielogboek toegepast die zich op een back-upapparaat bevindt met de naam AdventureWorks2022_log. Ten slotte wordt in het voorbeeld de database hersteld.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Meerdere back-ups van transactielogboeken toepassen

Het volgende voorbeeld begint met het herstellen van de AdventureWorks2022 database met behulp van een volledige databaseback-up die zich op een back-upapparaat bevindt met de naam AdventureWorks2022_1. In het voorbeeld worden vervolgens één voor één de eerste drie back-ups van transactielogboeken toegepast die zich op een back-upapparaat bevinden met de naam AdventureWorks2022_log. Ten slotte wordt in het voorbeeld de database hersteld.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Gerelateerde taken

Zie ook

RESTORE (Transact-SQL)
Back-ups van transactielogboeken (SQL Server) toepassen