Página Inicial > Blog > Recuperando Banco de Dados a partir de uma falha do arquivo de log

Recuperando Banco de Dados a partir de uma falha do arquivo de log

Overview

Procedimento passo a passo para recuperaçào de um banco de dados que teve o arquivo de Log (ldf) perdido e possui somente os arquivos de dados (mdf, ndf)

Caso você tenha perdido seu arquivo de log e possui somente os arquivos de dados poderá efetuar um procedimento que irá restaurar seu banco de dados.

Muitas pessoas quando perdem seu arquivo de Log tenta recorrer a procedure sp_single_file_db que faz com que o arquivo de log seja criado novamente mas algumas vezes pode gerar erros na criação do arquivo de log devido a inconsistencias que existem nos arquivos MDF. Nesse pequeno artigo irei mostrar para vocês como restaurar o log em caso de uma perda catastrófica do arquivo de Log.

Solução

Vamos pegar um banco de Dados de Exemplo e simular a perda do arquivo de Log, vamos parar o serviço do SQL Server e deletar o arquivo de Log da base DB01.

Agora iremos parar o serviço do SQL Server e depois vamos na localização Default dos arquivos de Log para deletarmos o arquivo e simularmos uma perda do Log.

Pronto, agora o serviço já esta parado.

Deletamos o arquivo de log para simular uma falha.

Agora vamos iniciar o serviço e abrir o Enterprise Manager, a base de dados vai estar marcando Suspect.

Pronto, agora que conseguimos simular uma falha vamos fazer os procedimentos para restaurar o banco de dados criando um novo arquivo de Log.

Vamos abrir a ferramenta enterprise manager. Logo em seguida temos que fazer em primeiro lugar um detach no banco em que esta com o Status de Suspect.

Apos Clicar no Detach Database clique em Ok logo em seguida Ok Novamente.

Agora que fizemos um Detach na base de dados vamos abrir o Query Analyser e iremos utilizar a procedure de sistema sp_attach_single_file_db para criar um novo arquivo de Log e fazer com que a base de dados fique disponivel novamente.

Onde esta marcado com o número 1 você deve especificar o nome do Banco Dados na variável @dbname. O numero 2 você deve especificar o caminho e nome do arquivo na variável @physname.

Pronto, agora o arquivo de Log ja foi recriado e o Banco de Dados já esta pronto para uso novamente.

Vamos abrir o Enterprise Manager para conferir se o banco de dados esta realmente pronto para uso.

Agora vamos utilizar outro procedimento caso o procedimento anterior não funcione, as vezes pode acontecer de o log não ser criado com a procedure sp_attach_single_file_db e gerar erros na execução dessa procedure.

Vamos pegar um banco de Dados de Exemplo e simular a perda do arquivo de Log, vamos parar o serviço do SQL Server e deletar o arquivo de Log da base DB01.

Agora iremos parar o serviço do SQL Server e depois vamos na localização Default dos arquivos de Log para deletarmos o arquivo e simularmos uma perda do Log.

Pronto, agora o serviço ja esta parado.

Agora iremos mostrar o segundo procedimento para restauração dos Logs caso o primeiro não funcione, o primeiro procedimento pode não funcionar se os arquivos de dados estiverem inconssistentes.

Vamos abrir o Query Analyser para iniciar os procedimentos.

Esses comandos abaixo permite o Update na Base de Dados Master para que possamos mais a frente mudar o Status do Bando DB01.

A instrução abaixo atualiza na Tabela sysdatabases no master o Status do Banco de Suspect para Emergency Mode.

Agora vamos no Enterprise Manager verificar o Status do Banco de Dados DB01.

Agora que o Banco DB01 esta em Emergency Mode, vamos executar uma instrução DBCC para reconstruir o Log.

Agora vamos Abrir o Enterprise Manager para verificar o Banco de Dados DB01 que teve seu log Recuperado.

Você podera executar algums procedimentos para corrigir erros de dados corrompidos ou integridade de dados comprometida.

Conclusão

Explicamos como recuperar uma base de dados a partir de uma falha nos logs.

bruno Blog

  1. Nenhum comentário ainda.
  1. Nenhum trackback ainda.
Você deve estar autenticado para enviar um coment´rio.