根据主题,我正在研究一种可靠的方法来同步两个远程 postgresql 数据库之间具有相同结构的 2 个表。
我在考虑 dblink,但不太确定,因为在这些数据库连接的地方是一个大问题,而且非常不可靠,这会迫使我将我的数据库暴露在互联网上,这是我不喜欢的想法。
另一种选择是为自己编写一个实现完整性检查的守护进程,但在继续之前,我想知道是否有人遇到过类似的挑战以及已经采取了哪些解决方案。
根据主题,我正在研究一种可靠的方法来同步两个远程 postgresql 数据库之间具有相同结构的 2 个表。
我在考虑 dblink,但不太确定,因为在这些数据库连接的地方是一个大问题,而且非常不可靠,这会迫使我将我的数据库暴露在互联网上,这是我不喜欢的想法。
另一种选择是为自己编写一个实现完整性检查的守护进程,但在继续之前,我想知道是否有人遇到过类似的挑战以及已经采取了哪些解决方案。
如果您只需要单向同步,那么我强烈推荐 Londiste。对于双向,Londiste 3 或 Bucardo 都可以通过基于触发器的复制来做你想做的事。
一些 ETL 工具可以进行元素周期表同步,包括双向合并。查看 CloverETL、Pentaho Kettle、Talend Studio。
不要尝试自己动手。这比你想象的要难。
BDR 项目正在努力将它添加到 PostgreSQL,希望在 9.5 中,但它目前处于早期开发阶段;我提到它是为了让您知道它是为将来和后来的读者而存在的。