domingo, 15 de agosto de 2010

Comandos RESTORE

Nesta seção vamos falar sobre o argumento RESTORE do SQL Server.

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.