Erro estranho no banco de dados!!!

Firebird

14/10/2004

Oi,

Tenho um banco de dados onde duas tabelas são:

- Entregas (ESPED)
- Itens da entrega (ESPEDPROD)

O tabela de itens da entrega esta relacionada com a tabela entregas atraves de:

ALTER TABLE ESPEDPROD ADD FOREIGN KEY (COD_ESPED) REFERENCES ESPED (CODIGO) ON DELETE CASCADE ON UPDATE CASCADE

Quando eu apago um registro da entrega (esped), os itens de entrega (espeprod) são apagados automaticamente e quanto incluo um item de entrega (espedprod) deve haver correspondencia na entrega (esped) - ja confirmei isto.

Porem ja aconteceu mais de uma vez em cliente de aparecer itens de entrega (espedprod) sem correspondencia na tabela de entrega (esped).
gfix e gbak não funciona (só se eu desativar os indices no gbak), então tenho que remover estes itens de entrega (espedprod) manualmente antes do gfix e gbak pra funcionar.

Alguem sabe me dizer porque issso ocorre, uma vez que isto é teoricamente impossivel de ocorrer???


Larry

Larry

Curtidas 0

Respostas

Afarias

Afarias

14/10/2004

não entendi bem -- isso ocorreu por que sua base foi danificada?? nesse caso pode ter havido perda de registros ´mestre´...

pode detalhar mais?


T+


GOSTEI 0
Larry

Larry

14/10/2004

Oi,

O registro mestre simplesmente desapareceu (esped), mantendo os registros filhos (espedprod) intactos.
Se os registros mestre tivessem sido excluidos pelo usuario os registros correspondentes da tabela filho (espedprod) teriam sido excluidos automaticamente pelo foreign key.
Isso ja ocorreu diversas vezes inclusive em outras tabelas e eu tenho que excluir os registros filho manualmente e depois fazer um gfix + gbak.

Isso é apenas um banco de dados corrompido? oque poderia gerrar essa inconsistencia?

não entendi bem -- isso ocorreu por que sua base foi danificada?? nesse caso pode ter havido perda de registros ´mestre´... pode detalhar mais? T+



GOSTEI 0
Afarias

Afarias

14/10/2004

|Isso é apenas um banco de dados corrompido? oque poderia gerrar essa
|inconsistencia?

somente um banco de dados corrompido poderia gerar isso (bom, desde que vc esteja usando uma versão estável do IB ou FB)

sugiro q corrija a base (GFIX) faça um backup e restore e procure ler artigos sobre como evitar corrupção em bases de dados -- uma forma é vc (após o restore) configurar sua base para FORCED WRITES

Se este problema está ocorrendo sempre e não é por causas como: queda de energia, travamento do servidor e desligar o servidor ´no dedão´, eu diria q vc tem ai um hardware defeituoso.


T+


GOSTEI 0
Larry

Larry

14/10/2004

Oi,

To usando o FB 1.5.1 4481
Ja corrigi com gfix e gbak e force writes ta ativado.
Ja ocorreu este problema num clientes duas vezes em menos de um mes.
O servidor é novinho, embora esteja usando o win98. O cliente disse não ta ocorrendo nenhum travamento no servidor e ele esta sendo desligado corretamente.
To achando estranho pois o cliente esta usando o sistema a bastante tempo e isso começou a ocorrer do nada.



somente um banco de dados corrompido poderia gerar isso (bom, desde que vc esteja usando uma versão estável do IB ou FB) sugiro q corrija a base (GFIX) faça um backup e restore e procure ler artigos sobre como evitar corrupção em bases de dados -- uma forma é vc (após o restore) configurar sua base para FORCED WRITES Se este problema está ocorrendo sempre e não é por causas como: queda de energia, travamento do servidor e desligar o servidor ´no dedão´, eu diria q vc tem ai um hardware defeituoso. T+



GOSTEI 0
Afarias

Afarias

14/10/2004

|Ja corrigi com gfix e gbak e force writes ta ativado.

ok


|Ja ocorreu este problema num clientes duas vezes em menos de um
|mes. O servidor é novinho, embora esteja usando o win98.

Windows 98 não é um ambiente ideal, mas ainda assim não costuma ocorrer problemas assim ´do nada´


|To achando estranho pois o cliente esta usando o sistema a bastante
|tempo e isso começou a ocorrer do nada

Realmente é estranho... se tiver alguma informação adicional, posta aqui!

:)


T+


GOSTEI 0
POSTAR