backupset (Transact-SQL)
適用於:SQL Server Azure SQL 受控執行個體 Analytics Platform System (PDW)
每個備份組各含一個資料列。 「備份組」包含單次成功備份作業的備份。 RESTORE、RESTORE FILELISTONLY、RESTORE HEADERONLY 和 RESTORE VERIFYONLY 陳述式會在位於指定之單一或多重備份裝置上媒體集內單一備份組上操作。
此數據表會儲存在 msdb
資料庫中。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
backup_set_id | int | 識別備份集的唯一備份集標識碼。 身分識別,主鍵。 |
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中的FILE(Transact-SQL)。 |
expiration_date | datetime | 備份組到期的日期和時間。 可以是 NULL。 |
software_vendor_id | int | 撰寫備份媒體標頭之軟體廠商的標識碼。 可以是 NULL。 |
name | nvarchar(128) | 備份組的名稱。 可以是 NULL。 |
description | 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 是UTC之後的東部標準時間 (EST) 或5小時。 可以是 NULL。 |
mtf_minor_version | tinyint | Microsoft磁帶格式次要版本號碼。 可以是 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是備份啟動時所觸發的「檢查點開始」。 如果資料庫閑置且未設定複寫,則此 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 中 ,旗標數據 行已被取代,並取代為下列位數據行: 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 簡單 |
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 | 開始復原分支的標識碼。 這會對應至 RESTORE HEADERONLY 的 FirstRecoveryForkID 。 針對數據備份, first_recovery_fork_guid 等於 last_recovery_fork_guid。 |
last_recovery_fork_guid | uniqueidentifier | 結束復原分支的標識碼。 這會對應至 RESTORE HEADERONLY 的 RecoveryForkID 。 針對數據備份, first_recovery_fork_guid 等於 last_recovery_fork_guid。 |
fork_point_lsn | numeric(25,0) | 如果first_recovery_fork_guid不等於last_recovery_fork_guid,這是分叉點的記錄序號。 否則,值為 NULL。 |
database_guid | uniqueidentifier | 資料庫的唯一標識碼。 這會對應至 RESTORE HEADERONLY 的 BindingID 。 還原資料庫時,會指派新的值。 |
family_guid | uniqueidentifier | 建立時原始資料庫的唯一標識碼。 當資料庫還原時,這個值會維持不變,即使是不同的名稱也一樣。 |
differential_base_lsn | numeric(25,0) | 差異備份的基本 LSN。 針對單一式差異備份;差異備份中包含大於或等於 differential_base_lsn 的 LSN 變更。 針對多基底差異,值為 NULL,且基底 LSN 必須在檔案層級決定(請參閱 backupfile (Transact-SQL))。 對於非差異備份類型,值一律為 NULL。 |
differential_base_guid | uniqueidentifier | 如果是單一基底差異備份,這個值就是差異基底的唯一識別碼。 對於多基底差異,此值為 NULL,而且差異基底必須在檔案層級決定。 對於非差異備份類型,值為 NULL。 |
compressed_backup_size | 數值(20,0) | 儲存在磁碟上的備份位元組總數。 若要計算壓縮比例,請使用 compressed_backup_size 和 backup_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 和 整合式加速和卸除。 |
備註
RESTORE VERIFYONLY FROM <backup_device> WITH LOADHISTORY
使用來自媒體集標頭的適當值填入數據表的數據backupmediaset
行。- 若要減少此數據表和其他備份和歷程記錄數據表中的數據列數目,請執行 sp_delete_backuphistory 預存程式。
- 如需 SQL 受管理執行個體,請參閱備份透明度以及如何監視備份。
範例
查詢備份記錄
下列查詢會從過去兩個月傳回成功的備份資訊。
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;
下一步
- BACKUP (Transact-SQL)
- RESTORE 陳述式 (Transact-SQL)
- 備份與還原數據表 (Transact-SQL)
- backupfile (Transact-SQL)
- backupfilegroup (Transact-SQL)
- backupmediafamily (Transact-SQL)
- backupmediaset (Transact-SQL)
- 在備份和還原期間可能的媒體錯誤 (SQL Server)
- 媒體集、媒體家族與備份組 (SQL Server)
- 復原模式 (SQL Server)
- RESTORE HEADERONLY (Transact-SQL)
- 備份與還原數據表 (Transact-SQL)