
根据上面的图片,我想在内部数据库中有一些表(右手边)。希望在外部数据库中复制的其他表。
实际上,只有一组不应该被复制的值。数据库的其余部分可以复制。基本上,prices表中的实际价格列不能跨跨复制。它应该保存在内部数据库中。
因为供应商是网络外部的,所以他们无法访问内部应用程序。
我的计划是创建一个复制版本的同一应用程序,并允许供应商提交报价和挑选项目。
假设复制的表至少是quotations和quotation_line_items。在(外部数据库和内部数据库)中,这些表应该是可写的(就插入、更新和删除数据而言)。因此,在两个数据库中,quotations和quotation_line_items表中的数据都是可写的,应该在两个方向上进行复制。
除prices表中的实际原始价格列外,其他表中的数据将按一个方向(从内部复制到外部复制)复制。
quotation_line_items表将有一个price_id列。但是,prices表中的原始价格值不应出现在外部数据库中。
最后,我希望两个数据库上的复制表的数据保持一致。我不介意同步复制,所以稍微延迟一下(比如,写操作的几秒钟时间)就可以了。
我偶然发现了pglogical STABLE
他们有出版商和订阅者的概念。
根据自述文件,我无法判断哪一个将充当发行者和订阅者,以及如何根据我的情况配置它。
发布于 2018-11-07 07:23:18
那不管用。有了你梦想中的设置,你必然会以复制冲突告终。
如何防止在两个数据库中以冲突的方式修改数据?如果你说那不会发生,那就再想一想。
我相信,如果使用一个有两个用户的数据库会好得多:一个可以访问“机密”表,另一个不能访问。
如果只想限制对某些列的访问,请使用视图。简单视图在PostgreSQL中是可更新的。
发布于 2021-08-17 11:39:58
使用pglogical复制是可能的。在基本级别上,通过为每个节点分配密钥in的范围,这样在两个位置都可以写入,而不会发生冲突。然而,BDR现在是一个为产品付费的广告。
https://stackoverflow.com/questions/53182751
复制相似问题