Zálohy protokolu tail (SQL Server)

platí pro:SQL Server

Tento článek je relevantní pouze pro zálohování a obnovení databází SQL Serveru, které používají úplné nebo hromadně protokolované modely obnovení.

Záloha tail-log zachycuje všechny záznamy protokolu, které ještě nebyly zálohovány (konec záznamů protokolu), aby nedošlo ke ztrátě dat a aby zůstal řetězec protokolu zachován. Než budete moct obnovit databázi SQL Serveru k nejnovějšímu bodu v čase, musíte zálohovat konec transakčního protokolu. Záloha tail-log je poslední důležitá záloha v plánu obnovení databáze.

Ne všechny scénáře obnovení vyžadují zálohu koncového logu. Nepotřebujete zálohu koncového protokolu, pokud je bod obnovení obsažen v dřívější záloze protokolu. Záloha koncového protokolu není nutná, pokud přesouváte nebo nahrazujete (přepisujete) databázi a nepotřebujete ji obnovit k určitému bodu v čase po jejím nejnovějším zálohování.

Scénáře, které vyžadují zálohování protokolu tail-log

V následujících scénářích doporučujeme zálohovat koncové protokoly:

  • Pokud je databáze online a plánujete provést operaci obnovení databáze, začněte zálohováním konce protokolu. Pokud se chcete vyhnout chybě pro online databázi, musíte použít WITH NORECOVERY možnost příkazu BACKUP Transact-SQL.

  • Pokud je databáze offline a nedaří se spustit a potřebujete databázi obnovit, nejprve zálohujte konec protokolu. Vzhledem k tomu, že v tuto chvíli nedochází k žádným transakcím, použijte tuto WITH NO_TRUNCATE možnost. NO_TRUNCATE je v podstatě stejná jako záloha transakčního protokolu jen pro kopírování. Použití WITH NORECOVERY je volitelné, protože v tuto chvíli nedochází k žádným transakcím.

  • Pokud je databáze poškozená, zkuste provést zálohu koncového záznamu pomocí WITH CONTINUE_AFTER_ERROR parametru BACKUP příkazu.

    V poškozené databázi může zálohování ocasu protokolu proběhnout úspěšně pouze v případě, že jsou soubory protokolů nepoškozené, databáze je ve stavu, který podporuje zálohování protokolu tail-log a databáze neobsahuje žádné hromadně protokolované změny. Pokud není možné vytvořit zálohu koncové části protokolu, všechny transakce potvrzené po vytvoření nejnovější zálohy protokolu jsou ztraceny.

Následující tabulka shrnuje NORECOVERY, NO_TRUNCATEa CONTINUE_AFTER_ERROR možnosti pro BACKUP.

Možnost PROTOKOL ZÁLOHOVÁNÍ Comments
NORECOVERY Použijte NORECOVERY kdykoli budete chtít pokračovat v operaci obnovení databáze. NORECOVERY přenese databázi do stavu obnovení. Tento krok zaručuje, že se databáze po zálohování koncového protokolu nezmění. Protokol je zkrácen, pokud není také zadána možnost NO_TRUNCATE nebo možnost COPY_ONLY.

Důležité: Vyhněte se použití NO_TRUNCATE, s výjimkou případů, kdy je databáze poškozena nebo offline. Před provedením obnovení v režimu jednoho uživatele může být nutné databázi umístit do NORECOVERY, abyste získali výhradní přístup. Po obnovení nastavte databázi zpět do režimu více uživatelů.
CONTINUE_AFTER_ERROR Používejte CONTINUE_AFTER_ERROR pouze v případě, že zálohujete konec poškozené databáze.

Když zálohujete konec protokolu poškozené databáze, některá metadata obvykle zachycená v zálohách protokolů nemusí být dostupná. Další informace naleznete v následující části.

Zálohy protokolu tail, které obsahují neúplná metadata zálohování

Zálohy konce protokolu (tail log backups) zachytí konec protokolu, i když je databáze offline, poškozená nebo chybí datové soubory. To může způsobit neúplná metadata z příkazů pro obnovení informací a msdb. Nicméně, pouze metadata je neúplná; zachycený protokol je úplný a použitelný.

Pokud má záloha protokolu tail-log neúplná metadata, je v tabulce backupset nastavena hodnota 1. Také ve výstupu RESTORE HEADERONLY je HasIncompleteMetadata nastavena hodnota na 1.

Pokud nejsou metadata v zálohování protokolu tail-log neúplná, chybí v tabulce backupfilegroup většina informací o skupinách souborů v době zálohování protokolu tail-log. backupfilegroup Většina sloupců tabulky je NULL; jediné smysluplné sloupce jsou následující:

  • backup_set_id
  • filegroup_id
  • type
  • type_desc
  • is_readonly

Související úkoly

Pokud chcete vytvořit zálohu protokolu tail-log, přečtěte si téma Zálohování transakčního protokolu při poškození databáze (SQL Server).

Pokud chcete obnovit zálohu transakčního protokolu, přečtěte si téma Obnovení zálohy transakčního protokolu (SQL Server).