伺服器實例上所有 SQL Server 備份和還原作業的完整歷程記錄會儲存在 msdb 資料庫中。 本主題介紹備份和還原記錄數據表,以及用來存取備份歷程記錄的 Transact-SQL 語句。 本主題也會討論列出資料庫和事務歷史記錄檔是否有用,以及何時使用媒體標頭資訊,以及何時使用備份標頭資訊。
這很重要
若要管理遺失備份和還原歷程記錄最近變更的風險,請經常備份 msdb 。 如您必須備份之系統資料庫的資訊,請參閱 備份和還原系統資料庫 (SQL Server) 。
本主題內容:
備份和還原記錄數據表
本節介紹在 msdb 系統資料庫中儲存備份和還原元數據的歷程記錄數據表。
記錄資料表 | 說明 |
---|---|
backupfile | 針對備份的每個數據或記錄檔,各包含一個數據列。 |
backupfilegroup | 包含備份集中每個檔案群組的數據列。 |
backupmediafamily | 每個媒體系列各包含一個數據列。 如果媒體家族位於鏡像媒體集中,該媒體家族針對媒體集中的每個鏡像各有個別的資料列。 |
備份媒體集 (backupmediaset) | 針對每個備份媒體集,各包含一個數據列。 |
備份集 | 包含每個備份集的數據列。 |
恢復檔案 | 每個還原的檔案各包含一列資料。 這包括透過檔案群組名稱間接還原的檔案。 |
restorefilegroup | 針對每個還原的檔案群組,各包含一個數據列。 |
restorehistory | 針對每個還原作業,各包含一個數據列。 |
備註
執行還原時,會修改備份記錄數據表和還原記錄數據表。
用於存取備份歷程記錄的 Transact-SQL 語句
還原資訊語句會對應到儲存在特定備份記錄數據表中的資訊。
這很重要
RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY 和 RESTORE VERIFYONLY Transact-SQL 語句需要 CREATE DATABASE 許可權。 此需求可保護您的備份檔,並比舊版更完整地保護您的備份資訊。 如需此許可權的相關信息,請參閱 GRANT 資料庫許可權 (Transact-SQL)。
資訊聲明 | 備份歷史表 | 說明 |
---|---|---|
RESTORE FILELISTONLY | backupfile | 傳回結果集,其中包含指定備份集內含的資料庫和記錄檔清單。 如需詳細資訊,請參閱本主題稍後的「列出資料庫和交易日誌檔案」。 |
RESTORE HEADERONLY | 備份集 | 擷取特定備份裝置上所有備份集的所有備份標頭資訊。 執行 RESTORE HEADERONLY 的結果是結果集。 如需詳細資訊,請參閱本主題稍後的<檢視 Backup-Header 資訊>。 |
RESTORE LABELONLY | 備份媒體集 (backupmediaset) | 傳回結果集,其中包含指定備份裝置上備份媒體的相關信息。 如需詳細資訊,請參閱本主題稍後的<檢視 Media-Header 資訊>。 |
資料庫和事務歷史記錄檔
當資料庫和事務歷史記錄檔列在備份中時所顯示的資訊包括邏輯名稱、實體名稱、檔類型(資料庫或記錄)、檔案群組成員資格、檔案大小(以位元組為單位)、允許的檔案大小上限,以及預先定義的檔案成長大小(以位元組為單位)。 在下列情況下,這項資訊很有用,在還原資料庫備份之前,先判斷資料庫備份中檔案的名稱:
您遺失的磁碟驅動器包含一或多個資料庫的檔案。
您可以列出資料庫備份中的檔案,以判斷哪些檔案受到影響,然後在還原整個資料庫時將這些檔案還原到不同的磁碟驅動器上;或只還原這些檔案,並套用自備份資料庫後所建立的任何事務歷史記錄備份。
您要將資料庫從一部伺服器還原到另一部伺服器,但伺服器上的目錄結構和磁碟驅動器對應不存在。
列出備份中的檔案,可讓您判斷哪些檔案受到影響。 例如,備份包含它必須還原至磁碟驅動器 E 的檔案,但目的地伺服器沒有磁碟驅動器 E。當檔案還原時,檔案必須重新放置至另一個位置,例如磁碟驅動器 Z。
Media-Header 資訊
檢視媒體標頭會顯示媒體本身的相關信息,而不是媒體上的備份。 顯示的媒體標頭資訊包括媒體名稱、描述、建立媒體標頭的軟體名稱,以及寫入媒體標頭的日期。
備註
查看媒體標頭很方便。
如需詳細資訊,請參閱本主題稍後 的 Media-Header 和 Backup-Header 信息比較。
Backup-Header 資訊
檢視備份標頭會顯示媒體上所有 SQL Server 和非 SQL Server 備份集的相關信息。 顯示的資訊包括所使用的備份裝置類型、備份類型(例如資料庫、交易、檔案或差異資料庫),以及備份開始和停止日期/時間資訊。 當您必須判斷磁帶上要還原的備份集,或媒體上所包含的備份時,這項資訊很有用。
備註
檢視備份標頭資訊可能需要很長的時間才能處理高容量磁帶,因為必須掃描整個媒體,才能在媒體上顯示每個備份的相關信息。
如需詳細資訊,請參閱本主題稍後 的 Media-Header 和 Backup-Header 信息比較。
要還原哪個備份集?
您可以使用備份標頭中的資訊來識別要還原的備份集。 此資料庫引擎會在備份媒體上編號每個備份集。 這可讓您使用其在媒體上的位置來識別您想要還原的備份集。 例如,下列媒體包含三個備份集。
若要還原特定的備份集,請指定您要還原之備份集的位置編號。 例如,若要還原第二個備份集,請將 2 指定為要還原的備份集。
Media-Header 和 Backup-Header 信息的比較
下圖提供檢視備份標頭和媒體標頭資訊之間的差異範例。 要取得媒體標題,只需從磁帶的開頭擷取資訊。 取得備份標頭需要掃描整個磁帶,才能查看每個備份集的標頭。
備註
當您使用具有多個媒體家族的媒體集時,媒體標頭和備份集會寫入所有媒體家族。 因此,您只需要為這些報告作業提供單一媒體系列。
如需如何檢視媒體標頭的資訊,請參閱本主題稍早的<檢視 Media-Header 資訊>。
如需有關如何檢視備份裝置上所有備份集備份標頭資訊的資訊,請參閱本主題稍早的<檢視 Backup-Header 資訊>。
備份驗證
雖然並非必要,但驗證備份是實用的做法。 確認備份會實際檢查備份是否完好無損,以確保備份中的所有檔案皆可讀取且可還原,而且您可以在需要使用備份時還原備份。 請務必瞭解,確認備份不會驗證備份上的數據結構。 不過,如果使用WITH CHECKSUMS 建立備份,使用WITH CHECKSUMS驗證備份可以提供備份上數據可靠性的良好指示。
相關工作
若要從備份和還原記錄數據表中刪除舊的數據列
若要從備份和還原記錄數據表中刪除特定資料庫的所有數據列
若要檢視備份集中的數據和記錄檔
檢視媒體標頭資訊
ReadMediaHeader (SMO)
若要檢視備份標頭資訊
ReadBackupHeader (SMO)
若要從備份和還原記錄數據表中刪除舊的數據列
若要從備份和還原記錄數據表中刪除特定資料庫的所有數據列
檢視媒體標頭資訊
ReadMediaHeader (SMO)
若要檢視備份標頭資訊
ReadBackupHeader (SMO)
若要檢視備份集中的檔案
確認備份
另請參閱
BACKUP (Transact-SQL)
媒體集、媒體家族與備份組 (SQL Server)
備份裝置 (SQL Server)
鏡像備份媒體集 (SQL Server)
在備份和還原期間可能的媒體錯誤 (SQL Server)