Srs.

Tenho uma aplicação que replica dados de um banco oracle para postgresql.
O fluxo segue da seguinte forma:


oracle.table1 -> AppSincronizador -> postgresql.table1 -> Trigger
(upd,ins,del) -> postgresql.table2

Estou tendo situações onde o volume de dados é grande que as mudanças que
deveria estar na tabela final não são encontradas, ficando as tabelas no
postgresql desincronizadas.  Bom, a aplicação faz uma única transação e faz
commits a cada 1000 registros.

É como se as triggers desativassem, pois quando faço manualmente a operação
é realizada.  Existe algum BUG ou situação onde o postgresql desative essas
triggers ?


Versão So: CentOS 6.5
Postgresql 9.3.5
Oracle: 11G

Encontrei esse POST e queria esclarescimentos principalmente sobre o trecho
abaixo:
AFTER triggers are more expensive than BEFORE triggers because they must be
queued up until the statement finishes doing its work, then executed. They
aren't spilled to disk if the queue gets big (at least in 9.4 and below,
may change in future) so huge AFTER trigger queues can cause available
memory to overrun, resulting in the statement aborting.

Link:
http://dba.stackexchange.com/questions/88761/scaling-postgresql-triggers

PS. No momento não estou interessado na performance, pois isso cuido
posteriormente, mas sim na questão de que existem operações aleatórias que
não concluem para a tabela final.


-- 


*Atenciosamente,Emanuel Araújo*

*Linux Certified, DBA PostgreSQL*
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a