[firebase-br] ERROR:internal gds software consistency check
Elton da Motta Barbosa
embarbosa em gmail.com
Qui Jan 14 11:00:57 -03 2010
E aí pessoal? blz?
olha só,
Estávamos com um cliente que o banco de dados corrompeu. Olhando no
log da nossa aplicação encontramos que no dia que o BD corrompeu foi
tentado fazer um backup (sem sucesso) que gerou o seguinte erro
"ERROR:internal gds software consistency check (wrong record length
(183), file: vio.cpp line: 1116)". O programa continuou a usar o BD
assim mesmo, e mais tarde (como era de se esperar) o BD corrompeu de
vez e alterando o erro . Não abria nada sempre com a mensagem de erro
"internal gds software consistency check(Bugcheck 210 (page in use
during flush))". O que eu gostaria de saber é se o que eu fiz a partir
daí não faltou nada... pois sabe como é... dificilmente a gente
encontra corrupção de dados, posso ter esquecido de fazer algo. O.o
Então lá vai a parte longa da história....
Enfim, eu peguei o BD corrompido e tentei fazer um gfix nele (FB
2.0). Só que retornava o seguinte erro: "internal gds software
consistency check(Bugcheck 210 (page in use during flush))" (assim
como quando tentava conectar. Pesquisando o assunto encontrei que o
gfix foi corrigido, na versão 2.1.3, pra resolver um bug relacionado
com esse erro. Daí o que eu fiz:
1) Desabilitei o FB2.0.5 na máquina;
2) Habilitei o FB2.1.3
3) gfix -v - full ==> mostrou erros mas rodou ok;
4) gfix -mend ==> ok
5) gfix -v - full ==> mostrou menos erros mas mostrou... ok;
6) gfix -mend ==> ok..
7) gfix -v - full ==> mostrou os *mesmos* erros ok;
8) gfix -mend ==> ok..
como o gfix não estava mais alterando as mensagens eu parti pra um
backup restore.
1) Desabilitei o FB2.1.3
2) Habilitei o FB2.0.5 na máquina;
3) gbak -b
4) gbak -c
5) gfix -v -full ==> nenhum erro.
Finalmente fiz uma comparação dos dados e metadados do BD com a do
último backup feito com sucesso para identificar possíveis perdas de
dados, (usando dbcomparer, IBExpert trial, etc...). Nenhuma alteração
de metadados encontrada, poucas alterações nos dados, que serão
analisados com o cliente para ver se realmente foram perdas ou
alterações feitas pelo próprio cliente.
Então é isso... Alguém aí acha que eu esqueci de algo, ou podia ter
feito algo diferente?
valeu,
Mais detalhes sobre a lista de discussão lista