結尾記錄備份
更新: 2006 年 7 月 17 日
此主題僅與使用完整或大量記錄復原模式的資料庫有關。
在完整或大量記錄復原模式下,SQL Server 2005 多半會要求您備份記錄的結尾,以便擷取尚未備份的記錄。在還原作業之前對記錄結尾進行的記錄備份,就稱為 「結尾記錄備份」。
SQL Server 2005 通常會要求您在開始還原資料庫之前進行結尾記錄備份。結尾記錄備份可防止工作遺失,並保持記錄鏈結完整。當您將資料庫復原到失敗點時,結尾記錄備份是復原計劃中重要的最後備份。如果您無法備份記錄的結尾,則只能將資料庫復原到失敗前建立的最後一個備份的結尾。
並不是所有的還原實例都需要結尾記錄備份。如果復原點已包含在較早的記錄備份中,或者您要移動或取代 (覆寫) 資料庫,就不需要有結尾記錄備份。此外,如果記錄檔損毀,而且無法建立結尾記錄備份,您也必須在不使用結尾記錄備份的情況下還原資料庫。任何在最近一次記錄備份之後認可的交易都會遺失。如需詳細資訊,請參閱本主題稍後的「不使用結尾記錄備份而進行還原」。
備份記錄檔的結尾
就像任何記錄備份一樣,結尾記錄備份是使用 BACKUP LOG 陳述式所進行的。我們建議您在下列情況中進行結尾記錄備份:
- 如果資料庫在線上,每當要對資料庫執行的下一個動作是還原作業時,請在開始還原順序前,先使用 WITH NORECOVERY 備份記錄結尾:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY附註: 為了避免錯誤,NORECOVERY 選項是必要的。 - 如果資料庫離線而且未啟動。
嘗試進行結尾記錄備份。因為這段時間不會發生交易,使用 WITH NORECOVERY 是選擇性的。如果資料庫受損,請使用 WITH CONTINUE_AFTER_ERROR 或 WITH NO_TRUNCATE。
BACKUP LOG <database_name> TO <backup_device> [WITH { CONTINUE_AFTER_ERROR | NO_TRUNCATE }重要事項: 我們建議您除非是在資料庫受損時,請避免使用 NO_TRUNCATE。
下表彙總這些選項。
BACKUP LOG 選項
註解
NORECOVERY
每當您打算在資料庫上繼續還原作業時,請使用 NORECOVERY。NORECOVERY 會讓資料庫進入還原狀態。這樣可以保證資料庫不會在結尾記錄備份之後變更。
除非也指定了 NO_TRUNCATE 選項或 COPY_ONLY 選項,否則會截斷記錄。
{ CONTINUE_AFTER_ERROR | NO_TRUNCATE }
只有在您要備份受損資料庫的結尾時,才使用 NO_TRUNCATE 或 CONTINUE_AFTER_ERROR。
附註:
當您在受損資料庫上使用結尾記錄備份時,一般可在記錄備份中擷取到的某些中繼資料可能無法使用。如需詳細資訊,請參閱本主題稍後的「具有不完整備份中繼資料的結尾記錄備份」。
若要在資料庫損毀時建立交易記錄備份
具有不完整備份中繼資料的結尾記錄備份
即使資料庫離線、損毀或遺漏資料檔案,結尾記錄備份還是會擷取記錄檔的結尾。這可能會導致還原資訊命令和 msdb 產生不完整的中繼資料。不過,只有中繼資料不完整,所擷取的記錄仍然完整可用。
如果結尾記錄備份具有不完整的中繼資料,backupset 資料表中的 has_incomplete_metadata 會設為 1。此外,在 RESTORE HEADERONLY 的輸出中,HasIncompleteMetadata 也會設為 1。
如果結尾記錄備份的中繼資料不完整,backupfilegroup 資料表將會遺失有關檔案群組在結尾記錄備份期間的大部分資訊。大部分 backupfilegroup 資料表資料行為 NULL,只有下列資料行具有意義:
- backup_set_id
- filegroup_id
- type
- type_desc
- is_readonly
不使用結尾記錄備份而進行還原
不需要結尾記錄備份的還原實例包括:
- 將資料庫還原到包含在上一個記錄備份中的時間點。
如果您要還原資料庫,並且在還原順序的每個 RESTORE 陳述式中指定 STOPAT、STOPATMARK 或 STOPBEFOREMARK 選項,就不需要結尾記錄備份。
若要將資料庫還原到更早的時間點- 若要使用 Transact-SQL 還原到特定的時間點,請參閱<如何:還原到某個時間點 (Transact-SQL)>、<復原到標示的交易>或<復原到記錄序號 (LSN)>。
- 若要使用 SQL Server Management Studio,請參閱<如何:還原到某個時間點 (SQL Server Management Studio)>或<如何:還原資料庫至標示的交易 (SQL Server Management Studio)>。
- 將資料庫副本還原到新位置。
還原資料庫時,只有在您要將資料庫還原到不同的伺服器執行個體時 (例如,當您建立鏡像資料庫以進行資料庫鏡像,或建立次要資料庫以進行記錄傳送時),才可以使用相同的資料庫名稱。如果是在相同的伺服器執行個體上移動資料庫,則必須為資料庫指定新的名稱。
若要將資料庫還原到新位置- 使用 Transact-SQL,在還原順序的每個 RESTORE 陳述式中指定 MOVE 選項。如需詳細資訊,請參閱<如何:使用新的位置和名稱還原資料庫 (Transact-SQL)>或<如何:將檔案還原到新位置 (Transact-SQL)>。
- 使用 SQL Server Management Studio,在 [還原資料庫] ([選項] 頁面) 的 [還原成] 欄位中指定每個檔案的新位置。如需詳細資訊,請參閱<如何:還原資料庫備份 (SQL Server Management Studio)>。
- 完全取代 (覆寫) 資料庫。
注意: REPLACE 選項不應經常使用,且只應由有經驗的資料庫管理員在審慎考量後使用。如需詳細資訊,請參閱<使用 REPLACE 選項>。
請參閱
概念
僅限複製備份
資料庫狀態
套用交易記錄備份
建立交易記錄備份
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 7 月 17 日 |
|