Postgres数据库复制

时间:2016-01-23 09:46:10

标签: sql postgresql dblink

我们在我们的应用程序中使用了2个Postgres数据库。一个用于事务,一个用于配置。我必须运行的sql查询使用来自两个dbs的数据,并且是一个非常复杂的。

我使用dblink基于事务条目时间戳,使用在cron中运行的shell脚本,每小时将数据从事务数据库复制到配置数据库。所以,我将所有数据放在一个db(config)中,并且能够轻松查询。

但是现在,如果在配置数据库中复制后更新事务,我就不会对它们进行任何跟踪。我在脚本中使用的查询只是根据该小时的时间戳转储事务。

如果交易在13:30进入,那么它将在14:00通过cron作业转移,该作业将选择时间戳> = 13:00的交易 和< 14:00。但如果交易在14:05更新,我就不会有任何跟踪。

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

那么,关键问题是,如何识别事务数据库中已更改(已删除?)的行?如果答案是“我不”,那么你就有问题了。

听起来您正在尝试构建自定义触发器复制系统(请查看slony / londiste / bucardo)。使用预先构建的工具可以减少工作量,即使它们比你想要的更多。

但是,如果您的数据库相当接近(相同的计算机或良好的网络),则可能需要测试Foreign Data Wrapper以从配置数据库提供对事务数据库的远程访问。这一切都取决于您运行复杂查询的频率以及需要在两个数据库之间拖动多少数据来为其提供服务。

从此处开始了解PostgreSQL Replication的详细信息。