backupset (Transact-SQL)

Si applica a:SQL Server Istanza gestita di SQL di Azure Analytics Platform System (PDW)

Contiene una riga per ogni set di backup. Un set di backup contiene il backup di una singola operazione di backup riuscita. Le istruzioni RESTORE, RESTORE FILELISTONLY, RESTORE HEADERONLY e RESTORE VERIFYONLY operano in un singolo set di backup all'interno del set di supporti nei dispositivi di backup specificati.

Questa tabella viene archiviata nel msdb database.

Nome colonna Tipo di dati Descrizione
backup_set_id int Numero di identificazione univoco del set di backup. Identità, chiave primaria.
backup_set_uuid uniqueidentifier Numero di identificazione univoco del set di backup.
media_set_id int Numero di identificazione univoco del set di supporti che include il set di backup. Fa riferimento a backupmediaset(media_set_id).
first_family_number tinyint Numero del gruppo di supporti in cui inizia il set di backup. Può essere NULL.
first_media_number smallint Numero del supporto in cui inizia il set di backup. Può essere NULL.
last_family_number tinyint Numero del gruppo di supporti in cui termina il set di backup. Può essere NULL.
last_media_number smallint Numero del supporto in cui termina il set di backup. Può essere NULL.
catalog_family_number tinyint Numero del gruppo di supporti che include l'inizio della directory del set di backup. Può essere NULL.
catalog_media_number smallint Numero del supporto che include l'inizio della directory del set di backup. Può essere NULL.
position int Posizione del set di backup utilizzata nell'operazione di ripristino per individuare il set e i file di backup appropriati. Può essere NULL. Per altre informazioni, vedere FILE in BACKUP (Transact-SQL).
expiration_date datetime Data e ora di scadenza del set di backup. Può essere NULL.
software_vendor_id int Numero di identificazione del produttore del software con cui viene scritta l'intestazione supporto di backup. Può essere NULL.
name nvarchar(128) Nome del set di backup. Può essere NULL.
description nvarchar(255) Descrizione del set di backup. Può essere NULL.
user_name nvarchar(128) Nome dell'utente che esegue l'operazione di backup. Può essere NULL.
software_major_version tinyint Numero di versione principale di Microsoft SQL Server. Può essere NULL.
software_minor_version tinyint Numero di versione secondaria di SQL Server. Può essere NULL.
software_build_version smallint Numero di build di SQL Server. Può essere NULL.
time_zone smallint Differenza tra l'ora locale (in cui viene eseguita l'operazione di backup) e l'ora UTC (Coordinated Universal Time) in intervalli di 15 minuti usando le informazioni sul fuso orario al momento dell'avvio dell'operazione di backup. I possibili valori sono compresi tra -48 e +48 inclusi. Il valore 127 indica che la differenza è sconosciuta. Ad esempio, -20 indica l'ora della costa orientale degli Stati Uniti, ovvero 5 ore in meno rispetto all'ora di Greenwich. Può essere NULL.
mtf_minor_version tinyint Numero di versione secondaria di Formato nastro Microsoft. Può essere NULL.
first_lsn numeric(25,0) Numero di sequenza del file di log del primo record, ovvero del record di log meno recente nel set di backup. Può essere NULL.
last_lsn numeric(25,0) Numero di sequenza del file di log (LSN) del record di log successivo dopo il set di backup. Può essere NULL.
checkpoint_lsn numeric(25,0) Numero di sequenza del file di log del record di log da cui deve essere avviata l'operazione di rollforward. Può essere NULL.
database_backup_lsn numeric(25,0) Numero di sequenza del file di log dell'operazione più recente di backup completo del database. Può essere NULL.

database_backup_lsn è il "inizio del checkpoint" che viene attivato all'avvio del backup. Questo LSN coinciderà con first_lsn se il backup viene eseguito quando il database è inattiva e non è configurata alcuna replica.
database_creation_date datetime Data e ora in cui è stato creato il database. Può essere NULL.
backup_start_date datetime Data e ora in cui è stata avviata l'operazione di backup. Può essere NULL.
backup_finish_date datetime Data e ora in cui è terminata l'operazione di backup. Può essere NULL.
type char(1) Tipo di backup. I possibili valori sono i seguenti:

