sexta-feira, 26 de outubro de 2012
Internal gds consistency check como resolver ??
Inicialmente faça uma cópia da base
cp BASE.GDB BASE2.GDB
Sete as permissões para o arquivo do banco.
chown BASE2.GDB firebird:firebird
chmod 770 BASE2.GDB
Valide o banco de dados
Opção -v para localizar e liberar páginas alocadas e não atribuídas a nenhuma estrutura e também estruturas corrompidas.
/opt/firebird/bin/./gfix -v -full base2.GDB -user SYSDBA -pass senha
Se aparecer algo parecido como oque está abaixo, a base está corrompida
Summary of validation errors
Number of record level errors : 1
Number of database page errors : 49
Se corrompido
Faça uma validação com o parâmetro -mend que vai marcar registros corrompidos como idisponíveis
/opt/firebird/bin/./gfix -mend -full BASE2.GDB -user SYSDBA -pass senha
Após terminar execute novamente para verificar erros com o comando
/opt/firebird/bin/./gfix -v -full base2.GDB -user SYSDBA -pass senha
Se ainda continuar com erros, faça um backup, com a opção -i para ignorar erros de checksum
/opt/firebird/bin/./gbak -b -i base2.GDB base3.GDB -user SYSDBA -pass senha
Se não estiver corrompido
Faça apenas um backup
/opt/firebird/bin/./gbak -b base2.GDB base3.GDB -user SYSDBA -pass senha
Se acaso estiver ou não comrrompido, restaure
Utilize a opção
-r para informar ao Firebird que é um restore
/opt/firebird/bin/./gbak -r base3.GDB base4.GDB -user SYSDBA -pass senha
Se acaso der algum erro como este
gbak: ERROR:validation error for column CD_EMPRESA, value "*** null ***"
gbak: ERROR: warning -- record could not be restored
gbak:Exiting before completion due to errors
Utilize
-no_validity para não validar campos not null que é o caso acima.
-i para ignorar checksums,
-REP para dar um replace na base4.GDB caso ela exista.
/opt/firebird/bin/./gbak -r -i -rep -no_validity base3.GDB base4.GDB -user SYSDBA -pass senha
Obrigado e até a próxima.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário