我对PostgreSQL BDR感到困惑,我有几个问题:
问题1:BDR是否真的是PostgreSQL的多主服务器?
根据此处的文档,它表示:
BDR(双向复制)项目将多主复制添加到PostgreSQL 9.4
但是,如果我在2ndQuadrant上阅读,则会阅读以下内容:
如果我读那部分,他们根本不会提到多主机。只是一个“第二主人,被动工作”,这表明它不是真正的主人?
问题2:BDR是开源的吗?
我在这里读到的是,至少是:
BDR是PostgreSQL的第一个开源多主复制系统
还在吗 因为当我看时,我经常被引导到2ndQuadrants网页,当他们说:
如何获得Postgres-BDR?
只需填写下面的联系表格,PostgreSQL专家很快就会与您联系!
听起来像是卖给我=)
问题3:什么版本?
我读到2ndQuadrant在今年3月发布了 1.0.5 版。我也读2ndQuadrants网页是
在复杂的复制环境中,第三代BDR实现了...
第三代?版本1.0.5是同一个第三代,还是其他?
此外,同一页上还显示:
当前Postgres-BDR用户的注意事项:BDR 1.x将于2019年12月到期。我们的PostgreSQL专家团队可以帮助计划和执行升级,而影响最小,停机时间几乎为零。立即与我们联系,我们专业服务团队的成员将尽快与您联系。
因此,1.0.5在3月发布,但EOL在2019年12月发布?2.x不是开源的,因此与之相关的一些许可证成本,而1.x是EOL 2019?
我有一个系统,多个卫星创建金融交易,他们需要与核心服务器同步.卫星是使用本地Postgres数据库运行Rails应用程序的远程服务器.核心是另一个拥有自己的Postgres数据库的Rails应用程序.卫星和核心具有几乎相同的模式(但不完全相同).一切都是集装箱化的(应用程序和数据库).核心服务器很少更新所有卫星所需的数据.目前我有一颗卫星,但这个数字会增长到一对(我认为在遥远的未来不会超过100颗).核心和卫星之间没有序列或争用的问题.核心将永远不会更新与任何卫星相同的交易,并且任何卫星都不会更新与任何其他卫星相同的交易.更好的是,金融交易以uuid为主键.
由于这是一个多主同步问题,我自然而然地遇到了BDR.我有以下问题:
我正在尝试使用BDR在Postgres数据库上运行Django迁移.
python manage.py makemigrations
工作正常,但正在运行
python manage.py migrate
导致以下错误:
ALTER TABLE … ALTER COLUMN TYPE … may only affect UNLOGGED or TEMPORARY tables when BDR is active; auth_permission is a regular table
违规模块是django/django/contrib/auth/migrations/0002_alter_permission_name_max_length.py.
我没有找到任何关于如何使用Django的UNLOGGED表,特别是因为auth_permissions是一个Django表(不是我创建的).我也不确定UNLOGGED表是否会复制.
有人有建议吗?
我正在四个 PostgreSQL 工作人员之间设置双向复制,并且我想让我的 Go 数据库连接池处理所有四个工作人员的连接。它应该能够为它们创建多个连接,为任何给定的查询随机选择一个,并在连接断开时进行故障转移。这在 Go 数据库库中可行吗?或者我应该只使用pgBouncer而不是尝试让database/sql或pgx来处理这种平衡?