Parâmetros de Restore

Após abordar os parâmetros para Backup de Bancos de Dados, agora vamos aos parâmetros para Restore de Banco de Dados.

INSTRUÇÃO BÁSICA

RESTORE DATABASE LanzariniDBA
FROM DISK = ‘C:\SQLServer\Backup\LanzariniDBA.BAK’

A primeira linha poderá mudar o nome do Banco de Dados e o tipo de Restore (Database ou Log).

A segunda linha deverá informar o local onde está armazenado o backup.

Ou, se você efetua backups em fita, poderá utilizar “FROM TAPE = “.

1

 

Sem nenhuma instrução extra informada, os arquivos desse Banco de Dados recém restaurado serão armazenados no caminho igual ao do Banco de Dados de origem, e se esse caminho não for encontrado, ocorrerá mensagem de erro.

Para alterar o caminho padrão de armazenamento dos arquivos de Dados e Log, deve-se especificar o caminho com a instrução MOVE, que veremos mais abaixo.

 

MOVE

Especificando esse parâmetro, pode-se armazenar os arquivos de Dados e Log onde desejar.

Sempre deve ser especificados os nomes lógicos dos arquivos do Banco de Dados quando se usa o MOVE.

56

 

Para conferir o nome lógico dos arquivos, pode-se executar o seguinte comando no Banco de Dados de origem do backup:

SELECT Name, Physical_Name
FROM LanzariniDBA.sys.Database_files

7

 

Caso não tenha mais acesso ao Banco de Dados de origem, pode-se verificar pelo arquivo de Backup mesmo, com a instrução FILELISTONLY:

RESTORE FILELISTONLY
FROM DISK = ‘C:\SQLServer\Backup\LanzariniDBA.BAK’

13

 

VERIFYONLY

Opção útil para verificar a integridade dos arquivos de backup.

Esse comando não efetua o restore, apenas verifica integridade.

RESTORE VERIFYONLY
FROM DISK = ‘C:\SQLServer\Backup\LanzariniDBA.BAK’

8

 

RECOVERY, NORECOVERY e STANDBY

Esse parâmetro informa qual será o status do Banco de Dados após o Restore.

RECOVERY: Coloca o Banco de Dados em status normal, online.

NORECOVERY: Deixa o Banco de Dados com status RESTORING. Essa opção é útil quando, após o Restore, queremos efetuar alguma ação administrativa, e não deixar o Banco de Dados disponível para outros acessarem.

STANDBY: Coloca o Banco de Dados com status READ ONLY após conclusão do Restore. O Banco de Dados fica indisponível para instruções de alteração de dados e estrutura, porém pode-se consultar os dados contidos nele.

Abaixo os exemplos das duas instruções. Note que na segunda imagem o Banco de Dados ficou com status RESTORING, permanecendo indisponível para acesso.

Na terceira imagem o Banco de Dados fica disponível apenas para consultas, sem possibilidade de alterações de dados ou estrutura, até que seja especificada a instrução “RESTORE WITH RECOVERY”.

91015

 

REPLACE

Opção utilizada para sobrescrever as configurações do Banco de Dados atual, caso haja um com mesmo nome do que o que está sendo restaurado. Com essa instrução, o SQL Server não efetua as verificações que por padrão sempre faz.

No exemplo abaixo, o SQL Server não deixou o Restore ocorrer pois verificou que a origem do backup não corresponde a um backup do Banco de Dados “LanzariniDBA”.

Note que na segunda imagem, com uso do REPLACE, o Banco de Dados foi restaurado e sobrescrito.

1112

 

STATS

Opção utilizada para imprimir o status do Restore. Utiliza-se o “=20” como parâmetro para mostrar porcentagem a cada 20% de progresso. Pode-se personalizar esse valor.

14

 

PASSWORD

Conforme visto no Post sobre “Parâmetros de Backup”, pode-se usar comando PASSWORD para proteger o backup com senha, sendo possível restaurar apenas com mesmo comando no momento do RESTORE. Importante: Essa opção foi descontinuada na versão 2012 do SQL Server.

BACKUP DATABASE LanzariniDBA
TO DISK = ‘C:\SQLServer\Backup\LanzariniDBA.BAK
WITH PASSWORD = ‘L@nz@r1r1’

Para efetuar o Restore do Banco de Dados a partir do backup gerado com a instrução acima, deve-se especificar a mesma instrução da 3ª linha do script: “WITH PASSWORD = ‘L@nz@r1r1’“.

 

SNAPSHOT

Para efetuar Snapshot de um Banco de Dados, pode-se utilizar o comando abaixo:

CREATE DATABASE LanzariniDBA_SnapShot
ON (
NAME = LanzariniDBA,
FILENAME = ‘C:\SQLServer\Data\LanzariniDBA_SnapShot.ss’
) AS SNAPSHOT OF LanzariniDBA

 

E para reverter o Banco de Dados para a posição do Snapshot, usa-se o comando abaixo:

RESTORE DATABASE LanzariniDBA FROM
DATABASE_SNAPSHOT = ‘LanzariniDBA_SnapShot’

 

STOP_ON_ERROR e CONTINUE_AFTER_ERROR

STOP_ON_ERROR: Especifica que a operação de restauração para com o primeiro erro encontrado. Esse é o comportamento padrão para RESTORE, com exceção de VERIFYONLY que tem CONTINUE_AFTER_ERROR como o padrão.

CONTINUE_AFTER_ERROR: Determina que a operação de restauração deve continuar depois que um erro for encontrado.
Se um backup contiver páginas danificadas, é melhor repetir a operação de restauração usando um backup alternativo que não contenha os erros, por exemplo, um backup feito antes das páginas serem danificadas. No entanto, como um último recurso, é possível restaurar um backup danificado com o uso da opção CONTINUE_AFTER_ERROR da instrução RESTORE e tentar salvar os dados.

 

STOPAT

Especifica um ponto no tempo para restore do seu Backup. Funcionará somente se o Backup for de um Banco de Dados com “Recovery Mode = FULL” (ou Bulk Logged).

No exemplo abaixo, o Backup foi gerado em ‘2016-01-10 17:30’, e restaurei o Banco de Dados para dois minutos antes da geração do Backup.

16

 

ACOMPANHAMENTO DO RESTORE

Para acompanhar o andamento e previsão de conclusão do Backup ou Restore, pode executar a query abaixo:

SELECT session_id AS SPID, command, a.text AS Query,
start_time,percent_complete,
DATEADD(second,estimated_completion_time/1000,
GETDATE()) AS estimated_completion_time
FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command IN (‘BACKUP DATABASE’,‘RESTORE DATABASE’)

17

 

Sobre Restore, por enquanto é isso pessoal!

Agradeço muito a leitura até aqui e gostaria que deixassem suas críticas e sugestões de conteúdo e novos Posts nos comentários. Serão atendidos!

Para o próximo assunto teremos CADEIAS DE BACKUPs e RESTOREs, onde abordarei algo que certamente vocês sentiram muita falta: Backup/Restore de Log e DIFF.

Tentarei abordar também a questão de FILE e FILEGROUP.

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s