GARANTIR DESCONTO

Fórum Banco de Dados Firebird Corrompido #47528

18/10/2004

0

Estou com um problema com uma base de dados do firebird 1.5. Em uma determinada tabela quando tenta-se ler os seus registros tem-se o seguinte erro:

>Unsuccessful execution caused by a system error that precludes
>successful execution of subsequent statements.
>internal gds software consistency check (can´t continue after bugcheck).

Não é possivel nem mesmo realizar um backup com o gbak, pois quando vai ler os dados da determinada tabela acontece esse mesmo erro. Ao tentar passar o validation ocorre novamente o mesmo erro.

quando tenta-se fazer algum delete acontece o seguinte erro:

>Unsuccessful execution caused by a system error that precludes
>successful execution of subsequent statements.
>internal gds software consistency check (wrong record length (183)).

Já não sei mais o q fazer. Alguem saberia? :roll:


Neoramza

Neoramza

Responder

Post mais votado

18/10/2004

Fazendo ´gfix -v -f ´ dá o seguinte erro:

I/O error for file ´C:\SOARES.GDB´
-Error while trying to read from file
-Final do arquivo alcanþado.

-internal gds software consistency check (cannot find tip page (165))


Neoramza

Neoramza
Responder

Gostei + 1

Mais Posts

18/10/2004

Gandalf.nho

Já tentou usar o GFix?


Responder

Gostei + 0

18/10/2004

Neoramza

Sim, ja tentei e deu exatamente o mesmo erro.


Responder

Gostei + 0

18/10/2004

Afarias

vc tentou assim foi::

1) gfix -v -f

2) gfix -m -i -g -l

3) bakup/restore


?? e ainda não corrigiu ??


T+


Responder

Gostei + 0

18/10/2004

Afarias

ok, e depois continuando o processo (demais etapas)??



T+


Responder

Gostei + 0

18/10/2004

Neoramza

2) gfix -m -i -g -l :

>invalid swich -g

3) bakup

Quando chega na tabela com problema dá o seguinte erro e não continua o backup:

>Unsuccessful execution caused by a system error that precludes
>successful execution of subsequent statements.
>internal gds software consistency check (can´t continue after bugcheck).


Responder

Gostei + 0

18/10/2004

Afarias

vc tem q realizar o GFIX -M para poder fazer o bakup,

gfix -m -i


o comando q passei deu erro pq na realidade os comandos -l e -g devem ser passados no GBAK durante backup, desculpe o equívoco.


T+


Responder

Gostei + 0

18/10/2004

Neoramza

Ao tentar fazer o ´gfix -m -i´ ocorreu um outro erro:

I/O error for file ´C:\soares.GDB´
-Error while trying to read from file
-Final do arquivo alcanþado.

-internal gds software consistency check (cannot find tip page (165))


Responder

Gostei + 0

18/10/2004

Afarias

ok, consegue fazer o backup depois disso?


T+


Responder

Gostei + 0

18/10/2004

Neoramza

Não, no meio do backup da o sweguinte erro:

internal gds software consistency check (wrong record length (183)).


Responder

Gostei + 0

18/10/2004

Afarias

ops! ai é problema.

1) vc tem um backup para substituir a base atual??
2) qual o tamanho dessa base??
3) os dados são de produçào?? são informações importantes??
4) vc pode exportar os dados para um txt (para serem importados em uma base nova)??


T+


Responder

Gostei + 0

18/10/2004

Neoramza

1) Os backups que eu tenho são antigos
2) 90MB
3) São informações importantes sim.
4) Só não posso exportar os dados dessa tabela em especifico que ta com problema, pois ao tentar ler acontece o erro que eu havia dito.


Responder

Gostei + 0

18/10/2004

Afarias

essa tabela q dá o erro é importante?? vc pode apenas ter q se desfazer dela (ou parte dos registros dela)

ela possui algun índice?? vc pode se desfazer deles


T+


Responder

Gostei + 0

18/10/2004

Gandalf.nho

Essa tabela específica tem um campo BLOB por acaso? Me aconteceu esse erro uma vez e era por causa de um campo BLOB. Resolvi o problema lendo todos os campos da tabela (com execeção do BLOB) e exportando para outra tabela; depois criei um código para ir lendo o campo BLOB registro por registro e copiando, ao dar erro, um MsgBox retornava a chave primária do registro com problema, daí eu só pulava o registro e continuava. No fim, só perdi a informação do campo em 2 registros...


Responder

Gostei + 0

19/10/2004

Neoramza

Eu ja tinha excluido todos os indices, depencias e chaves que a tabela possuia.

Na tabela nao tem nenhum campo blob e todas as consultas sql dao erro mesmo restringindo-a pesquisando por apenas um dos campos e usando crausulas where. :(


Responder

Gostei + 0

20/10/2004

Sremulador

Amigo eu já enfrentei muito esses erros eu criei uma rotina em um bat para corrigir estes erros até que tem dado certo...

veja este artigo

Diagnosticando e Reparando Corrupcao em Bases de Dados
Alguns tipos de corrupção em bases de dados podem ser reparados com utilitários do Interbase como o gfix e o gbak. Contudo em cados raros existe a possiblidade de um ficheiro de bases de dados estar corrompido para além da capacidade dos utilitários para reparar o ficheiro.

A causa mais frequente de corrupção é a perda repentina de energia no servidor de bases de dados, mesmo numa máquina Windows com uma bases de dados Local Interbase. Desligando a corrente quando uma aplicação está em processo de escrita num ficheiro (como é o caso de uma base de dados) pode resultar na escrita errada ou incompleta de dados no ficheiro.

O utilizador da bases de dados deve utilizar todos os meios ao seu alcance para prevenir tais perdas de energia.

Os vários tipos de corrupção em bases de dados que podem ser corrigidos podem na maior parte dos casos ser reparados com o utilitário gfix. Trabalhe sempre numa cópia da base de dados e nunca na base de dados em produção.

Utilize o sistema operativo para realizar uma cópia da base de dados. É necessário o acesso exclusivo à base de dados para realizar este comando.

Unix

$ cp atlas.gdb atlas_test.gdb

Windows

copy atlas.gdb atlas_test.gdb

Verificar a corrupção da base de dados. É necessário o acesso exclusivo à base de dados para realizar este comando, mas como estamos a trabalhar com uma cópia da bases de dados isto não constitui um problema .

gfix –v -f atlas_test.gdb

Corrigir a corrupção na base de dados. Só efectuar este comando se o comando anterior reportar corrupção da base de dados.

gfix –m -i atlas_test.gdb

Verificar se a corrupção na base de dados foi corrigida.

gfix –v -f atlas_test.gdb

Se o utilitário gfix ainda reportar corrupção na base de dados, vai ser necessário tomar outras medidas para reparar a base de dados. O procedimento de backup/restore irá criar uma nova base de dados, sem versões antigas de registos, sem fragmentação de páginas, índices e histórico de transações recém criados.

gbak -g –b –z –v atlas_test.gdb atlas.gbk

Se existir corrupção em registos de transações não terminadas, deve-se incluir a opção –l ao comando anterior para ignorar transações não finalizadas.

Criar uma nova base de dados do backup. Isto irá criar uma nova base de dados, sem versões antigas de registos, sem fragmentação de páginas, índices e histórico de transações recém criados.

gbak -g –b –z –v atlas.gbk atlas_new.gdb

Verificar se existe corrupção na base de dados.

gfix –v -f atlas_new.gdb


Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar