问题标签 [postgres-bdr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - PostgreSQL & BDR:BDR真的是多主控吗,2019年1.x的开源和EOL吗?
我对 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 网页上看到
在复制的复杂环境下,第3代BDR实现...
第三代?版本 1.0.5 是相同的第 3 代,还是其他版本?
此外,同一页面说:
当前 Postgres-BDR 用户注意事项:BDR 1.x 将于 2019 年 12 月达到 EOL。我们的 PostgreSQL 专家团队可以帮助您规划和执行升级,影响最小,停机时间几乎为零。立即联系我们,我们的专业服务团队成员将尽快与您联系。
那么,1.0.5 是在 3 月发布的,但在 2019 年 12 月就已经 EOL 了?2.x 不是开源的,所以会产生一些与之相关的许可成本,而 1.x 是 EOL 2019?
postgresql - Postgres - BDR 复制 - auto_increment 主键的问题
我有一个具有 2 个节点(多主复制)的 Postgres BDR 集群。我创建了一个具有自动增量主键的表,如下所示:
我从 node1 在该表上添加了一些值:
现在,当我尝试从 node2 向该表中添加另一个值时,我收到该错误:
postgresql - 是否可以重建 pg_depend?
我有一个受BDR中以下错误影响的 PostgreSQL 9.4 数据库:
https://github.com/2ndQuadrant/bdr/issues/309
简而言之,BDR 中的错误导致pg_depend
系统目录中缺少依赖项。现在,当我使用 时pg_dump
,对象被乱序转储,如果没有手动编辑,就无法使用转储。
有没有办法让 PostgreSQL 在pg_depend
不从头开始重建数据库的情况下重建依赖关系?
postgresql - 从 postgresql 上损坏的外键剩余部分中恢复
我们有一个非常简单的一对多关系。site
和resolver
桌子。resolver
有一个外键site_id
。
我们决定删除该resolver
表,因为它不再有用了。所以我们只是简单地做了DROP TABLE resolver
。但是,我们使用2ndQuadrant BDRv1进行异步多多复制,它有一个错误。当您这样做时,它不会正确清除约束。实际上,我们之前在另一个用例中注意到了这一点,并在删除表之前删除了外键和主键,效果很好。这次我们错过了,我们在现场遇到了这种腐败状态。
除非您尝试删除该站点(幸好这不是常见的情况),否则它不会造成太大的麻烦。
有一些解决方法,但我们需要在下一个版本中清理它。它是许多客户部署的产品,而不是我们自己的部署。所以它需要尽可能的平滑。因此,虽然“重新创建数据库或表”等是有效的答案(并且可能应该作为答案出现,最好带有命令或链接),但它们并不总是在客户部署中最可行的。
因此,删除约束不起作用,因为该表不再存在。
所以,我决定通过环顾四周来弄乱内部表格来完成它的工作。我知道,好主意..
在此之后,删除站点仍然失败
这可以通过重新启动不理想的 postgresql 来解决。
我想我的问题是:
- 如何避免重启?应该有一种方法可以告诉缓存将其删除,就像DROP CONSTRAINT一样。回答:似乎重新启动应用程序(或者在我的情况下可能是 JDBC 连接)就足够了。
- 我还应该清理什么?
- 我可以使用哪些替代方法而不是弄乱内部表?