バックアップ履歴をシステムデータベースから確認するSQL
code:sql
select
bs.backup_start_date
/* , bs.backup_finish_date */
, bs.database_name as backuped_database_name
, bf.logical_name
,
left (bf.physical_name, 8) + '~' +
right (bf.physical_name, 16) as physical_name
/* , bf.physical_name as physical_name_full */
,
left (bmf.physical_device_name, 8) + '~' +
right (bmf.physical_device_name, 16) as physical_device_name
/* , bmf.physical_device_name physical_device_name_full */
, bs.user_name
, backup_type = case
when bs.type = 'D'
and bs.is_copy_only = 0
then '完全バックアップ'
when bs.type = 'D'
and bs.is_copy_only = 1
then '完全(Copy Only)'
when bs.type = 'I'
then '差分バックアップ'
when bs.type = 'L'
then 'ログバックアップ'
when bs.type = 'F'
then 'ファイルorファイルグループ'
when bs.type = 'G'
then '差分ファイル'
when bs.type = 'P'
then '部分'
when bs.type = 'Q'
then '差分部分'
else bs.type
end
, case bf.file_type
when 'D' then 'データファイル'
when 'L' then 'ログファイル'
when 'F' then 'フルテキストカタログ'
else bf.file_type
end as file_type
, bf.filegroup_name
,
left (bs.backup_set_uuid, 5) as uuid
, case bf.state
when 0 then 'ONLINE'
when 1 then 'RESTORING'
when 2 then 'RECOVERING'
when 3 then 'RECOVERY PENDING'
when 4 then 'SUSPECT'
when 6 then 'OFFLINE'
when 7 then 'DEFUNCT'
when 8 then 'DROPPED'
else convert(varchar (1), bf.state)
end as state
/* , bs.name */
,
right (bs.first_lsn, 8) as first_lsn
,
right (bs.last_lsn, 8) as last_lsn
,
right (bs.checkpoint_lsn, 8) as checkpoint_lsn
,
right (bs.database_backup_lsn, 8) as database_backup_lsn
,
right (bs.differential_base_lsn, 8) as differential_base_lsn
,
right (bs.fork_point_lsn, 8) as fork_point_lsn
from
msdb.dbo.backupset as bs
left join msdb.dbo.backupfile as bf
on bs.backup_set_id = bf.backup_set_id
left join msdb.dbo.backupfilegroup as bfg
on bs.backup_set_id = bfg.backup_set_id
left join msdb.dbo.backupmediafamily as bmf
on bs.media_set_id = bmf.media_set_id
where
1 = 1
/* バックアップファイルのタイプ D:データファイル, L:ログファイル, F:フルテキストカタログ */
and bf.file_type = 'D'
/* バックアップ日時 */
/* and bs.backup_start_date > '2023-08-24' */
/* バックアップ元のデータベース名 */
/* and bs.database_name = 'msdb' */
order by
bs.backup_start_date asc;
全部表示用
code:sql
select
bs.backup_start_date
, bs.backup_finish_date
, bs.database_name as backuped_database_name
, bf.logical_name
, bf.physical_name
, bmf.physical_device_name
, bs.user_name
, backup_type = case
when bs.type = 'D'
and bs.is_copy_only = 0
then '完全バックアップ'
when bs.type = 'D'
and bs.is_copy_only = 1
then '完全(Copy Only)'
when bs.type = 'I'
then '差分バックアップ'
when bs.type = 'L'
then 'ログバックアップ'
when bs.type = 'F'
then 'ファイルorファイルグループ'
when bs.type = 'G'
then '差分ファイル'
when bs.type = 'P'
then '部分'
when bs.type = 'Q'
then '差分部分'
else bs.type
end
, case bf.file_type
when 'D' then 'データファイル'
when 'L' then 'ログファイル'
when 'F' then 'フルテキストカタログ'
else bf.file_type
end as file_type
, bf.filegroup_name
, bs.backup_set_uuid
, case bf.state
when 0 then 'ONLINE'
when 1 then 'RESTORING'
when 2 then 'RECOVERING'
when 3 then 'RECOVERY PENDING'
when 4 then 'SUSPECT'
when 6 then 'OFFLINE'
when 7 then 'DEFUNCT'
when 8 then 'DROPPED'
else convert(varchar (1), bf.state)
end as state
, bs.name
, bs.first_lsn
, bs.last_lsn
, bs.checkpoint_lsn
, bs.database_backup_lsn
, bs.differential_base_lsn
, bs.fork_point_lsn
from
msdb.dbo.backupset as bs
left join msdb.dbo.backupfile as bf
on bs.backup_set_id = bf.backup_set_id
left join msdb.dbo.backupfilegroup as bfg
on bs.backup_set_id = bfg.backup_set_id
left join msdb.dbo.backupmediafamily as bmf
on bs.media_set_id = bmf.media_set_id
where
1 = 1
/* バックアップファイルのタイプ D:データファイル, L:ログファイル, F:フルテキストカタログ */
and bf.file_type = 'D'
/* バックアップ日時 */
/* and bs.backup_start_date > '2023-08-24' */
/* バックアップ元のデータベース名 */
/* and bs.database_name = 'msdb' */
order by
bs.backup_start_date asc;