サーバー インスタンスに対するすべての SQL Server のバックアップ操作と復元操作の完全な履歴は、 msdb データベースに格納されます。 このトピックでは、バックアップ履歴テーブルと復元履歴テーブル、およびバックアップ履歴へのアクセスに使用される Transact-SQL ステートメントについて説明します。 また、データベースおよびトランザクション ログ ファイルを一覧表示する場合や、メディア ヘッダー情報を使用するタイミングと、バックアップ ヘッダー情報を使用する場合についても説明します。
重要
バックアップと復元の履歴に対する最近の変更が失われるリスクを管理するには、 msdb を頻繁にバックアップします。 バックアップする必要があるシステム データベースの詳細については、「 システム データベースのバックアップと復元 (SQL Server)」を参照してください。
このトピックの内容
バックアップ復元履歴テーブル
このセクションでは、 msdb システム データベースにバックアップと復元のメタデータを格納する履歴テーブルについて説明します。
履歴テーブル | 説明 |
---|---|
backupfile | バックアップされるデータまたはログ ファイルごとに 1 つの行が含まれます。 |
backupfilegroup | バックアップ セット内の各ファイル グループの行を格納します。 |
backupmediafamily | メディア ファミリごとに 1 つの行が含まれます。 メディア ファミリがミラー化メディア セットに存在する場合、そのファミリにはメディア セット内のミラーごとに個別の行があります。 |
バックアップメディアセット | バックアップ メディア セットごとに 1 行が含まれます。 |
バックアップセット | バックアップセットごとに行が含まれています。 |
復元ファイル | 復元されたファイルごとに 1 つの行が含まれます。 これには、ファイル グループ名によって間接的に復元されたファイルが含まれます。 |
restorefilegroup | 復元されたファイル グループごとに 1 つの行が含まれます。 |
restorehistory | 復元操作ごとに 1 つの行が含まれます。 |
注
復元が実行されると、バックアップ履歴テーブルと復元履歴テーブルが変更されます。
バックアップ履歴にアクセスするための Transact-SQL ステートメント
復元情報ステートメントは、特定のバックアップ履歴テーブルに格納されている情報に対応します。
重要
RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY、RESTORE VERIFYONLY Transact-SQL ステートメントには、CREATE DATABASE 権限が必要です。 この要件により、バックアップ ファイルがセキュリティで保護され、バックアップ情報が以前のバージョンよりも完全に保護されます。 このアクセス許可の詳細については、「 GRANT Database Permissions (Transact-SQL)」を参照してください。
情報声明 | バックアップ履歴テーブル | 説明 |
---|---|---|
RESTORE FILELISTONLY | backupfile | 指定したバックアップ セットに含まれるデータベース ファイルとログ ファイルの一覧を含む結果セットを返します。 詳細については、このトピックで後述する「データベース およびトランザクション ログ ファイルの一覧表示」を参照してください。 |
RESTORE HEADERONLY | バックアップセット | 特定のバックアップ デバイス上のすべてのバックアップ セットのすべてのバックアップ ヘッダー情報を取得します。 RESTORE HEADERONLY を実行した結果は結果セットです。 詳細については、このトピックで後述する「Backup-Header 情報の表示」を参照してください。 |
LABELONLY を復元する | バックアップメディアセット | 指定したバックアップ デバイス上のバックアップ メディアに関する情報を含む結果セットを返します。 詳細については、このトピックで後述する「Media-Header 情報の表示」を参照してください。 |
データベース ログ ファイルとトランザクション ログ ファイル
データベースとトランザクション ログ ファイルがバックアップに一覧表示されるときに表示される情報には、論理名、物理名、ファイルの種類 (データベースまたはログ)、ファイル グループ メンバーシップ、ファイル サイズ (バイト単位)、許容される最大ファイル サイズ、および定義済みのファイル拡張サイズ (バイト単位) が含まれます。 この情報は、次の状況では、データベース バックアップを復元する前に、データベース バックアップ内のファイルの名前を確認するのに役立ちます。
データベースの 1 つ以上のファイルを含むディスク ドライブが失われました。
データベース バックアップ内のファイルを一覧表示して、影響を受けたファイルを特定し、データベース全体を復元するときにそれらのファイルを別のドライブに復元できます。または、これらのファイルのみを復元し、データベースのバックアップ後に作成されたトランザクション ログ バックアップを適用します。
あるサーバーから別のサーバーにデータベースを復元していますが、ディレクトリ構造とドライブ マッピングがサーバー上に存在しません。
バックアップ内のファイルを一覧表示すると、影響を受けるファイルを特定できます。 たとえば、バックアップには、ドライブ E に復元する必要があるファイルが含まれていますが、移行先サーバーにはドライブ E がありません。ファイルを復元するときは、ドライブ Z などの別の場所にファイルを再配置する必要があります。
Media-Header 情報
メディア ヘッダーを表示すると、メディア上のバックアップに関する情報ではなく、メディア自体に関する情報が表示されます。 表示されるメディア ヘッダー情報には、メディア名、説明、メディア ヘッダーを作成したソフトウェアの名前、メディア ヘッダーが書き込まれた日付が含まれます。
注
メディア ヘッダーの表示は簡単です。
詳細については、このトピック で後述する「Media-Header と Backup-Header 情報の比較」を参照してください。
Backup-Header 情報
バックアップ ヘッダーを表示すると、メディア上のすべての SQL Server バックアップ セットと SQL Server 以外のバックアップ セットに関する情報が表示されます。 表示される情報には、使用されるバックアップ デバイスの種類、バックアップの種類 (データベース、トランザクション、ファイル、差分データベースなど)、バックアップの開始と停止の日付/時刻の情報が含まれます。 この情報は、復元するテープ上のバックアップ セット、またはメディアに含まれるバックアップを決定する必要がある場合に役立ちます。
注
メディア上の各バックアップに関する情報を表示するにはメディア全体をスキャンする必要があるため、大容量テープのバックアップ ヘッダー情報の表示には時間がかかる場合があります。
詳細については、このトピック で後述する「Media-Header と Backup-Header 情報の比較」を参照してください。
どのバックアップ セットを復元しますか
バックアップ ヘッダーの情報を使用して、復元するバックアップ セットを識別できます。 データベース エンジンは、バックアップ メディア上の各バックアップ セットに番号を付けます。 これにより、メディア上の位置を使用して、復元するバックアップ セットを特定できます。 たとえば、次のメディアには 3 つのバックアップ セットが含まれています。
特定のバックアップ セットを復元するには、復元するバックアップ セットの位置番号を指定します。 たとえば、2 番目のバックアップ セットを復元するには、復元するバックアップ セットとして 2 を指定します。
Media-Header と Backup-Header 情報の比較
次の図は、backup-header と media-header 情報の表示の違いの例を示しています。 メディア ヘッダーを取得するには、テープの先頭からのみ情報を取得する必要があります。 バックアップ ヘッダーを取得するには、テープ全体をスキャンして、すべてのバックアップ セットのヘッダーを確認する必要があります。
注
複数のメディア ファミリを持つメディア セットを使用する場合、メディア ヘッダーとバックアップ セットはすべてのメディア ファミリに書き込まれます。 そのため、これらのレポート操作に必要なメディア ファミリは 1 つだけです。
メディア ヘッダーの表示方法については、このトピックの「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)