1

我想在两个数据库之间透明地同步一组表,而无需更改应用程序代码。我的想法是在源数据库表中创建插入、更新和删除触发器,以使用 dblink 将数据复制到目标。数据库表无缝。

问题是源表中的更改总是在事务中完成。触发器会自动复制 dest 中的更改。表,但如果源事务回滚 dest。表的变化不是。

有没有办法在两个数据库之间自动同步事务开始和提交/回滚?类似触发器的行为将是理想的。

4

2 回答 2

1

当 9.3 发布时,请查看http://www.postgresql.org/docs/9.3/static/postgres-fdw.html。您可以回滚外部数据库中的事务。

于 2013-09-05T04:01:22.750 回答
1

是的,从很久以前就有可能——使用Slony-I或其他基于触发器的复制。

行更新记录到“主”端的特殊表中,并在“从”端异步重播。

外部程序/守护进程用于同步更改。

有关详细信息,请参阅http://www.postgresql.org/docs/current/static/different-replication-solutions.htmlhttp://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling#Replication

于 2012-01-18T13:27:57.073 回答