Erro: The Log for Database ‘banco’ is not available

Primeiro é apresentado erros na aplicação durante transações, como por exemplo “run-time error -2147467259 (80004005)”, e aparentemente nada “suspeito” no servidor e nem no banco de dados.

A não ser no arquivo de transaction log, este sim aparenta estar corrompido. Um teste simples a ser feito é apenas requisitar a compactação do banco de dados, então a mensagem de erro é mais clara: “The log for database ‘seu_banco’ is not available”.

 

Bem, nenhuma ação mirabolante é necessária para resolver esta questão.

Se o recovery model do seu banco for full ou bulked log, nem preciso citar da importância de ter o mais recente backup do transaction log, independente de qualquer coisa. Se o banco de dados estiver configurado para recovery model simple, tudo bem, não há com o que se preocupar, uma vez que o backup do transaction log não se aplica para este caso.

Vamos para a solução.

Primeiro, se certifique que nenhum usuário está conectado no banco, se tiver, derrube. Segundo, faça um “Detach” e assim que o banco estiver desconectado, faça um “Attach”, do próprio banco de dados que foi desconectado (não sei se o termo desconectado é mais adequado didaticamente).

Com isso, o arquivo de transaction log que estava “corrompido” é restabelecido – ao anexar novamente o banco de dados o arquivos são corrigidos e todos os acessos se tornam ativos, sem nenhuma outra ação a tomar.

Não é uma situação “comum” do cotidiano, mas é algo que pode acontecer. Comigo aconteceu recentemente, então vamos compartilhar.

 

Simples, fácil e rápido.

Deixe uma resposta