Erros comuns do InterBase/Firebird causados por corrupções e suas chances de recuperação
Alexey Kovyazin, 31-03-2014
Abaixo está a descrição de erros e problemas comuns em bancos de dados InterBase/Firebird e suas chances de recuperação.
Para obter o preço exato e o tempo de recuperação, entre em contato conosco via e-mail.
Para preços aproximados, consulte a descrição do serviço “Firebird and InterBase Recovery” aqui. Não há garantia de 100% de que os erros descritos correspondam exatamente aos motivos descritos.
Verificação interna de consistência do gds (não foi possível encontrar a página tip (165))
Descrição do erro
O banco de dados não pode ser aberto usando o mecanismo Firebird ou InterBase, e a seguinte mensagem aparece: Verificação interna de consistência do gds (não foi possível encontrar a página tip (165))
Desligamento anormal ou corrupção física do arquivo do banco de dados. A página de inventário de transações foi perdida (TIP). A área de corrupção pode variar de algumas páginas até o banco de dados inteiro, portanto, é necessária uma investigação adicional.
Motivo (por que aconteceu?) Os motivos mais prováveis são desligamento anormal do servidor (usando o botão Reset), abordagem de backup incorreta ou ferramentas de backup incorretas. No Windows XP, essa corrupção pode ser causada pelo recurso “Restauração do Sistema” para arquivos “gdb”.
Processo de recuperação
Primeiro, o banco de dados deve ser verificado com o FirstAID Diagnostician. Se o FirstAID não alertar sobre corrupção grave, a corrupção pode ser corrigida com a versão completa do FirstAID.
No caso de corrupção grave, é necessária uma recuperação personalizada.
Chances de corrigir a corrupção
99%
O arquivo do banco de dados parece estar corrompido. Tipo de página incorreto. A página NNN é do tipo errado (esperado X, encontrado Y)
Descrição do erro
A mensagem de erro apareceu na saída padrão ou no firebird.log ou interbase.log:
O arquivo do banco de dados parece estar corrompido. Tipo de página incorreto. A página NNN é do tipo errado (esperado X, encontrado Y)
Devido à corrupção física ou a outro motivo, a sequência de páginas do arquivo do banco de dados foi alterada, ou valores incorretos apareceram em páginas de ponteiros ou páginas raiz de índices, etc.
Motivo
Os motivos mais prováveis são desligamento anormal do servidor (usando o botão Reset), procedimento de backup incorreto ou ferramentas/abordagem de backup incorretas.
Processo de recuperação
Primeiro, o banco de dados deve ser verificado com o FirstAID Diagnostician. Se o FirstAID não alertar sobre corrupção grave, a corrupção pode ser corrigida com a versão completa do FirstAID.
Caso contrário, é necessário um processo de recuperação personalizado.
Chances de corrigir a corrupção
95%.
Erro de E/S desconhecido do banco de dados para o arquivo “*.gdb”. Erro ao tentar ler do arquivo
Descrição do erro
O banco de dados não pode ser aberto, e a seguinte mensagem de erro aparece: Erro de E/S desconhecido do banco de dados para o arquivo “*.gdb”. Erro ao tentar ler do arquivo.
Motivo
Devido ao desligamento anormal do servidor, as páginas mais recentes do banco de dados não foram gravadas no disco.
Processo de recuperação
Processo de recuperação personalizado. O banco de dados é verificado pelo gfix e backup/restore.
Chances de recuperação
95%
Descompressão excedeu o buffer
Descrição do erro
A mensagem de erro aparece: Verificação interna de consistência do gds (descompressão excedeu o buffer (179))
Motivo
É uma corrupção grave do banco de dados: as tabelas do sistema podem estar danificadas. Às vezes, esse erro ocorre após a transferência do banco de dados para um novo servidor/computador. É necessária uma investigação.
Processo de recuperação
Análise da estrutura do banco de dados, geração de novas páginas, várias iterações necessárias.
Chances de recuperação
95%
Comprimento de registro incorreto
Descrição do erro
Uma mensagem de erro aparece: Verificação interna de consistência do gds. Comprimento de registro incorreto
Motivo
Na maioria das vezes, o erro “Comprimento de registro incorreto” é causado por RAM defeituosa. Recomendamos fortemente verificar a memória ( RAM) no servidor.
Processo de recuperação
Localizar e excluir registros incorretos usando as ferramentas de baixo nível da IBSurgeon. Várias iterações necessárias.
Chances de recuperação
97%
O arquivo do banco de dados parece estar corrompido. Checksum inválido
Descrição do erro
O arquivo do banco de dados parece estar corrompido. Checksum inválido. Erro de checksum na página XX do banco de dados.
Motivo
RAM defeituosa. Recomendamos fortemente verificar a memória ( RAM) no servidor.
Processo de recuperação
Processo de recuperação personalizado. Várias iterações necessárias.
Chances de recuperação
99%
Não foi possível encontrar a versão anterior do registro
Descrição do erro
O banco de dados parece estar funcionando, mas o gbak não consegue concluir o backup.
Texto do erro:
Verificação interna de consistência do gds (não foi possível encontrar a versão anterior do registro (291))
gds_$receive falhou. Saindo antes da conclusão devido a erros. verificação interna de consistência do gds (não é possível continuar após verificação de bug).
Motivo
O motivo mais provável é o gerenciamento incorreto de transações. Investigação do desempenho das transações.
Processo de recuperação
O banco de dados requer uma análise detalhada e, geralmente, a solução é encontrar e excluir objetos problemáticos do banco de dados e recriá-los. Às vezes, é necessário transferir os dados para um novo banco de dados.
Chances de recuperação
99%
Próxima transação mais antiga que a transação ativa mais antiga
Exibição do erro
Verificação interna de consistência do gds (próxima transação mais antiga que a transação ativa mais antiga (266))
Motivo
Este erro raro ocorre no InterBase 4.x-5.x, é um bug.
Processo de recuperação
Processo de recuperação personalizado
Chances de recuperação
99%
Cabeçalho corrompido
Descrição do erro
O banco de dados não pode ser aberto e o Firebird/InterBase não o considera um banco de dados válido.
Motivo
Corrupção física, falha no disco rígido.
Processo de recuperação
Processo de recuperação personalizado
Chances de recuperação
80%
O tamanho do arquivo do banco de dados excede o limite de implementação
Descrição do erro
Isso acontece em servidores InterBase 4.x-5.x e nas primeiras versões beta do Firebird (0.9.x). O banco de dados não pode ser aberto, o tamanho do arquivo do banco de dados é 4Gb.
Motivo
Limite de implementação do InterBase 4.x-5.x-6.0.x e do Firebird 0.9.x inicial.
Processo de recuperação
Processo de recuperação personalizado.
Chances de recuperação
Geralmente, podemos salvar todos os dados (ou seja, 100%), mas às vezes pode ser menos de 70%.
Erro de conversão de string
Descrição do erro
Texto do erro: Erro de conversão da string “XXX”.
Motivo
O diagnóstico preliminar é impossível, é necessária uma investigação no local.
Processo de recuperação
Processo de recuperação personalizado.
Chances de recuperação
99%
INET/inet_error: erro de leitura errno = 10054 ou 10038 ou 10093
Exibição do erro
Múltiplas entradas no firebird.log ou interbase.log com erros 10054, 10038, 10093, etc.
Motivo
Esses erros são causados por problemas de rede - verifique seus hubs, adaptadores de rede, etc. Não é um erro do Firebird/InterBase em si, mas pode afetar o Firebird/InterBase.
Processo de recuperação
Oferecemos a ferramenta FBScanner para resolver o problema dos “erros 10054” (entre outros problemas). Veja detalhes aqui.
Chances de recuperação
Não aplicável.
Descrição do índice parceiro não encontrada (175))
Descrição do erro
Texto das mensagens de erro: verificação interna de consistência do gds (descrição do índice parceiro não encontrada (175))
Índice ausente para uma chave primária ou estrangeira.
Motivo
Pode ser causado por corrupção física ou bugs internos do servidor.
Processo de recuperação
Processo de recuperação personalizado.
Chances de recuperação
100%
Outros erros
Descrição do erro
Abaixo está uma lista de erros raros do Firebird/InterBase, que podem ser causados por diferentes motivos. Não hesite em nos enviar a descrição do seu problema - podemos ajudá-lo.
Um UDF incorreto pode causar os seguintes erros no interbase.log:
SCH_validate – não entrou
SCH_validate – thread incorreta
A corrupção de índice pode causar a seguinte mensagem no interbase.log:
A página 34672 é um órfão
E este erro pode ocorrer durante inserções/atualizações/exclusões intensivas em uma única transação:
verificação interna de consistência do gds (Muitos savepoints (287))
É difícil reconhecer o motivo sem investigação do banco de dados no caso dos seguintes erros:
verificação interna de consistência do gds (erro durante o rollback de savepoint (290))
verificação interna de consistência do gds (tamanho do bloco de otimização excedido (286))
verificação interna de consistência do gds (solicitação SEND inválida (167))
Motivo provável
Diferentes motivos. Precisamos investigar o banco de dados corrompido.
Processo de recuperação
Processo de recuperação personalizado.
Chances de recuperação
Variadas