Postgresql 9.1 - 找出两个数据库之间的差异

时间:2016-03-04 14:16:28

标签: postgresql-9.1

我有一个特定的架构来设置postgresql。

我有一个基于两个数据库N和N + 1的系统。

数据库N可用于只读模式的客户端,数据库N + 1可用于客户端的修改。 客户端还可以向系统发送两个命令:

  • “apply”命令:保留对N + 1 db进行的所有修改,并且系统的新状态是具有N + 1数据和N + 2 db的只读数据库,具有可用于写入的相同数据。
  • “reset”命令:删除N ​​+ 1 db并为用户提供N数据库的新副本以进行写入访问。

我的第一个想法是将两个数据库保存在postgresql的实例中,并在apply或reset命令上执行pg_dump和pg_restore命令,并将数据库重命名为apply(N + 1 - > N)。 db可能达到8 Go的大小,因此我目前正在Centos 6.7 vm上执行此类转储和恢复的测试。

然后我查看了pg_basebackup命令,设置一个只读的热备数据库。问题是这样的架构是基于从主设备到从设备的数据复制的想法,这是我不想要的,因为客户端可以请求一个将丢弃N + 1分贝的重置命令。

问题是我不知道基于每日转储/恢复的系统是否可行,或者是否有postgresql是一种简单的方法来处理具有相同模式的两个数据库并“检测并应用”差异在两者之间:有了这种能力,我将能够在应用命令时,从N + 1复制到N只有差异,而与复位命令相反。

有什么想法吗?

0 个答案:

没有答案