GARANTIR DESCONTO

Fórum Backup corrompido! Como restaurar? #46288

25/08/2004

0

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

Responder

Posts

25/08/2004

Afarias

|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+


Responder

Gostei + 0

25/08/2004

Tenil

|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+


Responder

Gostei + 0

25/08/2004

Tenil

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



Responder

Gostei + 0

25/08/2004

Afarias

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+


Responder

Gostei + 0

25/08/2004

Tenil

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


Responder

Gostei + 0

25/08/2004

Afarias

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+


Responder

Gostei + 0

25/08/2004

Tenil

Como faço para reativar os índices?


Responder

Gostei + 0

26/08/2004

Tenil

|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?


Responder

Gostei + 0

26/08/2004

Afarias

|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+


Responder

Gostei + 0

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

Aceitar