Поделиться через


backupset (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure Платформенная система аналитики (PDW)

Содержит по одной строке для каждого резервного набора данных. Резервный набор данных содержит резервную копию, полученную в результате отдельной успешной операции резервного копирования. Инструкции RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY и RESTORE VERIFYONLY выполняются над отдельным резервным набором данных в рамках набора носителей на указанном устройстве или устройствах резервного копирования.

Эта таблица хранится в msdb базе данных.

Имя столбца Тип данных Description
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. Для дополнительных сведений см. FILE в разделе BACKUP (Transact-SQL).
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 — время на восточном побережье США (Eastern Standard Time, EST), отстоящее на пять часов вперед от UTC. Может иметь значение 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 представляет собой "начало контрольной точки", которое активируется при запуске резервного копирования. Этот номер 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. Дополнительные сведения о порядке и параметрах сортировки см. в разделе Поддержка параметров сортировки и Юникода.
code_page smallint Кодовая страница на сервере, выполняющем операцию резервного копирования. Может иметь значение NULL. Дополнительные сведения о кодовых страницах см. в разделе Поддержка параметров сортировки и Юникода.
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 Локаль Юникод. Может иметь значение NULL.
unicode_compare_style int Стиль сравнения Юникод. Может иметь значение 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 Идентификатор начальной вилки восстановления. Соответствует параметру FirstRecoveryForkID инструкции RESTORE HEADERONLY.

Для резервного копирования данных параметр first_recovery_fork_guid равен last_recovery_fork_guid.
last_recovery_fork_guid uniqueidentifier Идентификатор конечной вилки восстановления. Соответствует параметру RecoveryForkID инструкции RESTORE HEADERONLY.

Для резервного копирования данных параметр 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 Уникальный идентификатор базы данных. Соответствует параметру BindingID инструкции RESTORE HEADERONLY. При восстановлении базы данных назначается новое значение.
family_guid uniqueidentifier Уникальный идентификатор оригинальной базы данных в момент создания. Это значение остается неизменным при восстановлении базы данных, даже если ей присваивается другое имя.
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_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 Метка времени последней записи журнала транзакций, включенной в резервную копию журнала транзакций, для записей журналов, которые несут метку времени. Помогает создавать планы восстановления, помогая найти последнюю резервную копию журнала для восстановления при STOPAT указании предложения в инструкции RESTORE LOG . Эта резервная копия журнала имеет 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;

Следующие шаги