Istruzioni RESTORE - HEADERONLY (Transact-SQL)

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Restituisce un set di risultati contenente tutte le informazioni sull'intestazione del backup per tutti i set di backup di un dispositivo specifico in SQL Server.

Nota

Per le descrizioni degli argomenti, vedere Argomenti RESTORE (Transact-SQL).

Convenzioni di sintassi Transact-SQL

Sintassi

RESTORE HEADERONLY
FROM <backup_device>
[ WITH
    {
    -- Backup set options
    FILE = { backup_set_file_number | @backup_set_file_number }
    | PASSWORD = { password | @password_variable }
    | [ METADATA_ONLY | SNAPSHOT ] [ DBNAME = { database_name | @database_name_variable } ]

    -- Media set options
    | MEDIANAME = { media_name | @media_name_variable }
    | MEDIAPASSWORD = { mediapassword | @mediapassword_variable }

    -- Error management options
    | { CHECKSUM | NO_CHECKSUM }
    | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

    -- Tape options
    | { REWIND | NOREWIND }
    | { UNLOAD | NOUNLOAD }
    } [ , ...n ]
]
[ ; ]

<backup_device> ::=
{
   { logical_backup_device_name |
     @logical_backup_device_name_var }
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |
       @physical_backup_device_name_var }
}

Nota

URLè il formato usato per specificare il percorso e il nome file per Archiviazione BLOB di Azure ed è supportato a partire da SQL Server 2012 (11.x) SP 1 CU 2. Anche se l'archiviazione di Azure è un servizio, l'implementazione è simile a disco e nastro, per consentire un'esperienza di ripristino coerente e trasparente per tutti e tre i dispositivi.

Argomenti

Per le descrizioni degli RESTORE HEADERONLY argomenti, vedere Argomenti RESTORE (Transact-SQL).

Set di risultati

Per ogni backup nel dispositivo specificato, il server invia una riga di informazioni sull'intestazione con le colonne riportate di seguito.

Nome colonna Tipo di dati Descrizione per i set di backup SQL Server
BackupName1 nvarchar(128) Nome del set di backup.
BackupDescription nvarchar(255) Descrizione del set di backup. Può essere NULL.
BackupType smallint Tipo di backup:

1 = Database
2 = Log delle transazioni
4 = File
5 = Database differenziale
6 = File differenziale
7 = Parziale
8 = Parziale differenziale
ExpirationDate datetime Data di scadenza del set di backup.
Compressed bit Specifica se il set di backup viene compresso utilizzando la compressione software:

0 = No
1 = Sì
Position smallint Posizione del set di backup nel volume (da utilizzare con l'opzione FILE =).
DeviceType tinyint Numero corrispondente a tipo di dispositivo utilizzato per l'operazione di backup.

Disco:

- 2 = Logico
- 102 = Fisico

Nastro:

- 5 = Logico
- 105 = Fisico

Dispositivo virtuale:

- 7 = Logico
- 107 = Fisico

URL:

- 9 = Logico
- 109 = Fisico

I nomi dei dispositivi logici e i numeri di dispositivo sono in sys.backup_devices. Per altre informazioni, vedere sys.backup_devices.
UserName nvarchar(128) Nome dell'utente che ha eseguito l'operazione di backup.
ServerName nvarchar(128) Nome del server che ha scritto il set di backup.
DatabaseName nvarchar(128) Nome del database di cui è stato eseguito il backup.
DatabaseVersion int Versione del database da cui è stato creato il backup.
DatabaseCreationDate datetime Data e ora di creazione del database.
BackupSize numeric(20,0) Dimensioni del backup in byte.
FirstLSN numeric(25,0) Numero di sequenza del file di log (LSN) del primo record di log nel set di backup.
LastLSN numeric(25,0) Numero di sequenza del file di log (LSN) del record di log successivo dopo il set di backup.
CheckpointLSN numeric(25,0) Numero di sequenza del file di log del checkpoint più recente al momento della creazione del backup.
DatabaseBackupLSN numeric(25,0) Numero di sequenza del file di log dell'operazione più recente di backup completo del database.

DatabaseBackupLSN è l'inizio del checkpoint che viene attivato all'avvio del backup. Questo LSN coincide con FirstLSN se il backup viene eseguito quando il database è inattiva e non viene configurata alcuna replica.
BackupStartDate datetime Data e ora di inizio dell'operazione di backup.
BackupFinishDate datetime Data e ora di fine dell'operazione di backup.
SortOrder smallint Tipo di ordinamento del server. Questa colonna è valida solo per i backup dei database. Disponibile per compatibilità con le versioni precedenti.
CodePage smallint Tabella codici del server o set di caratteri utilizzato dal server.
UnicodeLocaleId int Opzione di configurazione dell'ID delle impostazioni locali Unicode del server utilizzata per l'ordinamento dei dati di tipo carattere Unicode. Disponibile per compatibilità con le versioni precedenti.
UnicodeComparisonStyle int Opzione di configurazione dello stile di confronto Unicode del server che consente di controllare ulteriormente l'ordinamento dei dati Unicode. Disponibile per compatibilità con le versioni precedenti.
CompatibilityLevel tinyint Impostazione del livello di compatibilità del database da cui è stato creato il backup.
SoftwareVendorId int Numero di identificazione del produttore del software. Per SQL Server, questo numero è 4608 (o esadecimale 0x1200).
SoftwareVersionMajor int Numero di versione principale del server in cui è stato creato il set di backup.
SoftwareVersionMinor int Numero di versione secondario del server in cui è stato creato il set di backup.
SoftwareVersionBuild int Numero di build del server in cui è stato creato il set di backup.
MachineName nvarchar(128) Nome del computer in cui è stato eseguito il backup.
Flags int Significati di bit dei singoli flag:

- 1 = Il backup del log contiene operazioni con registrazione minima delle operazioni bulk.

- 2 = Backup dello snapshot.

- 4 = Il database è di sola lettura durante il backup.

- 8 = Il database era in modalità utente singolo durante il backup.

- 16 = Il backup contiene checksum di backup.

- 32 = Il database è stato danneggiato durante il backup, ma l'operazione di backup è stata richiesta per continuare nonostante gli errori.

- 64 = Backup della parte finale del log.

- 128 = Backup della parte finale del log con metadati incompleti.

- 256 = Backup della parte finale del log con NORECOVERY.

Importante: invece di Flags usare le singole colonne booleane ,a partire da e terminando con HasBulkLoggedDataIsCopyOnly in questa tabella.
BindingID uniqueidentifier ID di associazione per il database. Questo valore corrisponde a database_guid in sys.database_recovery_status. In caso di ripristino di un database viene assegnato un nuovo valore. Vedere anche FamilyGUID.
RecoveryForkID uniqueidentifier ID per il fork di recupero finale. Questa colonna corrisponde a last_recovery_fork_guid nella tabella del set di backup .

Per i backup dei dati, RecoveryForkID è uguale a FirstRecoveryForkID.
Collation nvarchar(128) Regole di confronto utilizzate dal database.
FamilyGUID uniqueidentifier ID del database originale al momento della creazione. Il valore non cambia quando il database viene ripristinato.
HasBulkLoggedData bit 1 = Backup del log contenente operazioni con registrazione minima delle operazioni bulk.
IsSnapshot bit 1 = Backup di snapshot.
IsReadOnly bit 1 = Al momento del backup il database era in modalità sola lettura.
IsSingleUser bit 1 = Al momento del backup il database era in modalità utente singolo.
HasBackupChecksums bit 1 = Il backup contiene valori di checksum del backup.
IsDamaged bit 1 = Al momento del backup il database era danneggiato ma è stato richiesto di continuare l'operazione di backup nonostante gli errori.
BeginsLogChain 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 o quando viene passato dal modello di recupero Con registrazione minima o con registrazione minima delle operazioni bulk.
HasIncompleteMetaData bit 1 = Backup della parte finale del log con metadati incompleti.

Per informazioni sul backup della parte finale del log con metadati incompleti, vedere Backup della parte finale del log (SQL Server).
IsForceOffline bit 1 = Backup eseguito con NORECOVERY; database offline a causa del backup.
IsCopyOnly bit 1 = Backup di sola copia.

Un backup di sola copia non influisce sulle procedure generali di backup e ripristino per il database. Per altre informazioni, vedere Backup di sola copia (SQL Server).
FirstRecoveryForkID uniqueidentifier ID per il fork di recupero iniziale. Questa colonna corrisponde a first_recovery_fork_guid nella tabella del set di backup .

Per i backup dei dati, FirstRecoveryForkID è uguale a RecoveryForkID.
ForkPointLSN numeric(25,0) Se FirstRecoveryForkID non è uguale a RecoveryForkID, questo valore è il numero di sequenza del log del punto fork. Negli altri casi il valore è NULL.
RecoveryModel nvarchar(60) Modello di recupero per il database, uno dei seguenti:

-COMPLETO
- BULK-LOGGED
-SEMPLICE
DifferentialBaseLSN numeric(25,0) Per un backup differenziale a base singola, il valore è uguale a FirstLSN della base differenziale. Le modifiche con LSN maggiori o uguali a DifferentialBaseLSN vengono incluse nel differenziale.

Per un backup differenziale basato su più backup, il valore è NULL e il valore LSN di base deve essere determinato a livello di file. Per altre informazioni, vedere RESTORE FILELISTONLY.

Per i tipi di backup non differenziali il valore è sempre NULL.

Per altre informazioni, vedere Backup differenziali (SQL Server).
DifferentialBaseGUID 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 per ogni file.

Per i tipi di backup non differenziali il valore è NULL.
BackupTypeDescription nvarchar(60) Tipo di backup in formato stringa. I possibili valori sono i seguenti:

- DATABA edizione Standard
- LOG DELLE TRANSAZIONI
- FILE O FILEGROUP
- DATABA edizione Standard DIFFERENZIALE
- FILE DIFFERENZIALE PARZIALE
- DIFFERENZIALE PARZIALE
BackupSetGUID uniqueidentifier Identificatore univoco del set di backup, che lo identifica nei supporti. Può essere NULL.
CompressedBackupSize bigint Numero totale di byte del set di backup. Per i backup non compressi, questo valore è uguale BackupSizea .

Per calcolare il rapporto di compressione, usare CompressedBackupSize e BackupSize.

Durante un msdb aggiornamento, questo valore viene impostato in modo che corrisponda al valore della BackupSize colonna.
containment tinyint Si applica a: SQL Server 2012 (11.x) e versioni successive.

Indica lo stato di indipendenza del database.

0 = l'indipendenza del database è disabilitata
1 = il database è in stato di indipendenza parziale
KeyAlgorithm nvarchar(32) Si applica a: SQL Server 2014 (12.x) CU 1 e versioni successive.

Algoritmo utilizzato per crittografare il backup. NO_Encryption indica che il backup non è stato crittografato. Quando non è possibile determinare il valore corretto, il valore deve essere NULL.
EncryptorThumbprint varbinary(20) Si applica a: SQL Server 2014 (12.x) CU 1 e versioni successive.

Identificazione personale del crittografatore che può essere usata per trovare il certificato o la chiave asimmetrica nel database. Quando il backup non è stato crittografato, questo valore è NULL.
EncryptorType nvarchar(32) Si applica a: SQL Server 2014 (12.x) CU 1 e versioni successive.

Tipo di componente di crittografia: certificato o chiave asimmetrica. Quando il backup non è stato crittografato, questo valore è NULL.
LastValidRestoreTime datetime Si applica a: SQL Server 2022 (16.x) e versioni successive.

Ora dell'ultimo ripristino valido.
TimeZone nvarchar(32) Si applica a: SQL Server 2022 (16.x) e versioni successive.

Fuso orario del server da cui è stato eseguito il backup.
CompressionAlgorithm nvarchar(32) Si applica a: SQL Server 2022 (16.x) e versioni successive.

Identifica l'algoritmo di compressione usato per comprimere il file di backup. Il valore predefinito è MS_XPRESS. Per altre informazioni, vedere BACKUP.

1 Se le password sono definite per i set di backup, RESTORE HEADERONLY mostra informazioni complete solo per il set di backup la cui password corrisponde all'opzione specificata PASSWORD del comando. RESTORE HEADERONLY mostra anche informazioni complete per i set di backup non protetti. La BackupName colonna per gli altri set di backup protetti da password nel supporto è impostata su 'Password Protected'e tutte le altre colonne sono NULL.

Osservazioni:

Un client può usare RESTORE HEADERONLY per recuperare tutte le informazioni sull'intestazione di backup per tutti i backup in un determinato dispositivo di backup. Per ogni backup nel dispositivo di backup il server invia le informazioni di intestazione sotto forma di riga.

RESTORE HEADERONLY esamina tutti i set di backup nel supporto. Pertanto, se si utilizzano unità nastro ad alta capacità, la generazione di questo set di risultati può richiedere tempo. Per esaminare rapidamente i supporti senza ottenere informazioni su ogni set di backup, usare RESTORE LABELONLY o specificare FILE = <backup_set_file_number>.

A causa della natura del formato nastro Microsoft, è possibile che i set di backup di altri programmi software occupino spazio nello stesso supporto dei set di backup di SQL Server. Il set di risultati restituito da RESTORE HEADERONLY include una riga per ognuno di questi altri set di backup.

Sicurezza

Per un'operazione di backup è possibile specificare password per un set di supporti o un set di backup oppure per entrambi. Se è stata impostata una password per un set di supporti o un set di backup, la password o le password corrette devono essere specificate nell'istruzione RESTORE. Queste password impediscono operazioni di ripristino non autorizzate e l'aggiunta non autorizzata di set di backup ai supporti tramite gli strumenti di SQL Server. Tuttavia, una password non impedisce la sovrascrittura dei supporti usando l'opzione FORMAT dell'istruzione BACKUP.

Importante

Il livello di protezione garantito da questa password è vulnerabile. Lo scopo è impedire un ripristino non corretto da parte di utenti autorizzati o non autorizzati mediante gli strumenti di SQL Server. Non impedisce la lettura dei dati di backup eseguita con altri mezzi o la sostituzione della password. Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Per ottenere un livello di protezione adeguato dei backup, è consigliabile archiviare i nastri di backup in un luogo sicuro oppure eseguire il backup su file su disco protetti da elenchi di controllo di accesso (ACL) appropriati. Gli elenchi di controllo di accesso devono essere impostati a livello della directory radice in cui vengono creati i backup.

Autorizzazioni

Per ottenere informazioni su un set o dispositivo di backup è necessario disporre dell'autorizzazione CREATE DATABASE. Per altre informazioni, vedere GRANT - autorizzazioni per database (Transact-SQL).

Esempi

Nell'esempio seguente vengono restituite le informazioni dell'intestazione per il file su disco C:\AdventureWorks-FullBackup.bak.

RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks-FullBackup.bak';
GO

Vedi anche