Dias atrás me deparei com uma questão na minha empresa. Estavamos com um backup de uma base de dados de mais de 100 GB.

Ao tentar restaurá-la ocorreram alguns erros incomuns.
Daí surgiram algumas dúvidas:
- O backup está corrompido?
- Qual a versão do SQL dessa base de dados. É compativel com a do meu servidor?
- Qual o tamanho exato dos arquivos de dados e de log?

Enfim, estes foram meus questionamentos para uma analise primária. Mas como respondê-los?

No SQL Server temos alguns argumentos que podem nos auxiliar em problemas como esse.

Seguem os tópicos:

RESTORE FILELISTONLY: Este argumento possibilita ver os dados do(s) arquivo(s) de log e de dados do backup. Informações como: Tamanho do arquivo, local onde estão os arquivos de dados e de log na máquina em que a base se encontra, dentre outros dados.

No editor de querys execute o comando:
RESTORE FILELISTONLY FROM DISK = 'C:\SQLSERVER\BLOG.BAK'

Será mostrada uma imagem parecida com a que segue abaixo:




RESTORE HEADERLONLY: Com este argumento é possível verificar dados sobre os backup sets armazenados. Com esta instrução pdemos verificar o nome do servidor, a data da criação da base, é possível averiguar a versão em que essa base foi "backupeada". Particularmente, é um dos comandos que mais uso no dia a dia.

No editor de querys execute o comando:
RESTORE HEADERLONLY FROM DISK = 'C:\SQLSERVER\BLOG.BAK'

Será mostrada uma imagem parecida com a que segue abaixo:




RESTORE LABELONLY: Este argumento nos fornece informações sobre as midias do backup especificado.

No editor de querys execute o comando:
RESTORE LABELONLY FROM DISK = 'C:\SQLSERVER\BLOG.BAK'

Será mostrada uma imagem parecida com a que segue abaixo:




RESTORE REWINDONLY: Este argumento somente será usado para verificação de backup de fitas.


RESTORE VERIFYONLY: Este argumento verifica a integridade do arquivo de backup. Ele checa se o arquivo poderá ser lido durante uma possivel restauração.

No editor de querys execute o comando:
RESTORE VERIFYONLY FROM DISK = 'C:\SQLSERVER\BLOG.BAK'

Ao rodar este comando é verificado a consistência do backup e caso esteja integro será mostrada a mensagem: The backup set on file 1 is valid.

Uma observação sobre este comando: Em bases muito grande, pode demorar bastante até o retorno da mensagem aparecer.

Até o próximo tópico.

Abraço.

Marco.