backupset (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance Analytics Platform System (PDW)

バックアップ セットごとに 1 行のデータを格納します。 バックアップ セット には、正常に終了した 1 つのバックアップ操作のバックアップが含まれます。 RESTORE、RESTORE FILELISTONLY、RESTORE HEADERONLY、および RESTORE VERIFYONLY ステートメントは、単一または複数の指定バックアップ デバイス上のメディア セット内にある単一のバックアップ セットに対して機能します。

このテーブルは、 msdb データベースに格納されます。

列名 データ型 説明
backup_set_id int バックアップ セットを識別する一意のバックアップ セット識別番号。 ID、主キー。
backup_set_uuid uniqueidentifier バックアップ セットを識別する一意のバックアップ セット識別番号。
media_set_id int バックアップ セットを含むメディア セットを識別する一意のメディア セット識別番号。 backupmediaset(media_set_id) を参照します。
first_family_number tinyint バックアップ セットが開始するメディアのファミリ番号。 NULL にすることができます。
first_media_number smallint バックアップ セットが開始するメディアのメディア番号。 NULL にすることができます。
last_family_number tinyint バックアップ セットの最終メディアのファミリ番号。 NULL にすることができます。
last_media_number smallint バックアップ セットの最終メディアのメディア番号。 NULL にすることができます。
catalog_family_number tinyint バックアップ セット ディレクトリの先頭を含むメディアのファミリ番号。 NULL にすることができます。
catalog_media_number smallint バックアップ セット ディレクトリの先頭を含むメディアのメディア番号。 NULL にすることができます。
position int 適切なバックアップ セットとファイルを検出するために復元操作で使われるバックアップ セットの位置。 NULL にすることができます。 詳しくは、「BACKUP (Transact-SQL)」の FILE をご覧ください。
expiration_date datetime バックアップ セットの期限が切れる日付と時刻。 NULL にすることができます。
software_vendor_id int バックアップ メディア ヘッダーを記述するソフトウェア ベンダーの識別番号。 NULL にすることができます。
name nvarchar(128) バックアップ セットの名前。 NULL にすることができます。
説明 nvarchar (255) バックアップ セットの説明。 NULL にすることができます。
user_name nvarchar(128) バックアップ操作を実行するユーザー名。 NULL にすることができます。
software_major_version tinyint Microsoft SQL Server のメジャー バージョン番号。 NULL にすることができます。
software_minor_version tinyint SQL Server のマイナー バージョン番号。 NULL にすることができます。
software_build_version smallint SQL Server のビルド番号。 NULL にすることができます。
time_zone smallint バックアップ操作が開始した時点でのタイム ゾーン情報を使用した、ローカル時刻 (バックアップ操作が行われている場所) と協定世界時 (UTC) の 15 分間隔の差。 値は -48 から +48 の範囲です (両端を含む)。 値 127 は、不明な状態を表します。 たとえば、-20 は東部標準時刻 (EST) を表し、これは UTC の 5 時間前にあたります。 NULL にすることができます。
mtf_minor_version tinyint Microsoft Tape Format のマイナー バージョン番号。 NULL にすることができます。
first_lsn numeric(25,0) バックアップ セットの最初つまり最も古いログ レコードのログ シーケンス番号。 NULL にすることができます。
last_lsn numeric(25,0) バックアップ セットの次のログ レコードのログ シーケンス番号。 NULL にすることができます。
checkpoint_lsn numeric(25,0) 再実行を開始する必要があるログ レコードのログ シーケンス番号。 NULL にすることができます。
database_backup_lsn numeric(25,0) データベース全体の最新バックアップのログ シーケンス番号。 NULL にすることができます。

database_backup_lsn は、バックアップの開始時にトリガーされる "チェックポイントの先頭" です。 データベースがアイドル状態で、レプリケーションが構成されていないときにバックアップが実行された場合、このログ シーケンス番号は first_lsn と同じになります。
database_creation_date datetime データベースが最初に作成された日付と時刻。 NULL にすることができます。
backup_start_date datetime バックアップ操作が開始した日時。 NULL にすることができます。
backup_finish_date datetime バックアップ操作が終了した日時。 NULL にすることができます。
type char(1) バックアップの種類 次の値をとります。

D = データベース
I = 差分データベース
L = ログ
F = ファイルまたはファイル グループ
G =差分ファイル
P = 部分
Q = 差分部分

NULL にすることができます。
sort_order smallint バックアップ操作を実行するサーバーの並べ替え順。 NULL にすることができます。 並べ替え順序と照合順序について詳しくは、「照合順序と Unicode のサポート」をご覧ください。
code_page smallint バックアップ操作を実行するサーバーのコード ページ。 NULL にすることができます。 コード ページについて詳しくは、「照合順序と Unicode のサポート」をご覧ください。
compatibility_level tinyint データベースの互換レベルの設定。 次の値をとります。

90 = SQL Server 2005 (9.x)
100 = SQL Server 2008 (10.0.x)
110 = SQL Server 2012 (11.x)
120 = SQL Server 2014 (12.x)
130 = SQL Server 2016 (13.x)
140 = SQL Server 2017 (14.x)
150 = SQL Server 2019 (15.x)
160 = SQL Server 2022 (16.x)

NULL にすることができます。

互換性レベルの詳細については、「ALTER DATABASE 互換性レベル (Transact-SQL)」を参照してください。
database_version int データベースのバージョン番号。 NULL にすることができます。
backup_size numeric(20,0) バックアップ セットのサイズ (バイト単位)。 NULL にすることができます。 VSS バックアップの場合、backup_size は推定値です。
database_name nvarchar(128) バックアップ操作に関係するデータベース名。 NULL にすることができます。
server_name nvarchar(128) SQL Server のバックアップ操作を実行しているサーバーの名前。 NULL にすることができます。
machine_name nvarchar(128) SQL Serverを実行しているコンピューターの名前。 NULL にすることができます。
flags int SQL Server では、flags 列は非推奨になり、次のビット列に置き換えられています。

has_bulk_logged_data
is_snapshot
is_readonly
is_single_user
has_backup_checksums
is_damaged
begins_log_chain
has_incomplete_metadata
is_force_offline
is_copy_only

NULL にすることができます。

以前のバージョンの SQL Server からのバックアップ セットでは、ビットにフラグを設定します。
1 = バックアップには最小限のログ データが含まれている。
2 = WITH SNAPSHOT が使われました。
4 = データベースはバックアップ時に読み取り専用でした。
8 = データベースはバックアップ時にシングル ユーザー モードでした。
unicode_locale int Unicode ロケール。 NULL にすることができます。
unicode_compare_style int Unicode 比較スタイル。 NULL にすることができます。
collation_name nvarchar(128) 照合順序名。 NULL にすることができます。
Is_password_protected bit バックアップ セットが

パスワードで保護されているか:

0 = 保護されていません

1 = 保護されています
recovery_model nvarchar(60) データベースの復旧モデル。

FULL

BULK-LOGGED

SIMPLE
has_bulk_logged_data bit 1 = バックアップには一括ログデータが含まれています。
is_snapshot bit 1 = バックアップは SNAPSHOT オプションを使って取得されました。
is_readonly bit 1 = データベースはバックアップ時に読み取り専用でした。
is_single_user bit 1 = データベースはバックアップ時にシングル ユーザーでした。
has_backup_checksums bit 1 = バックアップ チェックサムを含むバックアップ。
is_damaged bit 1 = バックアップの作成時、データベースの損傷が検出された。 エラーに関係なくバックアップ操作の続行が要求されました。
begins_log_chain bit 1 = 連鎖的なログ バックアップの先頭。 ログ チェーンは、データベースが作成された後で、または単純復旧モデルから完全復旧モデルまたは一括ログ復旧モデルに切り替えられたときに、最初に取得されるログ バックアップで開始します。
has_incomplete_metadata bit 1 = 不完全なメタデータでのログ末尾のバックアップ。 詳細については、「 ログ末尾のバックアップ (SQL Server)」を参照してください。
is_force_offline bit 1 = バックアップ時、データベースが NORECOVERY オプションによってオフラインにされた。
is_copy_only bit 1 = コピーのみのバックアップ。 詳細については、「コピーのみのバックアップ (SQL Server)」を参照してください。
first_recovery_fork_guid uniqueidentifier 最初の復旧分岐の ID。 これは RESTORE HEADERONLY の FirstRecoveryForkID に対応します。

データ バックアップの場合、first_recovery_fork_guidlast_recovery_fork_guid と等しくなります。
last_recovery_fork_guid uniqueidentifier 最後の復旧分岐の ID。 これは RESTORE HEADERONLY の RecoveryForkID に対応します。

データ バックアップの場合、first_recovery_fork_guidlast_recovery_fork_guid と等しくなります。
fork_point_lsn numeric(25,0) first_recovery_fork_guidlast_recovery_fork_guid に等しくない場合、これは分岐ポイントのログ シーケンス番号です。 それ以外の場合は NULL になります。
database_guid uniqueidentifier データベースの一意の ID。 これは RESTORE HEADERONLY の BindingID に対応します。 データベースが復元されると、新しい値が割り当てられます。
family_guid uniqueidentifier 作成時の元のデータベースの一意の ID。 この値は、データベースが別の名前で復元されても同じままです。
differential_base_lsn numeric(25,0) 差分バックアップのベース LSN。 シングル ベースの差分バックアップの場合、differential_base_lsn 以上のログ シーケンス番号に関する変更が差分バックアップに含められます。

マルチ ベースの差分バックアップの場合は NULL で、ベース LSN はファイル レベルで決定される必要があります (「backupfile (Transact-SQL)」を参照)。

差分バックアップ以外の種類の場合は、常に NULL です。
differential_base_guid uniqueidentifier シングル ベースの差分バックアップの場合は、差分ベースの一意識別子。

マルチ ベースの差分バックアップの場合は NULL。差分のベースはファイル レベルで決定される必要があります。

差分バックアップ以外の種類の場合は、値は NULL です。
compressed_backup_size Numeric(20,0) ディスクに格納されたバックアップの総バイト数。

圧縮比率を計算するには、compressed_backup_sizebackup_size を使います。

msdbアップグレード中、この値は NULL に設定されます。 これは圧縮されていないバックアップを示します。
key_algorithm nvarchar(32) バックアップの暗号化に使用される暗号化アルゴリズム。 値 NO_Encryption は、バックアップが暗号化されなかったことを示します。
encryptor_thumbprint varbinary(20) データベースに保存されている証明書や非対称キーを検索するために使用される暗号化機能の拇印。 バックアップが暗号化されなかった場合、この値は NULL になります。
encryptor_type nvarchar(32) 使用される暗号化の種類:証明書キーまたは非対称キー。 バックアップが暗号化されなかった場合、この値は NULL になります。
last_valid_restore_time datetime タイムスタンプを含むログ レコードのトランザクション ログ バックアップに含まれる最後のトランザクション ログ レコードのタイムスタンプ。 RESTORE LOG ステートメントで STOPAT 句が指定されている場合に、復元する最後のログ バックアップを見つけるのに役立つ、復元計画の構築を支援します。 そのログ バックアップの last_valid_restore_time は、 STOPAT 句で指定された時間より厳密に長くなります。 SQL Server 2022 (16.x) で導入されています。
compression_algorithm nvarchar(32) SQL Server バックアップの作成時に使用された圧縮アルゴリズム。 SQL Server 2022 (16.x) で導入されています。 既定値は MS_XPRESS です。 詳細については、「 BACKUP COMPRESSION および Integrated acceleration and offloadingを参照してください。

解説

  • RESTORE VERIFYONLY FROM <backup_device> WITH LOADHISTORY は、 backupmediaset テーブルの列に、メディア セット ヘッダーの適切な値を設定します。
  • このテーブルおよび他のバックアップ テーブルと履歴テーブルの行数を減らすには、sp_delete_backuphistory ストアド プロシージャを実行します。
  • SQL Managed Instance については、バックアップの透明性バックアップの方法を参照してください。

バックアップ履歴のクエリを実行する

次のクエリからは、過去 2 か月間の成功したバックアップの情報が返されます。

SELECT bs.database_name,
    backuptype = CASE 
        WHEN bs.type = 'D' AND bs.is_copy_only = 0 THEN 'Full Database'
        WHEN bs.type = 'D' AND bs.is_copy_only = 1 THEN 'Full Copy-Only Database'
        WHEN bs.type = 'I' THEN 'Differential database backup'
        WHEN bs.type = 'L' THEN 'Transaction Log'
        WHEN bs.type = 'F' THEN 'File or filegroup'
        WHEN bs.type = 'G' THEN 'Differential file'
        WHEN bs.type = 'P' THEN 'Partial'
        WHEN bs.type = 'Q' THEN 'Differential partial'
        END + ' Backup',
    CASE bf.device_type
        WHEN 2 THEN 'Disk'
        WHEN 5 THEN 'Tape'
        WHEN 7 THEN 'Virtual device'
        WHEN 9 THEN 'Azure Storage'
        WHEN 105 THEN 'A permanent backup device'
        ELSE 'Other Device'
        END AS DeviceType,
    bms.software_name AS backup_software,
    bs.recovery_model,
    bs.compatibility_level,
    BackupStartDate = bs.Backup_Start_Date,
    BackupFinishDate = bs.Backup_Finish_Date,
    LatestBackupLocation = bf.physical_device_name,
    backup_size_mb = CONVERT(DECIMAL(10, 2), bs.backup_size / 1024. / 1024.),
    compressed_backup_size_mb = CONVERT(DECIMAL(10, 2), bs.compressed_backup_size / 1024. / 1024.),
    database_backup_lsn, -- For tlog and differential backups, this is the checkpoint_lsn of the FULL backup it is based on.
    checkpoint_lsn,
    begins_log_chain,
    bms.is_password_protected
FROM msdb.dbo.backupset bs
LEFT JOIN msdb.dbo.backupmediafamily bf
    ON bs.[media_set_id] = bf.[media_set_id]
INNER JOIN msdb.dbo.backupmediaset bms
    ON bs.[media_set_id] = bms.[media_set_id]
WHERE bs.backup_start_date > DATEADD(MONTH, - 2, sysdatetime()) --only look at last two months
ORDER BY bs.database_name ASC,
    bs.Backup_Start_Date DESC;

次のステップ