Delen via


Back-ups van tail-logboeken (SQL Server)

Van toepassing op:SQL Server

Dit artikel is alleen relevant voor back-up en herstel van SQL Server-databases die gebruikmaken van de volledige of bulksgewijs vastgelegde herstelmodellen.

Met een back-up van tail-log worden logboekrecords vastgelegd waarvan nog geen back-up is gemaakt (de staart van het logboek), om werkverlies te voorkomen en om de logboekketen intact te houden. Voordat u een SQL Server-database naar het laatste tijdstip kunt herstellen, moet u een back-up maken van de staart van het transactielogboek. De back-up van het tail-logbestand is de laatste back-up van belang in het herstelplan voor de database.

Niet alle herstelscenario's vereisen een back-up van tail-log. U hebt geen back-up van tail-log nodig als het herstelpunt zich in een eerdere logboekback-up bevindt. Een back-up van een tail-log is niet nodig als u een database verplaatst of vervangt (overschrijft) en deze niet hoeft te herstellen naar een tijdstip na de meest recente back-up.

Scenario's waarvoor een back-up van tail-log is vereist

We raden aan dat u een back-up van de tail-log maakt in de volgende scenario's:

  • Als de database online is en u van plan bent om een herstelbewerking uit te voeren op de database, begint u met het maken van een back-up van de staart van het logboek. Als u een fout voor een onlinedatabase wilt voorkomen, moet u de WITH NORECOVERY optie van de instructie BACKUP Transact-SQL gebruiken.

  • Als een database offline is en niet kan worden gestart en u de database moet herstellen, maakt u eerst een back-up van de staart van het logboek. Gebruik de WITH NO_TRUNCATE optie omdat er op dit moment geen transacties kunnen plaatsvinden. NO_TRUNCATE is in feite hetzelfde als een copy-only back-up van een transactielogboek. Het gebruik WITH NORECOVERY is optioneel, omdat er op dit moment geen transacties kunnen plaatsvinden.

  • Probeer een back-up van een tail-log te maken wanneer een database beschadigd is, door de WITH CONTINUE_AFTER_ERROR optie van de BACKUP instructie te gebruiken.

    Op een beschadigde database kan het maken van een back-up van het logboek alleen slagen als de logboekbestanden onbeschadigd zijn, de database een status heeft die back-ups van tail-log ondersteunt en de database geen bulksgewijs vastgelegde wijzigingen bevat. Als er geen back-up van een tail-log kan worden gemaakt, gaan alle transacties die zijn doorgevoerd nadat de laatste logboekback-up verloren is gegaan.

De volgende tabel bevat een overzicht van de NORECOVERY, NO_TRUNCATEen CONTINUE_AFTER_ERROR opties voor BACKUP.

OPTIE BACK-UPLOG Comments
NORECOVERY Gebruik NORECOVERY wanneer u verder wilt gaan met een herstelbewerking in de database. NORECOVERY zet de database in de herstelstatus. Deze stap garandeert dat de database niet wordt gewijzigd na de back-up van het staartlogboek. Het logboek wordt afgekapt, tenzij de optie NO_TRUNCATE of COPY_ONLY ook is opgegeven.

Belangrijk: Vermijd het gebruik NO_TRUNCATEvan , behalve wanneer de database beschadigd of offline is. Mogelijk moet u de database in de modus voor één gebruiker plaatsen om exclusieve toegang te verkrijgen voordat u de herstelbewerking uitvoert.NORECOVERY Nadat de database is hersteld, stelt u de database weer in op de modus voor meerdere gebruikers.
CONTINUE_AFTER_ERROR Gebruik CONTINUE_AFTER_ERROR alleen als u een back-up maakt van de staart van een beschadigde database.

Wanneer u een back-up maakt van het logboek van een beschadigde database, zijn sommige metagegevens die gewoonlijk zijn vastgelegd in logboekback-ups mogelijk niet beschikbaar. Zie de volgende sectie voor meer informatie.

Back-ups van tail-logboeken met onvolledige back-up-metagegevens

Tail-logback-ups leggen de staart van het logboek vast, zelfs als de database offline is, beschadigd is of ontbrekende gegevensbestanden heeft. Dit kan leiden tot onvolledige metagegevens van de herstelinformatieopdrachten en msdb. Alleen de metagegevens zijn echter onvolledig; het vastgelegde logboek is voltooid en bruikbaar.

Als een back-up van een tail-log onvolledige metagegevens bevat, wordt deze in de backupset-tabel ingesteld op 1. Ook wordt in de uitvoer van RESTORE HEADERONLYHasIncompleteMetadata ingesteld op 1.

Als de metadata in een tail-log-back-up onvolledig zijn, mist de tabel backupfilegroup de meeste informatie over bestandsgroepen op het moment van de tail-log-back-up. backupfilegroup De meeste tabelkolommen zijnNULL: de enige zinvolle kolommen zijn als volgt:

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

Gerelateerde taken

Zie Back-up maken van het transactielogboek wanneer de database is beschadigd (SQL Server) als u een back-up van een tail-log wilt maken.

Zie Een back-up van transactielogboeken herstellen (SQL Server) als u een back-up van een transactielogboek wilt herstellen.