Banco de dados corrompido: como diagnosticar e recuperar

banco de dados corrompido com erro de checksum de página

Um banco de dados corrompido apresenta erros de leitura, tabelas inacessíveis ou falha completa na inicialização do serviço. Além disso, a corrupção raramente atinge o banco todo de uma vez, o que abre uma janela real de recuperação. Neste artigo, você aprende a identificar o problema e agir corretamente.

Sinais de que o banco está corrompido

O banco avisa antes de parar completamente. Entre os sinais mais comuns, destacam-se:

  • Erros de checksum de página ou de bloco
  • Consultas que travam ou retornam resultados inconsistentes
  • Serviço do banco que não sobe ou cai de forma intermitente
  • Mensagens de erro de I/O nos logs do sistema
  • Backup que falha sem motivo aparente

Portanto, monitorar esses sinais permite agir antes da perda total. Além disso, um banco com erros esporádicos costuma piorar rapidamente se continuar em uso.

As causas mais frequentes de corrupção

A corrupção tem origem física ou lógica. Em primeiro lugar, setores defeituosos no disco criam falhas de leitura que o banco não consegue corrigir. Além disso, falhas de energia durante operações de gravação deixam páginas incompletas. Por outro lado, bugs de firmware de controladora podem corromper dados mesmo em discos saudáveis.

Da mesma forma, erros humanos, como operações DDL erradas, também corrompem a estrutura do banco. Contudo, independentemente da causa, o princípio de recuperação começa pelo mesmo lugar: a imagem forense do arquivo de dados.

Por que você não deve usar ferramentas de reparo automático

As ferramentas nativas de reparo (como DBCC CHECKDB REPAIR, mysqlcheck, VACUUM FULL) costumam resolver corrupções leves. No entanto, em casos graves, elas apagam dados em vez de recuperá-los, porque eliminam páginas inconsistentes para restaurar a estrutura. Portanto, usá-las sem análise prévia é um risco alto.

Dessa forma, o especialista sempre preserva e analisa primeiro, e só então decide sobre o reparo.

Perguntas frequentes sobre banco de dados corrompido

Banco que não sobe ainda tem dados recuperáveis? Sim. Em quase todos os casos, os dados existem nos arquivos. A dificuldade está em acessá-los sem o motor, o que exige leitura forense direta.

Posso fazer backup de um banco corrompido? Sim. Faça uma cópia dos arquivos de dados com o serviço parado. Esse backup é uma das melhores fontes para a recuperação forense.

Tempo de inatividade do banco influencia a recuperação? Não diretamente. O que influencia é o que acontece no disco durante esse tempo. Portanto, pare o banco e preserva o ambiente.

Conclusão

Um banco de dados corrompido quase sempre guarda dados recuperáveis. Em resumo, pare o serviço, preserve os arquivos e evite ferramentas de reparo automático. Precisa recuperar um banco corrompido? A Crowdertech atua em recuperação forense de qualquer motor de banco. Veja também recuperação de banco SQL Server.

Fontes: NIST SP 800-86 · CERT.br.