バックアップの履歴とヘッダーの情報 (SQL Server)

適用対象: はいSQL Server (サポートされているすべてのバージョン)

SQL Server msdb データベースには、サーバー インスタンスで行われた のすべてのバックアップ操作および復元操作の完全な履歴が格納されます。 このトピックでは、バックアップと復元の履歴テーブルに加え、バックアップ履歴へのアクセスに使用する Transact-SQL ステートメントについても説明します。 また、データベース ファイルとトランザクション ログ ファイルの一覧表示が役立つ状況について説明し、メディア ヘッダー情報を使用する状況とバックアップ ヘッダー情報を使用する状況の比較についても説明します。

重要

バックアップと復元の履歴に対する最新の変更情報の損失リスクを管理するために、頻繁に msdb をバックアップしてください。 バックアップする必要があるシステム データベースの詳細については、「システム データベースのバックアップと復元 (SQL Server)」を参照してください。

このトピックの内容

バックアップと復元の履歴テーブル

ここでは、 msdb システム データベース内のバックアップ メタデータおよび復元メタデータが保存される履歴テーブルについて説明します。

履歴テーブル 説明
backupfile バックアップされるデータ ファイルまたはログ ファイルごとに 1 行のデータを格納します。
backupfilegroup バックアップ セットのファイル グループごとに 1 行のデータを格納します。
backupmediafamily メディア ファミリごとに 1 行のデータを格納します。 メディア ファミリがミラー化されたメディア セット内にある場合は、メディア セット内のミラーごとに個別の行が格納されます。
backupmediaset バックアップ メディア セットごとに 1 行のデータを格納します。
backupset バックアップ セットごとに 1 行のデータを格納します。
restorefile 復元されたファイルごとに 1 行のデータを格納します。 これには、ファイル グループ名から間接的に復元されたファイルも含まれます。
restorefilegroup 復元されたファイル グループごとに 1 行のデータを格納します。
restorehistory 復元操作ごとに 1 行のデータを格納します。

注意

復元を実行すると、バックアップ履歴テーブルと復元履歴テーブルが変更されます。

バックアップ履歴にアクセスするための Transact-SQL ステートメント

復元情報ステートメントは、特定のバックアップ履歴テーブルに格納されている情報に対応しています。

重要

RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY、および RESTORE VERIFYONLY の各 Transact-SQL ステートメントを実行するために CREATE DATABASE 権限が必要です。 この要件により、以前のバージョンよりも、バックアップ ファイルの安全性が高くなり、バックアップ情報が十分保護されます。 このアクセス許可の詳細については、「データベースの権限の許可(Transact-SQL)」を参照してください。

情報ステートメント バックアップ履歴テーブル 説明
RESTORE FILELISTONLY backupfile 指定したバックアップ セットに含まれるデータベース ファイルとログ ファイルの一覧を含む結果セットを返します。

詳細については、このトピックの「データベース ファイルとトランザクション ログ ファイルの一覧表示」を参照してください。
RESTORE HEADERONLY backupset 特定のバックアップ デバイス上のすべてのバックアップ セットについて、バックアップ ヘッダーに関するすべての情報を取得します。 RESTORE HEADERONLY を実行して得られる結果は、結果セットです。

詳細については、このトピックの「バックアップ ヘッダー情報の表示」を参照してください。
RESTORE LABELONLY backupmediaset 指定したバックアップ デバイス上のバックアップ メディアに関する情報を含む結果セットを返します。

詳細については、このトピックの「メディア ヘッダー情報の表示」を参照してください。

データベース ファイルとトランザクション ログ ファイル

バックアップ内のデータベース ファイルおよびトランザクション ログ ファイルの一覧を表示すると、論理名、物理名、ファイルの種類 (データベースまたはログ)、ファイル グループのメンバーシップ、ファイルのサイズ (バイト単位)、ファイルの最大許容サイズ、および定義済みのファイル拡張サイズ (バイト単位) が表示されます。 この情報は、次のような場合に、データベース バックアップを復元する前にそのバックアップ内のファイルの名前を調べる際に役立ちます。

  • データベースの 1 つ以上のファイルが格納されているディスク ドライブに障害が発生した場合。

    データベース バックアップ内のファイルを一覧表示して、影響を受けたファイルを調べ、そのファイルはデータベース全体の復元時に別のドライブに復元することができます。影響を受けたファイルだけを復元して、データベースのバックアップ後に作成されたすべてのトランザクション ログのバックアップを適用することもできます。

  • ディレクトリ構造やネットワーク ドライブが割り当てられていない別のサーバーにデータベースを復元する場合。

    バックアップ内のファイルを一覧表示すると、影響を受けるファイルを調べることができます。 たとえば、ドライブ E に復元する必要があるファイルがバックアップに含まれているのに、復元先サーバーにドライブ E が存在しない場合があります。この場合、ファイルの復元時に、ドライブ Z など、別の場所にファイルを配置し直す必要があります。

