首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pglogical-2如何处理同一个表上的逻辑复制,同时允许在两个数据库上都可以写?

pglogical-2如何处理同一个表上的逻辑复制,同时允许在两个数据库上都可以写?
EN

Stack Overflow用户
提问于 2018-11-07 02:13:40
回答 2查看 537关注 0票数 1

根据上面的图片,我想在内部数据库中有一些表(右手边)。希望在外部数据库中复制的其他表。

实际上,只有一组不应该被复制的值。数据库的其余部分可以复制。基本上,prices表中的实际价格列不能跨跨复制。它应该保存在内部数据库中。

因为供应商是网络外部的,所以他们无法访问内部应用程序。

我的计划是创建一个复制版本的同一应用程序,并允许供应商提交报价和挑选项目。

假设复制的表至少是quotationsquotation_line_items。在(外部数据库和内部数据库)中,这些表应该是可写的(就插入、更新和删除数据而言)。因此,在两个数据库中,quotationsquotation_line_items表中的数据都是可写的,应该在两个方向上进行复制。

prices表中的实际原始价格列外,其他表中的数据将按一个方向(从内部复制到外部复制)复制。

quotation_line_items表将有一个price_id列。但是,prices表中的原始价格值不应出现在外部数据库中。

最后,我希望两个数据库上的复制表的数据保持一致。我不介意同步复制,所以稍微延迟一下(比如,写操作的几秒钟时间)就可以了。

我偶然发现了pglogical STABLE

他们有出版商和订阅者的概念。

根据自述文件,我无法判断哪一个将充当发行者和订阅者,以及如何根据我的情况配置它。

EN

回答 2

Stack Overflow用户

发布于 2018-11-07 07:23:18

那不管用。有了你梦想中的设置,你必然会以复制冲突告终。

如何防止在两个数据库中以冲突的方式修改数据?如果你说那不会发生,那就再想一想。

我相信,如果使用一个有两个用户的数据库会好得多:一个可以访问“机密”表,另一个不能访问。

如果只想限制对某些列的访问,请使用视图。简单视图在PostgreSQL中是可更新的。

票数 0
EN

Stack Overflow用户

发布于 2021-08-17 11:39:58

使用pglogical复制是可能的。在基本级别上,通过为每个节点分配密钥in的范围,这样在两个位置都可以写入,而不会发生冲突。然而,BDR现在是一个为产品付费的广告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53182751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档