RESTORE HEADERONLY (Transact-SQL)

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

[!NOTA]

Per una descrizione degli argomenti, vedere Argomenti dell'istruzione RESTORE (Transact-SQL).

Icona di collegamento a un argomentoConvenzioni della 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 } 

--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 } = { 'physical_backup_device_name' |
              @physical_backup_device_name_var } 
} 

Argomenti

Per una descrizione degli argomenti di RESTORE HEADERONLY, vedere Argomenti dell'istruzione 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.

[!NOTA]

RESTORE HEADERONLY esamina tutti i set di backup nei supporti. Pertanto, se si utilizzano unità nastro ad alta capacità, la generazione di questo set di risultati può richiedere tempo. Per un esame rapido dei supporti senza visualizzare informazioni per ogni set di backup, eseguire l'istruzione RESTORE LABELONLY oppure specificare l'opzione FILE = backup_set_file_number.

[!NOTA]

A causa della natura del formato Microsoft Tape Format, è possibile che negli stessi supporti dei set di backup di MicrosoftSQL Server siano presenti set di backup di altri programmi software. Il set di risultati restituito da RESTORE HEADERONLY include una riga per ognuno degli altri set di backup.

Nome colonna

Tipo di dati

Descrizione per i set di backup SQL Server

Descrizione per gli altri set di backup

BackupName

nvarchar(128)

Nome del set di backup.

Nome del set di dati

BackupDescription

nvarchar(255)

Descrizione del set di backup.

Descrizione del set di dati

BackupType

smallint

Tipo di backup:

1 = Database

2 = Log delle transazioni

4 = File

5 = Database differenziale

6 = File differenziale

7 = Parziale

8 = Parziale differenziale

Tipo di backup:

1 = Normale

5 = Differenziale

16 = Incrementale

17 = Giornaliero

ExpirationDate

datetime

Data di scadenza del set di backup.

NULL

Compressed

BYTE(1)

Specifica se il set di backup viene compresso utilizzando la compressione software:

0 = No

1 = Sì

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 =).

Posizione del set di backup nel volume

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 = Logica

107 = Fisica

I nomi e i numeri dei dispositivi logici sono inclusi in sys.backup_devices. Per ulteriori informazioni, vedere sys.backup_devices (Transact-SQL).

NULL

UserName

nvarchar(128)

Nome dell'utente che ha eseguito l'operazione di backup.

Nome dell'utente che ha eseguito l'operazione di backup

ServerName

nvarchar(128)

Nome del server che ha scritto il set di backup.

NULL

DatabaseName

nvarchar(128)

Nome del database di cui è stato eseguito il backup.

NULL

DatabaseVersion

int

Versione del database da cui è stato creato il backup.

NULL

DatabaseCreationDate

datetime

Data e ora di creazione del database.

NULL

BackupSize

numeric(20,0)

Dimensioni del backup in byte.

NULL

FirstLSN

numeric(25,0)

Numero di sequenza del file di log del primo record di log nel set di backup.

NULL

LastLSN

numeric(25,0)

Numero di sequenza del file di log del record di log successivo dopo il set di backup.

NULL

CheckpointLSN

numeric(25,0)

Numero di sequenza del file di log del checkpoint più recente al momento della creazione del backup.

NULL

DatabaseBackupLSN

numeric(25,0)

Numero di sequenza del file di log dell'operazione più recente di backup completo del database.

DatabaseBackupLSN rappresenta l'inizio del checkpoint che viene attivato all'avvio del backup. Il numero LSN coincide con il valore di FirstLSN se il backup viene eseguito quando il database è inattivo e non è configurata la replica.

NULL

BackupStartDate

datetime

Data e ora di inizio dell'operazione di backup.

Data di scrittura dei supporti

BackupFinishDate

datetime

Data e ora di fine dell'operazione di backup.

Data di scrittura dei supporti

SortOrder

smallint

Tipo di ordinamento del server. Questa colonna è valida solo per i backup dei database. Disponibile per compatibilità con le versioni precedenti.

NULL

CodePage

smallint

Tabella codici del server o set di caratteri utilizzato dal server.

NULL

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.

NULL

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.

NULL

CompatibilityLevel

tinyint

Impostazione del livello di compatibilità del database da cui è stato creato il backup.

NULL

SoftwareVendorId

int

Numero di identificazione del produttore del software. Per SQL Server questo numero è4608 (o l'esadecimale 0x1200).

Numero di identificazione del produttore del software

SoftwareVersionMajor

int

Numero di versione principale del server in cui è stato creato il set di backup.

Numero di versione principale del software con cui è stato creato il set di backup

SoftwareVersionMinor

int

Numero di versione secondario del server in cui è stato creato il set di backup.

Numero di versione secondario del software con cui è stato creato il set di backup

SoftwareVersionBuild

int

Numero di build del server in cui è stato creato il set di backup.

NULL

MachineName

nvarchar(128)

Nome del computer in cui è stato eseguito il backup.

Tipo di computer in cui è stato eseguito il backup

Flags

int

Significato dei bit dei singoli flag se impostato su 1:

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

2 = Backup 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.

16 = Il backup contiene valori di checksum del backup.

32 = Al momento del backup il database era danneggiato ma è stato richiesto di continuare l'operazione di backup 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.

Nota importanteImportante
Anziché Flags è consigliabile utilizzare le singole colonne booleane (elencate di seguito da HasBulkLoggedData a IsCopyOnly).

NULL

BindingID

uniqueidentifier

ID di associazione per il database. Corrisponde a sys.databasesdatabase_guid. In caso di ripristino di un database viene assegnato un nuovo valore. Vedere anche FamilyGUID (più avanti in questo argomento).

NULL

RecoveryForkID

uniqueidentifier

ID per il fork di recupero finale. Questa colonna corrisponde a last_recovery_fork_guid nella tabella backupset.

Per i backup di dati RecoveryForkID è uguale a FirstRecoveryForkID.

NULL

Collation

nvarchar(128)

Regole di confronto utilizzate dal database.

NULL

FamilyGUID

uniqueidentifier

ID del database originale al momento della creazione. Il valore non cambia quando il database viene ripristinato.

NULL

HasBulkLoggedData

bit

1 = Backup del log contenente operazioni con registrazione minima delle operazioni bulk.

NULL

IsSnapshot

bit

1 = Backup snapshot.

NULL

IsReadOnly

bit

1 = Al momento del backup il database era in modalità sola lettura.

NULL

IsSingleUser

bit

1 = Al momento del backup il database era in modalità utente singolo.

NULL

HasBackupChecksums

bit

1 = Il backup contiene valori di checksum del backup.

NULL

IsDamaged

bit

1 = Al momento del backup il database era danneggiato ma è stato richiesto di continuare l'operazione di backup nonostante gli errori.

NULL

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 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.

NULL

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.

NULL

IsForceOffline

bit

1 = Backup eseguito con NORECOVERY; database non in linea a causa del backup.

NULL

IsCopyOnly

bit

1 = Backup di sola copia.

Un backup di sola copia non ha alcun effetto sulle procedure di backup e ripristino generali per il database. Per ulteriori informazioni, vedere Backup di sola copia.

NULL

FirstRecoveryForkID

uniqueidentifier

ID per il fork di recupero iniziale. Questa colonna corrisponde a first_recovery_fork_guid nella tabella backupset.

Per i backup di dati FirstRecoveryForkID è uguale a RecoveryForkID.

NULL

ForkPointLSN

numeric(25,0) NULL

Se FirstRecoveryForkID è diverso da RecoveryForkID, questo è il numero di sequenza del file di log del punto di fork. Negli altri casi il valore è NULL.

NULL

RecoveryModel

nvarchar(60)

Modello di recupero del database. I possibili valori sono i seguenti:

FULL

BULK-LOGGED

SIMPLE

NULL

DifferentialBaseLSN

numeric(25,0) NULL

Per un backup differenziale basato su un solo backup, il valore è uguale al valore di FirstLSN del backup differenziale. Le modifiche con valori LSN maggiori o uguali a DifferentialBaseLSN vengono incluse nel backup 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 ulteriori informazioni, vedere RESTORE FILELISTONLY (Transact-SQL).

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

Per ulteriori informazioni, vedere Base di un backup differenziale.

NULL

DifferentialBaseGUID

uniqueidentifier

Per un backup differenziale basato su un solo backup, il valore è l'identificatore univoco del backup 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.

NULL

BackupTypeDescription

nvarchar(60)

Tipo di backup in formato stringa. I possibili valori sono i seguenti:

DATABASE

TRANSACTION LOG

FILE OR FILEGROUP

DATABASE DIFFERENTIAL

FILE DIFFERENTIAL PARTIAL

PARTIAL DIFFERENTIAL

Tipo di backup in formato stringa. I possibili valori sono i seguenti:

NORMAL

DIFFERENTIAL

INCREMENTAL

DAILY

BackupSetGUID

uniqueidentifier NULL

Identificatore univoco del set di backup, che lo identifica nei supporti.

NULL

CompressedBackupSize

uint64

Numero totale di byte del set di backup. Per i backup non compressi, questo valore corrisponde a quello di BackupSize.

Per calcolare la compressione, utilizzare CompressedBackupSize e BackupSize.

Durante un aggiornamento di msdb, il valore è impostato per corrispondere al valore della colonna BackupSize.

NULL

[!NOTA]

Se per i set di backup sono state definite password, tramite l'istruzione RESTORE HEADERONLY vengono visualizzate informazioni complete solo per il set di backup la cui password corrisponde al valore specificato nell'opzione PASSWORD del comando. Vengono inoltre visualizzate informazioni complete relative ai set di backup non protetti. Il valore della colonna BackupName per gli altri set di backup protetti con password dei supporti viene impostato su '***Password Protected***', mentre tutte le altre colonne risultano NULL.

Osservazioni

In un client è possibile utilizzare l'istruzione RESTORE HEADERONLY per il recupero delle informazioni di intestazione di tutti i backup di un dispositivo di backup specifico. Per ogni backup nel dispositivo di backup, il server invia le informazioni di intestazione sotto forma di riga.

Autorizzazioni

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

Per un'operazione di backup è possibile specificare facoltativamente una 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 MicrosoftSQL Server. Tuttavia, la password non impedisce la sovrascrittura dei supporti tramite l'opzione FORMAT dell'istruzione BACKUP.

Nota sulla protezioneNota sulla protezione

Il livello di protezione garantito da questa password è ridotto. Lo scopo è impedire un ripristino non corretto da parte di utenti autorizzati o non autorizzati mediante gli strumenti di SQL Server. Non viene impedita la lettura dei dati di backup eseguita con altri mezzi né la sostituzione della password. Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare 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 protetto 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.

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' 
WITH NOUNLOAD;
GO