Share via


結尾記錄備份

更新: 2006 年 7 月 17 日

顯示藍色資料庫磁碟的圖示 此主題僅與使用完整或大量記錄復原模式的資料庫有關。

在完整或大量記錄復原模式下,SQL Server 2005 多半會要求您備份記錄的結尾,以便擷取尚未備份的記錄。在還原作業之前對記錄結尾進行的記錄備份,就稱為 「結尾記錄備份」

SQL Server 2005 通常會要求您在開始還原資料庫之前進行結尾記錄備份。結尾記錄備份可防止工作遺失,並保持記錄鏈結完整。當您將資料庫復原到失敗點時,結尾記錄備份是復原計劃中重要的最後備份。如果您無法備份記錄的結尾,則只能將資料庫復原到失敗前建立的最後一個備份的結尾。

並不是所有的還原實例都需要結尾記錄備份。如果復原點已包含在較早的記錄備份中,或者您要移動或取代 (覆寫) 資料庫,就不需要有結尾記錄備份。此外,如果記錄檔損毀,而且無法建立結尾記錄備份,您也必須在不使用結尾記錄備份的情況下還原資料庫。任何在最近一次記錄備份之後認可的交易都會遺失。如需詳細資訊,請參閱本主題稍後的「不使用結尾記錄備份而進行還原」。

備份記錄檔的結尾

就像任何記錄備份一樣,結尾記錄備份是使用 BACKUP LOG 陳述式所進行的。我們建議您在下列情況中進行結尾記錄備份:

  • 如果資料庫在線上,每當要對資料庫執行的下一個動作是還原作業時,請在開始還原順序前,先使用 WITH NORECOVERY 備份記錄結尾:
    BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY
    ms179314.note(zh-tw,SQL.90).gif附註:
    為了避免錯誤,NORECOVERY 選項是必要的。
  • 如果資料庫離線而且未啟動。
    嘗試進行結尾記錄備份。因為這段時間不會發生交易,使用 WITH NORECOVERY 是選擇性的。如果資料庫受損,請使用 WITH CONTINUE_AFTER_ERROR 或 WITH NO_TRUNCATE。
    BACKUP LOG <database_name> TO <backup_device> [WITH { CONTINUE_AFTER_ERROR | NO_TRUNCATE }
    ms179314.note(zh-tw,SQL.90).gif重要事項:
    我們建議您除非是在資料庫受損時,請避免使用 NO_TRUNCATE。
    如果資料庫受損 (例如,資料庫未啟動),則只有在記錄檔未損壞、資料庫處於支援結尾記錄備份的狀態,以及資料庫沒有包含任何大量記錄變更時,結尾記錄備份才會成功。

下表彙總這些選項。

BACKUP LOG 選項

註解

NORECOVERY

每當您打算在資料庫上繼續還原作業時,請使用 NORECOVERY。NORECOVERY 會讓資料庫進入還原狀態。這樣可以保證資料庫不會在結尾記錄備份之後變更。

除非也指定了 NO_TRUNCATE 選項或 COPY_ONLY 選項,否則會截斷記錄。

{ CONTINUE_AFTER_ERROR | NO_TRUNCATE }

只有在您要備份受損資料庫的結尾時,才使用 NO_TRUNCATE 或 CONTINUE_AFTER_ERROR。

ms179314.note(zh-tw,SQL.90).gif附註:

當您在受損資料庫上使用結尾記錄備份時,一般可在記錄備份中擷取到的某些中繼資料可能無法使用。如需詳細資訊,請參閱本主題稍後的「具有不完整備份中繼資料的結尾記錄備份」。

若要在資料庫損毀時建立交易記錄備份

具有不完整備份中繼資料的結尾記錄備份

即使資料庫離線、損毀或遺漏資料檔案,結尾記錄備份還是會擷取記錄檔的結尾。這可能會導致還原資訊命令和 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 選項,就不需要結尾記錄備份。
    若要將資料庫還原到更早的時間點
  • 將資料庫副本還原到新位置。
    還原資料庫時,只有在您要將資料庫還原到不同的伺服器執行個體時 (例如,當您建立鏡像資料庫以進行資料庫鏡像,或建立次要資料庫以進行記錄傳送時),才可以使用相同的資料庫名稱。如果是在相同的伺服器執行個體上移動資料庫,則必須為資料庫指定新的名稱。
    若要將資料庫還原到新位置
  • 完全取代 (覆寫) 資料庫。
    ms179314.Caution(zh-tw,SQL.90).gif注意:
    REPLACE 選項不應經常使用,且只應由有經驗的資料庫管理員在審慎考量後使用。如需詳細資訊,請參閱<使用 REPLACE 選項>。
    **若要取代資料庫** - 使用 Transact-SQL,在 [RESTORE](ms186858\(v=sql.90\).md) 陳述式中指定 REPLACE 選項。 - 使用 SQL Server Management Studio,在 **\[還原資料庫\]** (**\[選項\]** 頁面) 的 **\[還原成\]** 欄位中指定每個檔案的新位置。如需詳細資訊,請參閱<[如何:還原資料庫備份 (SQL Server Management Studio)](ms177429\(v=sql.90\).md)>。

請參閱

概念

僅限複製備份
資料庫狀態
套用交易記錄備份
建立交易記錄備份

其他資源

BACKUP (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

新增內容:
  • 將有關略過結尾記錄備份的討論擴充成獨立的小節「不使用結尾記錄備份而進行還原」。
變更的內容:
  • 更新「備份記錄檔的結尾」一節。