Verificação interna de consistência do software gds - como recuperar bancos de dados Firebird/InterBase
Oleg Matveev, 20-Nov-2014
Quando uma instância do Firebird (ou InterBase) não consegue executar alguma operação sem garantia de que a consistência do banco de dados não será afetada, ela gera um erro (bugcheck) e interrompe a operação atual.
Esse texto de erro do Firebird começa com o prefixo obrigatório “internal gds software consistency check (can’t continue after bugcheck)” (para versões recentes do Firebird é “internal Firebird software consistency check”), e então o texto real do erro vem em seguida (como “decompression overran buffer (179)”).
Frequentemente, erros de “internal software consistency check” significam que o banco de dados Firebird está corrompido (no entanto, isso não é uma regra) - ou seja, a consistência da imagem interna do banco de dados está quebrada e deve ser corrigida para continuar o trabalho normal.
Se você vir esse erro no seu firebird.log ou como uma mensagem de erro no seu aplicativo, execute este comando para garantir que seu banco de dados está OK:
gfix.exe -v -full -user SYSDBA -pass masterkey caminho_para_seu_banco_de_dados
Se a validação do gfix retornar erros, o banco de dados está corrompido e requer recuperação.
Tente a recuperação com o gfix primeiro:
gfix.exe -mend -ig -user SYSDBA -pass masterkey caminho_para_seu_banco_de_dados
e depois faça o backup do banco de dados:
gbak.exe -b -g -user SYSDBA -pass masterkey caminho_para_seu_banco_de_dados caminho_para_backup
e restaure:
gbak.exe -c -v -user SYSDBA -pass masterkey caminho_para_backup caminho_para_novo_banco_de_dados
Se houver um problema durante o gfix/gbak, recupere o banco de dados corrompido com a ferramenta IBSurgeon FirstAID - a maioria dos erros de “internal Firebird consistency check” pode ser corrigida com ela; o FirstAID foi projetado especificamente para lidar com corrupções graves de banco de dados.
Além disso, se você tiver um banco de dados Firebird ou InterBase corrompido, entre em contato com nosso suporte: [email protected] e forneça o texto completo do erro (ou uma captura de tela).