我想在两个数据库之间同步一组表,透明地没有应用程序代码。我的想法是在源数据库表中创建插入,更新和删除触发器,以使用dblink将数据复制到dest。数据库表无缝地。
问题是源表中的更改总是在事务内部完成。触发器自动复制dest中的更改。表,但如果源事务回滚dest。表更改不是。
有没有办法在两个数据库之间自动同步事务开始和提交/回滚?类似触发器的行为将是理想的。
答案 0 :(得分:1)
是的,可以使用Slony-I或其他基于触发器的复制从年龄开始。
行更新记录在" master"上的特殊表中并且在" slave"上异步重放;侧。
外部程序/守护程序用于同步更改。
有关详细信息,请参阅http://www.postgresql.org/docs/current/static/different-replication-solutions.html和http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling#Replication。
答案 1 :(得分:1)
当9.3出来时,请查看http://www.postgresql.org/docs/9.3/static/postgres-fdw.html。您可以回滚外国数据库中的事务。