Partilhar via


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

Aplica-se a:SQL ServerAzure SQL Managed Instance

Retorna um conjunto de resultados contendo todas as informações de cabeçalho de backup para todos os conjuntos de backup em um dispositivo de backup específico no SQL Server.

Observação

Para obter as descrições dos argumentos, consulte RESTORE Arguments (Transact-SQL).

Transact-SQL convenções de sintaxe

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 tem suporte a partir do SQL Server 2012 (11.x) SP 1 2. 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 contínua para todos os três dispositivos.

Argumentos

Para obter descrições dos RESTORE HEADERONLY argumentos, consulte RESTORE Arguments (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
BackupName 1 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 = Base de dados
2 = Log de transações
4 = Ficheiro
5 = Base de dados diferencial
6 = Arquivo diferencial
7 = Parcial
8 = Diferencial parcial
ExpirationDate datetime Data de expiração do conjunto de backup.
Compressed bit Se o conjunto de backup é compactado usando compactação baseada em software:

0 = Não
1 = Sim
Position Smallint Posição do conjunto de backup no volume (para uso com a opção FILE =).
DeviceType tinyint Número correspondente ao dispositivo utilizado para a operação de cópia de segurança.

Disco:

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

Fita:

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

Dispositivo virtual:

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

Endereço 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, consulte sys.backup_devices.
UserName Nvarchar(128) Nome de usuário que executou a operação de backup.
ServerName Nvarchar(128) Nome do servidor que escreveu o conjunto de backup.
DatabaseName Nvarchar(128) Nome do banco de dados do qual foi feito backup.
DatabaseVersion Int Versão do banco de dados a partir do qual o backup foi criado.
DatabaseCreationDate datetime Data e hora em que a base de dados foi criada.
BackupSize numérico(20,0) Tamanho do backup, em bytes.
FirstLSN numérico(25,0) Número de sequência de log do primeiro registro de log no conjunto de backup.
LastLSN numérico(25,0) Número de sequência de log do próximo registro de log após o conjunto de backup.
CheckpointLSN numérico(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 numérico(25,0) Número de seqüência de log do backup completo de banco de dados mais recente.

DatabaseBackupLSN é o "início do ponto de verificação" que é acionado quando o backup é iniciado. Esse LSN coincide com FirstLSN se o backup for feito quando o banco de dados estiver ocioso e nenhuma replicação estiver configurada.
BackupStartDate datetime Data 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 é válida apenas para backups de banco de dados. Fornecido para compatibilidade com versões anteriores.
CodePage Smallint Página de código do servidor ou conjunto de caracteres usado pelo servidor.
UnicodeLocaleId Int Opção de configuração de ID de localidade Unicode do servidor usada para classificação de 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 fornece controle adicional sobre a classificação de dados Unicode. Fornecido para compatibilidade com versões anteriores.
CompatibilityLevel tinyint Definição do nível de compatibilidade do banco de dados a partir do qual o backup foi criado.
SoftwareVendorId Int Número de identificação do fornecedor do software. Para o SQL Server, esse número é 4608 (ou hexadecimal 0x1200).
SoftwareVersionMajor Int Número da versão principal do servidor que criou o conjunto de backup.
SoftwareVersionMinor Int Número da versão secundária do servidor que criou o conjunto de backup.
SoftwareVersionBuild Int Número de compilação do servidor que criou o conjunto de backup.
MachineName Nvarchar(128) Nome do computador que executou a operação de backup.
Flags Int Significados de bit de bandeiras individuais:

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

- 2 = Backup de snapshot.

- 4 = O banco de dados era somente leitura quando o backup era feito.

- 8 = O banco de dados estava no modo de usuário único quando o backup foi feito.

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

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

- 64 = Backup de log de cauda.

- 128 = Backup de log de cauda com metadados incompletos.

- 256 = Backup de tail log com NORECOVERY.

Importante: Recomendamos que, em vez de Flags você use as colunas booleanas individuais (começando com HasBulkLoggedData e terminando com IsCopyOnly nesta tabela).
BindingID identificador único ID de vinculação para o banco de dados. Este valor corresponde a database_guid in sys.database_recovery_status. Quando um banco de dados é restaurado, um novo valor é atribuído. Ver também FamilyGUID.
RecoveryForkID identificador único ID para a bifurcação de recuperação final. Esta coluna corresponde à last_recovery_fork_guid tabela backupset .

Para backups de dados, RecoveryForkID é igual a FirstRecoveryForkID.
Collation Nvarchar(128) Agrupamento utilizado pela base de dados.
FamilyGUID identificador único ID do banco de dados original quando criado. Esse valor permanece o mesmo quando o banco de dados é restaurado.
HasBulkLoggedData bit 1 = Backup de log contendo operações bulk-logged.
IsSnapshot bit 1 = Backup de snapshot.
IsReadOnly bit 1 = O banco de dados era somente leitura quando o backup era feito.
IsSingleUser bit 1 = O banco de dados era de usuário único quando o backup foi feito.
HasBackupChecksums bit 1 = O backup contém somas de verificação de backup.
IsDamaged bit 1 = O banco de dados foi danificado durante o backup, mas a operação de backup foi solicitada a continuar apesar dos erros.
BeginsLogChain bit 1 = Este é o primeiro de uma cadeia contínua de backups de log. Uma cadeia de logs começa com o primeiro backup de log feito depois que o banco de dados é criado ou quando ele é alternado do modelo de recuperação simples para o modelo de recuperação completa ou Bulk-Logged.
HasIncompleteMetaData bit 1 = Um backup de tail-log com metadados incompletos.

Para obter informações sobre backups de tail-log com metadados de backup incompletos, consulte Tail-Log backups (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 os procedimentos gerais de backup e restauração do banco de dados. Para obter mais informações, consulte Copy-Only backups (SQL Server).
FirstRecoveryForkID identificador único ID para a bifurcação de recuperação inicial. Esta coluna corresponde à first_recovery_fork_guid tabela backupset .

Para backups de dados, FirstRecoveryForkID é igual a RecoveryForkID.
ForkPointLSN numérico(25,0) Se FirstRecoveryForkID não for igual a RecoveryForkID, esse valor é o número de sequência de log do ponto de bifurcação. Caso contrário, esse valor é NULL.
RecoveryModel Nvarchar(60) Modelo de recuperação para o banco de dados, um dos seguintes:

- COMPLETO
- BULK-LOGGED
- SIMPLES
DifferentialBaseLSN numérico(25,0) Para um backup diferencial de base única, o valor é igual ao FirstLSN da base diferencial. Alterações com LSNs maiores ou iguais estão DifferentialBaseLSN incluídas no diferencial.

Para um diferencial com várias bases, o valor é NULL e o LSN base deve ser determinado no nível do 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, consulte Backups Diferenciais (SQL Server).
DifferentialBaseGUID identificador único Para um backup diferencial de base única, o valor é o identificador exclusivo da base diferencial.

Para diferenciais multi-base, o valor é NULL, e a base diferencial deve ser determinada por arquivo.

Para tipos de backup não diferenciais, o valor é NULL.
BackupTypeDescription Nvarchar(60) Tipo de backup como string, um dos seguintes:

- BASE DE DADOS
- LOG DE TRANSAÇÕES
- ARQUIVO OU GRUPO DE ARQUIVOS
- DIFERENCIAL DE BANCO DE DADOS
- ARQUIVO DIFERENCIAL PARCIAL
- DIFERENCIAL PARCIAL
BackupSetGUID identificador único Número de identificação único 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 que BackupSize.

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

Durante uma msdb atualização, esse valor é definido para corresponder ao valor da BackupSize coluna.
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 = a base de dados está em confinamento parcial
KeyAlgorithm Nvarchar(32) Aplica-se a: SQL Server 2014 (12.x) 1 e versões posteriores.

O algoritmo de encriptação usado para encriptar a cópia de segurança. NO_Encryption indica que o backup não foi criptografado. Quando o valor correto não pode ser determinado, o valor deve ser NULL.
EncryptorThumbprint Varbinário(20) Aplica-se a: SQL Server 2014 (12.x) 1 e versões posteriores.

A impressão digital do encriptador que pode ser utilizada para localizar o certificado ou a chave assimétrica na base de dados. Quando o backup não foi criptografado, esse valor é NULL.
EncryptorType Nvarchar(32) Aplica-se a: SQL Server 2014 (12.x) 1 e versões posteriores.

O tipo de encriptador utilizado: Certificado ou Chave Assimétrica. Quando o backup não foi 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 do qual o backup foi feito.
CompressionAlgorithm Nvarchar(32) Aplica-se a: SQL Server 2022 (16.x) e versões posteriores.

Identifica o algoritmo de compactação 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 corresponde à opção especificada PASSWORD do comando. RESTORE HEADERONLY também mostra informações completas para conjuntos de backup desprotegidos. A BackupName coluna para os outros conjuntos de backup protegidos por senha na mídia é definida como 'Password Protected', e todas as outras colunas são NULL.

Observações

Um cliente pode usar RESTORE HEADERONLY para recuperar todas as informações de cabeçalho de backup para todos os backups em um dispositivo de backup específico. 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. Portanto, produzir esse conjunto de resultados ao usar unidades de fita de alta capacidade pode levar algum tempo. Para obter uma visão rápida da 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 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 outros conjuntos de backup.

Segurança

Uma operação de backup pode, opcionalmente, especificar senhas para um conjunto de mídia, um conjunto de backup ou ambos. Quando uma senha tiver sido definida em um conjunto de mídia ou conjunto de backup, você deverá especificar a senha ou 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. No entanto, uma senha não impede a substituição de 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 usando 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 novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. A prática recomendada para proteger backups é armazenar fitas de backup em um local seguro ou fazer backup em arquivos de disco protegidos por ACLs (listas de controle de acesso) adequadas. As ACLs devem ser definidas na raiz do diretório sob a qual os backups são criados.

Permissões

A obtenção de informações sobre um conjunto de backup ou dispositivo de backup requer a permissão CREATE DATABASE. Para obter mais informações, consulte GRANT Database Permissions (Transact-SQL).

Exemplos

O exemplo a seguir retorna as informações no cabeçalho do arquivo de C:\AdventureWorks-FullBackup.bakdisco .

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

Ver também