共用方式為


Tail-Log 備份 (SQL Server)

本主題僅適用於使用完整或大容量日誌恢復模式之 SQL Server 資料庫的備份和還原。

尾日誌備份會擷取尚未備份的任何記錄檔記錄(記錄結尾),以防止工作遺失,並保留記錄鏈結不變。 您必須先備份其事務歷史記錄結尾,才能將 SQL Server 資料庫復原到其最新時間點。 尾日誌備份將是資料庫復原計劃中感興趣的最後一個備份。

備註

並不是所有的還原情境都需要尾端日誌備份。 如果復原點包含在較早的記錄備份中,則不需要尾端日誌備份。 而且,如果您要移動或取代 (覆寫) 資料庫,而且不需要將它還原至最近備份之後的某個時間點,就不需要有結尾記錄備份。

需要 Tail-Log 備份的案例

建議您在下列情況下進行尾端日誌備份:

  • 如果資料庫已上線,而且您打算在資料庫上執行還原作業,請從備份記錄的結尾開始。 若要避免線上資料庫發生錯誤,您必須使用 ... BACKUPTransact-SQL 語句的 WITH NORECOVERY 選項。

  • 如果資料庫離線且無法啟動,而且您需要還原資料庫,請先備份記錄的尾端。 由於目前無法進行任何交易,因此使用WITH NORECOVERY是選擇性的。

  • 如果資料庫損毀,請嘗試使用 BACKUP 語句的 WITH CONTINUE_AFTER_ERROR 選項進行尾端日誌備份。

    在資料庫損毀的狀況下,只有在記錄檔未受損、資料庫處於支援尾端日誌備份的狀態,且資料庫不包含任何大容量記錄的更改時,備份記錄檔尾端才能成功。 如果無法建立尾端日誌備份,則會遺失在最新的日誌備份之後已提交的任何交易。

下表摘要說明 BACKUP NORECOVERY 和 CONTINUE_AFTER_ERROR 選項。

BACKUP LOG 選項 評論
NORECOVERY 每當您想要繼續資料庫的還原作業時,請使用NORECOVERY。 NORECOVERY 會將資料庫帶入還原狀態。 這可確保資料庫不會在尾日誌備份之後變更。 如果未同時指定 NO_TRUNCATE 選項或 COPY_ONLY 選項,則會截斷記錄檔。

**重要** 建議您避免使用 NO_TRUNCATE,但資料庫損毀時除外。
錯誤後繼續 僅在備份損毀資料庫尾端時使用 CONTINUE_AFTER_ERROR。

注意:當您在損毀的資料庫上使用備份記錄的結尾時,通常擷取在記錄備份中的部分元數據可能無法使用。 如需詳細資訊,請參閱稍後在本主題 的Tail-Log 具有不完整備份元數據的備份

具有不完整備份元數據的 Tail-Log 備份

尾日誌備份會擷取記錄的尾端,即使資料庫脫機、損毀或遺失數據檔也一樣。 這可能會導致從復原資訊命令和 msdb 取得的不完整元數據。 不過,只有元數據不完整;擷取的記錄已完成且可供使用。

如果尾日誌備份有不完整的元數據,在 backupset 數據表中, has_incomplete_metadata 會設定為 1。 此外,在 RESTORE HEADERONLY 的輸出中, HasIncompleteMetadata 會設定為 1

如果尾日誌備份中的元數據不完整, backupfilegroup 數據表會在尾日誌備份時遺漏檔案群組的大部分相關信息。 大部分 的backupfilegroup 數據表數據行都是NULL;唯一有意義的數據行如下:

  • backup_set_id

  • filegroup_id

  • 類型

  • type_desc

  • is_readonly

相關工作

若要建立尾日誌備份,請參閱在資料庫損毀時備份事務歷史記錄檔(SQL Server)。

若要還原事務歷史記錄備份,請參閱還原事務歷史記錄備份(SQL Server)。

另請參閱

BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
SQL Server 資料庫的備份與還原
只複製備份 (SQL Server)
交易記錄備份 (SQL Server)
套用交易記錄備份 (SQL Server)