D = Database
I = Database differenziale
L = Log
F = File o filegroup
G =File differenziale
P = Parziale
Q = Parziale differenziale

Può essere NULL.
sort_order smallint Tipo di ordinamento del server che esegue l'operazione di backup. Può essere NULL. Per altre informazioni sugli ordini di ordinamento e sulle regole di confronto, vedere Regole di confronto e supporto Unicode.
code_page smallint Tabella codici del server che esegue l'operazione di backup. Può essere NULL. Per altre informazioni sulle tabelle codici, vedere Regole di confronto e supporto Unicode.
compatibility_level tinyint Impostazione del livello di compatibilità per il database. I possibili valori sono i seguenti:

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)

Può essere NULL.

Per altre informazioni sui livelli di compatibilità, vedere Livello di compatibilità ALTER DATABASE (Transact-SQL).
database_version int Numero di versione del database. Può essere NULL.
backup_size numeric(20,0) Dimensioni in byte del set di backup. Può essere NULL. Per i backup vss, backup_size è un valore stimato.
database_name nvarchar(128) Nome del database su cui viene eseguita l'operazione di backup. Può essere NULL.
server_name nvarchar(128) Nome del server che esegue l'operazione di backup di SQL Server. Può essere NULL.
machine_name nvarchar(128) Nome del computer che esegue SQL Server. Può essere NULL.
flags int In SQL Server la colonna flags è stata deprecata e viene sostituita con le colonne di bit seguenti:

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

Può essere NULL.

Nei set di backup delle versioni precedenti di SQL Server, flag bit:
1 = Il backup contiene dati a registrazione minima.
2 = È stata utilizzata l'opzione WITH SNAPSHOT.
4 = Al momento del backup il database era in modalità sola lettura.
8 = Al momento del backup il database era in modalità utente singolo.
unicode_locale int Impostazioni locali Unicode. Può essere NULL.
unicode_compare_style int Stile di confronto Unicode. Può essere NULL.
collation_name nvarchar(128) Nome delle regole di confronto. Può essere NULL.
Is_password_protected bit Indica se il set di backup

è protetto con password:

0 = non protetto

1 = protetto
recovery_model nvarchar(60) Modello di recupero per il database:

FULL

BULK-LOGGED

SEMPLICE
has_bulk_logged_data bit 1 = Il backup contiene dati con registrazione minima delle operazioni bulk.
is_snapshot bit 1 = Il backup è stato eseguito utilizzando l'opzione SNAPSHOT.
is_readonly bit 1 = Al momento del backup il database era in modalità sola lettura.
is_single_user bit 1 = Al momento del backup il database era in modalità utente singolo.
has_backup_checksums bit 1 = Il backup contiene valori di checksum del backup.
is_damaged bit 1 = Durante la creazione del backup sono stati rilevati danni al database. È stato richiesto di continuare l'operazione di backup nonostante gli errori.
begins_log_chain bit 1 = Il primo di una catena continua di backup di log. Una catena di log inizia con il primo backup del log eseguito dopo la creazione del database oppure quando si passa dal modello di recupero con registrazione semplice al modello di recupero con registrazione completa o al modello di recupero con registrazione minima delle operazioni bulk.
has_incomplete_metadata bit 1 = Backup della parte finale del log con metadati incompleti. Per altre informazioni, vedere Backup della parte finale del log (SQL Server).
is_force_offline bit 1 = Per il database è stata impostata la modalità offline mediante l'utilizzo dell'opzione NORECOVERY durante la creazione del backup.
is_copy_only bit 1 = Backup di sola copia. Per altre informazioni, vedere Backup di sola copia (SQL Server).
first_recovery_fork_guid uniqueidentifier ID del fork di recupero iniziale. Corrisponde a FirstRecoveryForkID di RESTORE HEADERONLY.

