Backup corrompido! Como restaurar?

Firebird

25/08/2004

Faço backup diarimente do banco de dados, porém, descobri que ele está corrompido.

Eu sei que se fizermos um backup/restore a maioria dos problemas são resolvidos.

Só que quando fui fazer o restore, ocorreu um erro, não fosse bastante, o restore apagou o arquibo .gdb original. Agora não estou conseguindo fazer o restore de jeito nenhum.

Por favor, alguém sabe com restaurar um backup que está corrompido?

Peço urgência pois mais de 20 usuários estão parados por causa disso.

Obrigado a todos.

Roberto



[b:a78e864209]Título editado: ´BACKUP CORROMPIDO! SOCORRO!´[/b:a78e864209]

ding_ling,
Não escreva o título utilizando caixa alta; equivale a gritar. Por favor, releia as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.
Sandra/Moderação


Tenil

Tenil

Curtidas 0

Respostas

Afarias

Afarias

25/08/2004

|Eu sei que se fizermos um backup/restore a maioria dos problemas são
|resolvidos.

quando o banco está corrompido, deve se executar um gfix -m -i antes do backup


|Só que quando fui fazer o restore, ocorreu um erro,

Que erro?


|não fosse bastante, o restore apagou o arquibo .gdb original.

Não deveria restaurar por cima da base original, se não testou antes. Eu particularmente NUNCA uso a opção -R


|Por favor, alguém sabe com restaurar um backup que está corrompido?

Sem saber o erro complica


T+


GOSTEI 0
Tenil

Tenil

25/08/2004

|Eu sei que se fizermos um backup/restore a maioria dos problemas são
|resolvidos.

quando o banco está corrompido, deve se executar um gfix -m -i antes do backup


|Só que quando fui fazer o restore, ocorreu um erro,

Que erro?
[b:1878f57aca]Arithmetic exception, numeric overflow, or string truncation[/b:1878f57aca]

|não fosse bastante, o restore apagou o arquibo .gdb original.

Não deveria restaurar por cima da base original, se não testou antes. Eu particularmente NUNCA uso a opção -R
[b:1878f57aca]Não sabia[/b:1878f57aca]

|Por favor, alguém sabe com restaurar um backup que está corrompido?

Sem saber o erro complica
[b:1878f57aca]Arithmetic exception, numeric overflow, or string truncation[/b:1878f57aca]

T+


GOSTEI 0
Tenil

Tenil

25/08/2004

Consegui chegar a um erro mais específico:

gbak: restoring data for table USUARIO
gbak: ERROR: validation error for column ST_PRIMEIRO_NOME, value "*** null ***"
gbak: ERROR:  warning -- record could not be restored
gbak: Exiting before completion due to errors



GOSTEI 0
Afarias

Afarias

25/08/2004

tente restaurar o backup com estes parâmetros::

gbak -c -v -n

se continuar no erro:

gbak -c -v -n -i


(me post o resultado)

T+


GOSTEI 0
Tenil

Tenil

25/08/2004

Não funcionou só com estes parâmetros, mas consegui restaurar, com perdas mínimas, usando alguns parâmetros a mais:


[b:9bcedb0f93]gbak -c -v -ig -i -r -n -o BACKUP.GBK dbitej.gdb[/b:9bcedb0f93]


Obrigado


GOSTEI 0
Afarias

Afarias

25/08/2004

Note q 1 vez usando o -i vc tem q ativar os índices manualmente, e no caso do -n vc tem q checar a validação dos dados



T+


GOSTEI 0
Tenil

Tenil

25/08/2004

Como faço para reativar os índices?


GOSTEI 0
Tenil

Tenil

25/08/2004

|Note q 1 vez usando o -i vc tem q ativar os índices manualmente
Como?

|e no caso do -n vc tem q checar a validação dos dados
Como?


GOSTEI 0
Afarias

Afarias

25/08/2004

|Note q 1 vez usando o -i vc tem q ativar os índices manualmente
|Como?

vc pode dropá-los e recriá-los ou usar::

alter index nome_do_indice active;

(lembre dos índices de constraints tb!)


|e no caso do -n vc tem q checar a validação dos dados
|Como?

hum... a re-criação das constraints e/ou re-ativação dos índices deverá fazer isso, mas vc pode achar registros com problemas com códigos tipo:

validar um campo not null::

select * from tabela where campo is null;

uma chave primária ou índice único::

select campo, count(*) from tabela
group by campo having count(*) > 1

uma chave estrangeira::

select * from tabela t where not exists (
select 1 from tabela2 where campo = t.campo)


por ai...

T+


GOSTEI 0
POSTAR