Instruções RESTORE – HEADERONLY (Transact-SQL)

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

Retorna um conjunto de resultados que contém todas as informações do cabeçalho de backup de todos os conjuntos de backup em um determinado dispositivo de backup no SQL Server.

Observação

Para obter as descrições dos argumentos, confira Argumentos de RESTORE (Transact-SQL).

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Observação

URL é o formato usado para especificar o local e o nome do arquivo para o Armazenamento de Blobs do Azure e o suporte a ele começa no SQL Server 2012 (11.x) SP1 CU2. Embora o Armazenamento do Azure seja um serviço, a implementação é semelhante ao disco e à fita para permitir uma experiência de restauração consistente e direta para todos os três dispositivos.

Argumentos

Para obter descrições dos argumentos RESTORE HEADERONLY, confira Argumentos de RESTORE (Transact-SQL).

Conjuntos de resultados

Para cada backup em um determinado dispositivo, o servidor envia uma linha de informações de cabeçalho com as seguintes colunas:

Nome da coluna Tipo de dados Descrição dos conjuntos de backup do SQL Server
BackupName1 nvarchar(128) Nome do conjunto de backup.
BackupDescription nvarchar(255) Descrição do conjunto de backup. Pode ser NULL.
BackupType smallint Tipo de backup:

1 = Banco de dados
2 = Log de transações
4 = Arquivo
5 = Banco de dados diferencial
6 = Arquivo diferencial
7 = Parcial
8 = Parcial diferencial
ExpirationDate datetime Data de vencimento do conjunto de backup.
Compressed bit Se o conjunto de backup é compactado com compactação de software:

0 = Não
1 = Sim
Position smallint Posição do conjunto de backup no volume (para uso com o FILE = opção).
DeviceType tinyint Número que corresponde ao dispositivo usado na operação de backup.

Disco:

- 2 = Lógico
- 102 = Físico

Fita:

- 5 = Lógico
- 105 = Físico

Dispositivo virtual:

- 7 = Lógico
- 107 = Físico

URL:

- 9 = Lógico
- 109 = Físico

Os nomes e números de dispositivos lógicos estão em sys.backup_devices. Para obter mais informações, confira sys.backup_devices.
UserName nvarchar(128) Nome do usuário que realizou a operação de backup.
ServerName nvarchar(128) Nome do servidor que gravou o conjunto de backup.
DatabaseName nvarchar(128) Nome do banco de dados cujo backup foi feito.
DatabaseVersion int Versão do banco de dados a partir do qual o backup foi criado.
DatabaseCreationDate datetime Date e hora em que o banco de dados foi criado.
BackupSize numeric(20,0) Tamanho do backup em bytes.
FirstLSN numeric(25,0) Número de sequência do primeiro registro de log no conjunto de backup.
LastLSN numeric(25,0) Número de sequência de log do próximo registro de log após o conjunto de backup.
CheckpointLSN numeric(25,0) Número de sequência de log do ponto de verificação mais recente no momento em que o backup foi criado.
DatabaseBackupLSN numeric(25,0) Número de sequência de log do backup de banco de dados completo mais recente.

DatabaseBackupLSN é o "início do ponto de verificação" disparado quando o backup é iniciado. Esse LSN coincidirá com o FirstLSN se o backup for feito quando o banco de dados estiver ocioso e nenhuma replicação for configurada.
BackupStartDate datetime Date e hora em que a operação de backup começou.
BackupFinishDate datetime Data e hora em que a operação de backup foi concluída.
SortOrder smallint Ordem de classificação do servidor. Esta coluna só é válida para backups de banco de dados. Fornecido para compatibilidade com versões anteriores.
CodePage smallint Página de código de servidor ou conjunto de caracteres usado pelo servidor.
UnicodeLocaleId int Opção de configuração de ID de localidade Unicode do servidor usada para classificar dados de caracteres Unicode. Fornecido para compatibilidade com versões anteriores.
UnicodeComparisonStyle int Opção de configuração de estilo de comparação Unicode do servidor que oferece controle adicional sobre a classificação dos dados Unicode. Fornecido para compatibilidade com versões anteriores.
CompatibilityLevel tinyint Configuração do nível de compatibilidade do banco de dados a partir do qual o backup foi criado.
SoftwareVendorId int Número de conta de identificação do fornecedor de software. Para o SQL Server, esse número é 4608 (ou o 0x1200 hexadecimal).
SoftwareVersionMajor int Número de versão principal do servidor que criou o conjunto de backup.
SoftwareVersionMinor int Número de versão secundário do servidor que criou o conjunto de backup.
SoftwareVersionBuild int Número de versão do servidor que criou o conjunto de backup.
MachineName nvarchar(128) Nome do computador que realizou a operação de backup.
Flags int Significados dos bits dos sinalizadores individuais:

