檢視備份相關資訊

在伺服器執行個體上的所有 SQL Server 備份與還原作業的完整記錄都會儲存在 msdb 資料庫中。本主題介紹備份和還原記錄資料表,以及用於存取備份記錄的 Transact-SQL 陳述式。

此主題也會描述如何執行下列工作:

  • 列出資料庫和交易記錄檔案。

  • 檢視媒體標頭資訊。

  • 檢視備份標頭資訊。

此外,本主題還會將媒體標頭資訊與備份標頭資訊做比較。如需詳細資訊,請參閱本主題稍後的「媒體標頭與備份標頭資訊的比較」。

重要事項重要事項

若要控制遺失最新更新的風險,請務必經常備份 msdb。如需有關必須備份哪些系統資料庫的詳細資訊,請參閱<備份和還原系統資料庫的考量>。

備份和還原記錄資料表概觀

此章節介紹儲存 msdb 系統資料庫中的備份及還原中繼資料的記錄資料表。

記錄資料表

描述

backupfile

包含備份的每一個資料檔或記錄檔的資料行。

backupfilegroup

包含備份組中每一個檔案群組的資料列。

backupmediafamily

針對每個媒體家族,各包含一個資料列。如果媒體家族在鏡像媒體集中,在這個媒體集中,這個家族對於每個鏡像都各有一個個別的資料列。

backupmediaset

針對每個備份媒體集,各包含一個資料列。

backupset

針對每個備份組,各包含一個資料列。

restorefile

針對每個還原的檔案,各包含一個資料列。這包括檔案群組名稱間接還原的檔案。

restorefilegroup

針對每個還原的檔案群組,各包含一個資料列。

restorehistory

針對每個還原作業,各包含一個資料列。

[!附註]

執行還原時,會修改備份記錄資料表和還原記錄資料表。

從備份和還原記錄資料表中刪除舊的資料列

從備份和還原記錄資料表中刪除特定資料庫的所有資料列

存取備份記錄的 Transact-SQL 陳述式

還原資訊陳述式會與儲存在某些備份記錄資料表中的資訊對應。

安全性注意事項安全性注意事項

在舊版的 SQL Server 中,任何使用者都可以使用 RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY 和 RESTORE VERIFYONLY 等 Transact-SQL 陳述式來取得有關備份組及備份裝置的資訊。因為這些陳述式會揭露有關備份檔案內容的資訊,所以在 SQL Server 2008 和更新的版本中,這些陳述式需要 CREATE DATABASE 權限。與舊版相較,這項需求更能完整地保障備份檔案及備份資訊的安全。如需有關這個權限的資訊,請參閱<GRANT 資料庫權限 (Transact-SQL)>。

資訊陳述式

備份記錄資料表

描述

RESTORE FILELISTONLY

backupfile

傳回結果集,其中會有資料庫清單與包含在指定備份組中的記錄。

如需詳細資訊,請參閱本主題稍後的「列出資料庫與交易記錄檔」。

RESTORE HEADERONLY

backupset

擷取特定備份裝置上,所有備份組的所有備份前置資料。執行 RESTORE HEADERONLY 的結果是結果集。

如需詳細資訊,請參閱本主題稍後的「檢視備份標頭資訊」。

RESTORE LABELONLY

backupmediaset

傳回結果集,其中會包含指定備份裝置上之備份媒體的相關資訊。

如需詳細資訊,請參閱本主題稍後的「檢視媒體標頭資訊」。

資料行命名慣例

由於歷史原因,有兩個不同的命名慣例存在。原本的資料行會保留其原來的名稱。不過,在 SQL Server 2005 或更新版本中的資料行會遵循下表所示的命名慣例。

內容

描述

資訊命令所傳回的資料行

WordWordWord

範例:DifferentialBaseLSN

msdb 和目錄檢視中的資料行

word_word_word

範例:differential_base_lsn

列出資料庫與交易記錄檔

在列出備份中的資料庫與交易記錄檔時所顯示的資訊包括:邏輯名稱、實體名稱、檔案類型 (資料庫或記錄)、檔案群組成員資格、檔案大小 (以位元組為單位)、允許的檔案大小上限以及預先定義的檔案成長大小 (以位元組為單位)。在下列狀況中,這些資訊有助於在還原資料庫備份前判斷資料庫備份中的檔案名稱:

  • 損失了一部磁碟機,內含某資料庫的一或多個檔案。

    您可以列出資料庫備份中的檔案,以判斷哪些檔案受到影響,然後在還原整個資料庫時將那些檔案還原到別的磁碟機,或者只是還原那些檔案,另外再套用備份資料庫後所建的任何交易記錄備份。

  • 要將資料庫從一部伺服器還原至別的伺服器,但該伺服器上沒有目錄結構與磁碟機對應。

    列出備份中的檔案能讓您判斷哪些檔案受到影響。例如,備份包含需要還原到磁碟機 E 的檔案,但是目的地伺服器並沒有磁碟機 E。當您還原這個檔案時,就必須將它重新放置到其他位置,如磁碟機 Z。

檢視備份組中的資料與記錄檔

檢視媒體標頭資訊

檢視媒體標頭會顯示關於媒體本身的資訊,而非媒體上備份的資訊。顯示的媒體標頭資訊包括:媒體名稱、描述、建立媒體標頭的軟體名稱以及寫入媒體標頭的日期。

[!附註]

檢視媒體標頭會很快。

檢視媒體標頭資訊

如需詳細資訊,請參閱本主題稍後的「媒體標頭與備份標頭資訊的比較」。

檢視備份標頭資訊

檢視備份標頭會顯示有關媒體上所有 SQL Server 與非 SQL Server 備份組的資訊。顯示的資訊包括使用的備份裝置類型、備份類型 (例如資料庫、交易、檔案或差異資料庫),以及備份開始與停止的日期/時間資訊。當您必須決定要還原磁帶上的哪個備份組,或包含在媒體上的備份時,這項資訊會非常有用。

[!附註]

對於高容量的磁帶而言,檢視備份標頭資訊可能很花時間,因為必須掃描整個媒體,才能顯示有關媒體上每個備份的資訊。

檢視備份標頭資訊

如需詳細資訊,請參閱本主題稍後的「媒體標頭與備份標頭資訊的比較」。

識別要還原的備份組

您可以使用備份標頭中的資訊來識別要還原的備份組。Database Engine 會針對備份媒體上的每個備份組編號。這樣可讓您利用備份組在媒體上的位置,識別您要還原的備份組。例如,下列媒體包含三個備份組。

包含 SQL Server 備份組的備份媒體

若要還原特定的備份組,可指定所要還原的備份組位置編號。例如,若要還原第二個備份組,請指定 2 當做要還原的備份組。

媒體標頭與備份標頭資訊的比較

下圖提供的範例顯示檢視備份標頭與媒體標頭資訊之間的差異。取得媒體標頭時,只需從磁帶的開頭擷取資訊。取得備份標頭時,則必須掃描整捲磁帶來查看每個備份組的標頭。

包含三個 SQL Server 備份組的媒體集

[!附註]

使用具有多個媒體家族的媒體集時,會將媒體標頭與備份組寫入所有媒體家族。因此,只需要針對這些報表作業提供單一媒體家族。

如需有關如何檢視媒體標頭的詳細資訊,請參閱本主題前面的「檢視媒體標頭資訊」。

如需有關如何檢視備份裝置上所有備份組之備份標頭資訊的詳細資訊,請參閱本主題前面的「檢視備份標頭資訊」。