Pessoal, preciso de uma ajuda para solucionar um problema que se estende a
vários dias.

Temos um modelo de banco de dados que é utilizado em mais de 200 clientes,
todos para uma base OLTP de um sistema ERP. Em nenhum outro cliente este
problema aparece, somente em um cliente que roda Windows 2003 Server e o
banco PostgreSQL 8.2.13.

A estrutura física compreende 8 VIEWS (cada uma relacionada a uma entidade
independente). Para exibir as informações de venda (que envolve estas 8
VIEWS) existe uma outra VIEW "superior" chamada FATURAMENTO_VIEW_SRC, que
relaciona todas as demais para trazer resultados analiticos. Esta view
superior foi montada para servir relatórios de faturamento, e é
materializada em uma tabela com a mesma estrutura através de TRIGGERS.

Pois bem... ocorre um comportamento anormal em um cliente, apenas neste
cliente dentre mais de 200 outros. Quando é gravado uma nota fiscal de
venda, um TRIGGER é disparado para gravar os dados da FATURAMENTO_VIEW_SRC
na tabela FATURAMENTO, e esporadicamente - sim, somente de vez em quando -
ocorre um erro:

"Relation with OID 184407 does not exists"

Não utilizamos nenhuma tabela temporária, não é realizado nenhum DROP
durante a montagem da VIEW e o TRIGGER apenas faz um "INSERT INTO ... SELECT
FROM ...".

O pior de tudo, é que este OID não existe na tabela pg_class. Acontece ao
executar um comando INSERT, se depois do erro eu tentar executá-lo novamente
com os mesmos valores, tudo segue-se normalmente.

Eu já tentei fazer um backup completo do banco, realizar um DROP DATABASE,
depois restaurá-lo novamente para verificar se isso corrige o problema, mas
não tive sucesso. Alguém tem alguma idéia?

NOTA: Já copiamos a base de dados do cliente para nosso laboratório aqui na
empresa e aqui não conseguimos simular o problema.


-- 
Tiago J. Adami
Dois Vizinhos - Paraná - Brasil
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a