メディア ヘッダー情報

メディア ヘッダーを表示すると、メディア上のバックアップではなくメディアそのものに関する情報が表示されます。 メディア ヘッダー情報として、メディア名、説明、メディア ヘッダーを作成したソフトウェアの名前、およびメディア ヘッダーが書き込まれた日付が表示されます。

注意

メディア ヘッダーの表示にはごくわずかな時間しかかかりません。

詳細については、このトピックの後の方の「 メディア ヘッダーとバックアップ ヘッダーの情報の比較」を参照してください。

バックアップ ヘッダー情報

バックアップ ヘッダーを表示すると、メディア上のすべての SQL Server バックアップ セットおよび SQL Server 以外のバックアップ セットに関する情報が表示されます。 表示される情報には、使用しているバックアップ デバイスの種類、バックアップの種類 (データベース、トランザクション、ファイル、差分データベースなど)、およびバックアップの開始と終了の日時が含まれています。 この情報は、テープ上のどのバックアップ セットを復元するかを判断したり、メディアに書き込まれているバックアップを調べる場合に役立ちます。

注意

メディア上の各バックアップに関する情報を表示するにはメディア全体をスキャンする必要があるため、大容量のテープの場合はバックアップ ヘッダー情報を表示するのに時間がかかることがあります。

詳細については、このトピックの後の方の「 メディア ヘッダーとバックアップ ヘッダーの情報の比較」を参照してください。

復元するバックアップ セットの特定

バックアップ ヘッダーの情報を使用して、復元するバックアップ セットを識別できます。 バックアップ メディアの各バックアップ セットには、データベース エンジンによって番号が付けられます。 この番号を使用すると、復元するバックアップ セットをメディア内での位置によって識別できます。 たとえば、次のメディアには 3 つのバックアップ セットが含まれています。

SQL Server バックアップ セットを含むバックアップ メディア

特定のバックアップ セットを復元するには、復元対象のバックアップ セットの位置番号を指定します。 たとえば、2 番目のバックアップ セットを復元するには、復元するバックアップ セットとして「2」を指定します。

メディア ヘッダーとバックアップ ヘッダーの情報の比較

次の図で、バックアップ ヘッダー情報とメディア ヘッダー情報の表示の違いを例示します。 メディア ヘッダーを取得するには、テープの先頭にある情報のみを取得する必要があります。 バックアップ ヘッダーを取得するには、テープ全体をスキャンして各バックアップ セットのヘッダーを確認する必要があります。

3 つの SQL Server バックアップ セットを含むメディア セット

注意

複数のメディア ファミリを持ったメディア セットを使用すると、メディア ヘッダーおよびバックアップ セットがすべてのメディア ファミリに書き込まれます。 したがって、このような報告操作には、メディア ファミリを 1 つ提供するだけで十分です。

メディア ヘッダーの表示方法については、このトピックの「メディア ヘッダー情報の表示」を参照してください。

バックアップ デバイス上のすべてのバックアップ セットに関するバックアップ ヘッダー情報の表示方法については、このトピックの「バックアップ ヘッダー情報の表示」を参照してください。

バックアップの検証

必須ではありませんが、バックアップの確認は役に立つ作業です。 バックアップを確認することで、バックアップが物理的に損傷していないことが確認されます。これにより、バックアップのすべてのファイルの読み取りと復元が可能であること、必要なときにそのバックアップを復元できることが保証されます。 バックアップの確認では、バックアップのデータの構造は確認されないことに注意してください。 ただし、WITH CHECKSUMS を使用してバックアップが作成された場合、WITH CHECKSUMS を使用してバックアップを確認すると、バックアップのデータの信頼性がわかります。

バックアップ履歴テーブルと復元履歴テーブルから古い行を削除するには

バックアップ履歴テーブルと復元履歴テーブルから特定のデータベースのすべての行を削除するには

バックアップ セットに含まれているデータ ファイルおよびログ ファイルを表示するには

メディア ヘッダー情報を表示するには

バックアップ ヘッダー情報を表示するには

バックアップ セットに含まれているファイルを表示するには

バックアップを検証するには

参照

BACKUP (Transact-SQL)
メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)
バックアップ デバイス (SQL Server)
Mirrored Backup Media Sets (SQL Server)
バックアップ中および復元中に発生する可能性があるメディア エラー (SQL Server)