Per i backup dei dati, first_recovery_fork_guid è uguale a last_recovery_fork_guid.
last_recovery_fork_guid uniqueidentifier ID del fork di recupero finale. Corrisponde a RecoveryForkID di RESTORE HEADERONLY.

Per i backup dei dati, first_recovery_fork_guid è uguale a last_recovery_fork_guid.
fork_point_lsn numeric(25,0) Se first_recovery_fork_guid non è uguale a last_recovery_fork_guid, si tratta del numero di sequenza di log del punto fork. Negli altri casi il valore è NULL.
database_guid uniqueidentifier ID univoco per il database. Corrisponde a BindingID di RESTORE HEADERONLY. Quando il database viene ripristinato, viene assegnato un nuovo valore.
family_guid uniqueidentifier ID univoco del database originale al momento della creazione. Questo valore rimane invariato quando il database viene ripristinato, anche in caso di modifica del nome.
differential_base_lsn numeric(25,0) Numero di sequenza del file di log (LSN) di base per i backup differenziali. Per un backup differenziale a base singola; le modifiche con LSN maggiori o uguali a differential_base_lsn sono incluse nel backup differenziale.

Per un differenziale multibasato, il valore è NULL e l'LSN di base deve essere determinato a livello di file (vedere backupfile (Transact-SQL)).

Per i tipi di backup non differenziali, il valore è sempre NULL.
differential_base_guid uniqueidentifier Per un backup differenziale basato su un solo backup, il valore è l'identificatore univoco della base differenziale.

Per i backup differenziali basati su più backup, il valore è NULL e la base differenziale deve essere determinata a livello di file.

Per tipi di backup non differenziali, il valore è NULL.
compressed_backup_size Numeric(20,0) Numero totale di byte del backup archiviato nel disco.

Per calcolare il rapporto di compressione, usare compressed_backup_size e backup_size.

Durante un msdb aggiornamento, questo valore è impostato su NULL. che indica un backup non compresso.
key_algorithm nvarchar(32) Algoritmo utilizzato per crittografare il backup. Il valore NO_Encryption indica che il backup non è stato crittografato.
encryptor_thumbprint varbinary(20) L'identificazione digitale del componente di crittografia che può essere utilizzato per trovare il certificato o la chiave asimmetrica nel database. Nel caso in cui il backup non è stato crittografato, questo valore è NULL.
encryptor_type nvarchar(32) Tipo di componente di crittografia: certificato o chiave asimmetrica. Nel caso in cui il backup non è stato crittografato, questo valore è NULL.
last_valid_restore_time datetime Timestamp dell'ultimo record del log delle transazioni incluso nel backup del log delle transazioni, per i record di log che contengono un timestamp. Aiuta a costruire piani di ripristino aiutando a trovare l'ultimo backup del log da ripristinare quando la STOPAT clausola viene specificata nell'istruzione RESTORE LOG . Il backup del log ha il last_valid_restore_time strettamente maggiore del tempo specificato nella STOPAT clausola . Introdotto in SQL Server 2022 (16.x).
compression_algorithm nvarchar(32) Algoritmo di compressione utilizzato durante la creazione del backup di SQL Server. Introdotto in SQL Server 2022 (16.x). Il valore predefinito è MS_XPRESS. Per altre informazioni, vedere BACKUP COMPRESSION e Accelerazione integrata e offload.

Osservazioni:

  • RESTORE VERIFYONLY FROM <backup_device> WITH LOADHISTORY popola la colonna della backupmediaset tabella con i valori appropriati dall'intestazione del set di supporti.
  • Per ridurre il numero di righe in questa tabella e in altre tabelle di backup e cronologia, eseguire la stored procedure sp_delete_backuphistory .
  • Per Istanza gestita di SQL, vedere Trasparenza del backup e come monitorare i backup.

Esempi

Cronologia di backup delle query

La query seguente restituisce informazioni di backup riuscite degli ultimi due mesi.

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;

Passaggi successivi