[firebase-br] Ajuda com base corrompida

Gladiston Santana gladiston em vidy.com.br
Seg Set 2 09:25:35 -03 2013


Então, há coisas que devem chamar a sua atenção.
Um ícone circular com um ponto de exclamação dentro indica que o ibexpert
vai mexer na estrutura, porém não usará 'alter table' para isso, mas agirá
diretamente nas tabelas de sistemas e isso é muito perigoso porque a
alteração pode deixar o meta-dados diferente dos dados físicos gravados,
por exemplo, se voce transformou um campo 'null' em 'not null' e não
atentou-se a acertar os nulos antes, na hora da restauração a tentativa de
gravar um null num campo que não não permite mais nulo gerará um erro como
o que voce obteve. Ou seja, voce tem uma base de dados que não está
corrompida, mas o meta-dados não é compativel com os dados existentes.

Aparentemente é isso que tá acontecendo. As vezes não é null/not null, mas
constraint/domain que por exemplo limita um valor a determinados limites e
voce tem registros pré-existentes que não estão nessa faixa.

No meu exemplo voce teria de identificar o campo e fazer um 'update tabela
set campo="" where campo is null', daí em diante seu restore funcionaria.

Um abraço,

Em 30 de agosto de 2013 13:23, Fabio Schunig <fabio.schunig em gmail.com>escreveu:

> Boa tarde
>
> Sim, fazemos várias modificações estruturais ao atualizar o sistema.
> Mas em outros clientes não dão problema.
> Tem alguma ideia para recuperar a base?
>
> Abraços
> Fabio Schunig
>
> Em 30/08/2013 13:10, Gladiston Santana escreveu:
>
>> Voce recentemente fez alguma mudança estrutural numa tabela usando o
>> IbExpert, do tipo diminuir tamanho, adicionar/modificar campo not null,
>> etc... ?
>>
>>
>> Em 30 de agosto de 2013 12:41, Fabio Schunig <fabio.schunig em gmail.com>**
>> escreveu:
>>
>>  Boa tarde pessoal!
>>>
>>> Estou com uma base de dados corrompida de um cliente meu (Firebird 2.5).
>>> Notei que ela estava com problemas pois o sistema simplesmente trava ao
>>> consultar os dados.
>>>
>>> Passei os seguintes comandos:
>>>
>>>> gfix -v -full localhost:base_dados
>>>>
>>> Summary of validation errors
>>>          Number of record level errors   : 2
>>>
>>>  gfix -mend localhost:base_dados
>>>>
>>> Summary of validation errors
>>>          Number of record level errors   : 2
>>>
>>> Tentei então fazer um backup com várias combinações de comandos (-ignore,
>>> -limbo, -garbage).
>>> Mas durante o backup, o GBAK pára com o seguinte erro:
>>>
>>>> gbak:    writing domain RDB$1540
>>>> gbak: ERROR:Error reading data from the connection.
>>>> gbak:Exiting before completion due to errors
>>>> gbak: ERROR:Error reading data from the connection.
>>>>
>>> Nem sempre é no mesmo domain que ocorre o erro.
>>> E para variar, o cliente não tem backup :/
>>>
>>> Alguém poderia me dar um auxilio?
>>> Talvez algum programa para recuperar a base?
>>> Já teste o IBFirstAid, mas no diagnóstico gratuito não encontrou
>>> problemas
>>> na base
>>>
>>> Abraços!
>>> Fabio Schunig
>>>
>>>
>>> ______________________________****________________
>>>
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/****artigo.php?id=1107<http://www.firebase.com.br/fb/**artigo.php?id=1107>
>>> <http://**www.firebase.com.br/fb/artigo.**php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
>>> >
>>> Para consultar mensagens antigas: http://firebase.com.br/****pesquisa<http://firebase.com.br/**pesquisa>
>>> <http://firebase.com.**br/pesquisa <http://firebase.com.br/pesquisa>>
>>>
>>>  ______________________________**________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
>> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>>
>>
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>



Mais detalhes sobre a lista de discussão lista