- 1 = O backup de log contém operações bulk-logged.

- 2 = Backup de instantâneo.

- 4 = O banco de dados era somente leitura quando foi copiado em backup.

- 8 = O banco de dados estava em modo de usuário único quando foi copiado em backup.

- 16 = Backup contém somas de verificação de backup.

- 32 = O banco de dados foi danificado durante seu backup, mas foi solicitada a continuação da operação, apesar dos erros.

- 64 = Backup da parte final do log.

- 128 = Backup da parte final do log com metadados incompletos.

- 256 = Backup da parte final do log com NORECOVERY.

Importante: Recomendamos que, em vez de Flags, você use colunas boolianas individuais (começando com HasBulkLoggedData e terminando com IsCopyOnly nesta tabela).
BindingID uniqueidentifier ID de associação do banco de dados. Esse valor corresponde a database_guid em sys.database_recovery_status. Quando o banco de dados é restaurado, um valor novo é atribuído. Consulte também FamilyGUID.
RecoveryForkID uniqueidentifier ID do ponto de bifurcação da recuperação final. Essa coluna corresponde a last_recovery_fork_guid na tabela backupset.

Para backups de dados, RecoveryForkID é igual a FirstRecoveryForkID.
Collation nvarchar(128) Ordenação usada pelo banco de dados.
FamilyGUID uniqueidentifier ID do banco de dados original quando criado. Esse valor fica igual quando o banco de dados é restaurado.
HasBulkLoggedData bit 1 = Backup de log que contém operações bulk-logged.
IsSnapshot bit 1 = Backup de instantâneo.
IsReadOnly bit 1 = O banco de dados era somente leitura quando o seu backup foi feito.
IsSingleUser bit 1 = O banco de dados era de usuário único quando o seu backup foi feito.
HasBackupChecksums bit 1 = Backup contém somas de verificação de backup.
IsDamaged bit 1 = O banco de dados foi danificado durante o seu backup, mas foi solicitada a continuação da operação, apesar dos erros.
BeginsLogChain bit 1 = Este é o primeiro em uma cadeia contínua de backups de log. Uma cadeia de logs é iniciada com o primeiro backup de log usado depois que o banco de dados é criado ou quando é alternado do modelo de recuperação Simples para o Completo ou Bulk-Logged.
HasIncompleteMetaData bit 1 = Um backup da parte final do log com metadados incompletos.

Para obter informações sobre backups da parte final do log com metadados de backup incompletos, confira Backups da parte final do log (SQL Server).
IsForceOffline bit 1 = Backup feito com NORECOVERY; o banco de dados foi colocado offline pelo backup.
IsCopyOnly bit 1 = Um backup somente cópia.

Um backup somente cópia não afeta o backup global e restaura procedimentos do banco de dados. Para obter mais informações, confira Backups somente cópia (SQL Server).
FirstRecoveryForkID uniqueidentifier ID da bifurcação da recuperação inicial. Essa coluna corresponde a first_recovery_fork_guid na tabela backupset.

Para backups de dados, FirstRecoveryForkID é igual a RecoveryForkID.
ForkPointLSN numeric(25,0) Se FirstRecoveryForkID não for igual a RecoveryForkID, este valor será o número de sequência de log do ponto de bifurcação. Caso contrário, esse valor será NULL.
RecoveryModel nvarchar(60) Modelo de recuperação do banco de dados, sendo:

- COMPLETA
- BULK-LOGGED
- SIMPLES
DifferentialBaseLSN numeric(25,0) Para um backup diferencial de base única, o valor é igual a FirstLSN da base diferencial. Mudanças com LSNs maiores ou iguais a DifferentialBaseLSN são incluídas no diferencial.

Para um diferencial com várias bases, o valor é NULL e o LSN base deve ser determinado no nível de arquivo. Para obter mais informações, consulte RESTORE FILELISTONLY.

Para tipos de backup não diferenciais, o valor é sempre NULL.

Para obter mais informações, veja Backups diferenciais (SQL Server).
DifferentialBaseGUID uniqueidentifier Para um backup diferencial de base única, o valor é o identificador exclusivo da base diferencial.

Para diferenciais com várias bases, o valor é NULL, e a base do diferencial deve ser determinada por arquivo.

Para tipos de backup não diferenciais, o valor é NULL.
BackupTypeDescription nvarchar(60) Tipo de backup como cadeia de caracteres, sendo:

- BANCO DE DADOS
- LOG DE TRANSAÇÕES
- ARQUIVO OU GRUPO DE ARQUIVOS
- DIFERENCIAIS DE BANCOS DE DADOS
- ARQUIVO PARCIAL DIFERENCIAL
- DIFERENCIAL PARCIAL
BackupSetGUID uniqueidentifier Número de identificação exclusivo do conjunto de backup pelo qual ele é identificado na mídia. Pode ser NULL.
CompressedBackupSize bigint Contagem de bytes do conjunto de backup. Para backups não compactados, esse valor é o mesmo de BackupSize.

Para calcular a taxa de compressão, use CompressedBackupSize e BackupSize.

Durante uma atualização do msdb, esse valor é definido para que corresponda ao valor da coluna BackupSize.
containment tinyint Aplica-se a: SQL Server 2012 (11.x) e versões posteriores.

Indica o status de contenção do banco de dados.

0 = a contenção do banco de dados está desativada
1 = o banco de dados está em contenção parcial
KeyAlgorithm nvarchar(32) Aplica-se a: SQL Server 2014 (12.x) CU 1 e versões posteriores.

O algoritmo de criptografia usado para criptografar o backup. NO_Encryption indica que o backup não foi criptografado. Quando não for possível determinar o valor correto, o valor deve ser NULL.
EncryptorThumbprint varbinary(20) Aplica-se a: SQL Server 2014 (12.x) CU 1 e versões posteriores.

A impressão digital do criptografador que pode ser usada para localizar o certificado ou chave assimétrica no banco de dados. Quando o backup não tiver sido criptografado, esse valor é NULL.
EncryptorType nvarchar(32) Aplica-se a: SQL Server 2014 (12.x) CU 1 e versões posteriores.

O tipo de criptografador usado: Certificado ou Chave Assimétrica. Quando o backup não tiver sido criptografado, esse valor é NULL.
LastValidRestoreTime datetime Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.

A última hora de restauração válida.
TimeZone nvarchar(32) Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.

O fuso horário do servidor por meio do qual o backup foi feito.
CompressionAlgorithm nvarchar(32) Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.

Identifica o algoritmo usado para compactar o arquivo de backup. O padrão é MS_XPRESS. Para obter mais informações, consulte BACKUP.

1 Se as senhas forem definidas para os conjuntos de backup, RESTORE HEADERONLY mostrará informações completas apenas para o conjunto de backup cuja senha corresponda à opção PASSWORD especificada do comando. RESTORE HEADERONLY também mostra informações completas de conjuntos de backup desprotegidos. A coluna BackupName dos outros conjuntos de backup protegidos por senha na mídia é definida como 'Password Protected', e todas as outras colunas são NULL.

Comentários

Um cliente pode usar RESTORE HEADERONLY para recuperar todas as informações do cabeçalho de todos os backups em um dispositivo de backup particular. Para cada backup no dispositivo de backup, o servidor envia as informações de cabeçalho como uma linha.

RESTORE HEADERONLY examina todos os conjuntos de backup na mídia. Por esse motivo, a produção desse conjunto de resultados quando se utilizam unidades de fita de alta capacidade pode levar algum tempo. Para observar rapidamente a mídia sem obter informações sobre cada conjunto de backup, use RESTORE LABELONLY ou especifique FILE = <backup_set_file_number>.

Devido à natureza do Microsoft Tape Format, é possível que os conjuntos de backup de outros programas de software ocupem o espaço na mesma mídia que os conjuntos de backup do SQL Server. O conjunto de resultados retornado por RESTORE HEADERONLY inclui uma linha para cada um desses conjuntos de backup.

Segurança

Uma operação de backup pode, opcionalmente, especificar senhas para um conjunto de mídias, um conjunto de backup ou ambos. Quando uma senha tiver sido definida em um conjunto de backup ou de mídias, será preciso especificar a senha ou as senhas corretas na instrução RESTORE. Essas senhas impedem operações de restauração não autorizadas e acréscimos não autorizados de conjuntos de backup à mídia usando ferramentas do SQL Server. Porém, uma senha não impede a substituição da mídia usando a opção FORMAT da instrução BACKUP.

Importante

A proteção fornecida por esta senha é fraca. Destina-se a evitar uma restauração incorreta com o uso de ferramentas do SQL Server por usuários autorizados ou não autorizados. Não impede a leitura dos dados de backup por outros meios ou a substituição da senha. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em um novo trabalho de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. A melhor prática para proteger backups é armazenar fitas de backup em um local seguro ou fazer backup de arquivos de disco protegidos por ACLs (listas de controle de acesso) adequadas. As ACLs devem ser definidas no diretório raiz em que os backups são criados.

Permissões

Obter informações sobre um conjunto de backups ou dispositivo de backup, é necessário ter a permissão CREATE DATABASE. Para obter mais informações, confira Permissões de Banco de Dados GRANT (Transact-SQL).

Exemplos

O exemplo seguinte retorna as informações no cabeçalho do arquivo em disco C:\AdventureWorks-FullBackup.bak.

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

Confira também