sys.dm_database_backups
適用対象:Azure SQL Database
Microsoft Fabric SQL Database
Azure SQL Database 論理サーバーおよび Microsoft Fabric の SQL データベース内のデータベースのバックアップに関する情報を返します。
Note
sys.dm_database_backups
DMV は現在プレビュー段階であり、Hyperscale レベルを除くすべての Azure SQL Database サービス レベルで使用できます。 Hyperscale サービス レベルはバックアップのスナップショットに依存するため、Hyperscale サービス レベルでこの DMV を実行しても結果は返されません。
列名 | データ型 | 説明 |
---|---|---|
backup_file_id |
uniqueidentifier | 生成されたバックアップ ファイルの ID。 null ではありません。 |
logical_database_id |
uniqueidentifier | 操作が実行される論理データベース ID。 null ではありません。 |
physical_database_name |
nvarchar(128) | 操作が実行される物理データベースの名前。 null ではありません。 |
logical_server_name |
nvarchar(128) | バックアップ対象のデータベースが存在する論理サーバーの名前。 Fabric の SQL データベースでは、これは NULL です。 |
logical_database_name |
nvarchar(128) | 操作が実行されるデータベースのユーザー作成名。 null ではありません。 |
backup_start_date |
datetime2(7) | バックアップ操作が開始されたときのタイムスタンプ。 null ではありません。 |
backup_finish_date |
datetime2(7) | バックアップ操作が完了したときのタイムスタンプ。 null ではありません。 |
backup_type |
char(1) | バックアップの種類。 null ではありません。D = データベースの完全バックアップI = 増分バックアップまたは差分バックアップL = ログ バックアップ。 |
in_retention |
bit | バックアップの保持状態。 バックアップが保持期間内かどうかを示します。 1 = 保持中0 = 保持期間が切れ |
アクセス許可
Azure SQL Database では、Basic、S0、S1 のサービス目標、エラスティック プール内のデータベースの場合、サーバー管理者アカウント、Microsoft Entra ID 管理者アカウント、または ##MS_ServerStateReader## サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE 権限、または ##MS_ServerStateReader## サーバー ロールのメンバーシップが必要です。
Fabric SQL データベースでは、この DMV に対してクエリを実行するために、データベースの VIEW DATABASE STATE をユーザーに付与する必要があります。 または、任意の ファブリック ワークスペースのメンバー はこの DMV に対してクエリを実行できます。
解説
バックアップ履歴ビューに保持および表示されるバックアップは、構成されたバックアップ保有期間によって異なります。 保有期間 (in_retention = 0
) より古いバックアップの一部も、 sys.dm_database_backups
ビューに表示されます。 構成されたリテンション期間内にポイントインタイム リストアを実行する必要があります。
例
現在のデータベースのすべてのアクティブなバックアップの一覧を、バックアップの終了日順に表示します。
SELECT *
FROM sys.dm_database_backups
ORDER BY backup_finish_date DESC;
データベースのバックアップのユーザー フレンドリな一覧を取得するには、次を実行してください。
SELECT backup_file_id,
backup_start_date,
backup_finish_date,
CASE backup_type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction log'
END AS BackupType,
CASE in_retention
WHEN 1 THEN 'In retention'
WHEN 0 THEN 'Out of retention'
END AS IsBackupAvailable
FROM sys.dm_database_backups
ORDER BY backup_start_date DESC;