问题标签 [postgresql-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.

0 投票
1 回答
933 浏览

postgresql - Postgresql BDR 复制问题

我正在尝试设置 2 节点 BDR 复制,但在运行 bdr_init_copy 时出现以下错误。

这些是步骤:

我收到以下错误:

在此错误之后,它没有启动第二个节点。

0 投票
1 回答
798 浏览

postgresql - 加入 Postgres BDR 节点使用过时的 DSN

我有一个 Postgres BDR 集群,它有 3 个节点“ Ready ”和 3 个节点“ Parted ”。

如果我这样做SELECT * FROM bdr.bdr_nodes,将显示以下信息:

我正在尝试加入node8。但它不会发生。错误如下:

该错误意味着它正在尝试连接到已被杀死或删除的节点。为什么要尝试连接到被杀死或删除的节点?我该如何解决这种情况?

以下命令用于加入node8

BDR 已根据此说明安装(Debian Wheezy):

bdr.bdr_connections

版本:

0 投票
1 回答
635 浏览

database - 让 PostgreSQL BDR 在没有超级用户(postgres 用户)权限的情况下工作?

我们在工作中从 MongoDB 切换到 Postgres,我正在建立一个 BDR 组。

在这一步,我正在考虑安全性并尽可能锁定。因此,我希望设置一个replication用户(角色)并让 BDR 将其用于其复制内容。当使用受信任的连接或postgres用户进行身份验证时,我已经让该组愉快地运行。对我来说,两者似乎都不是 100% 安全的,而且我特别不喜欢 postgres 用户的密码如何以明文形式出现在bdr.bdr_nodes. 所以我尝试改用这个replication用户。

也就是说,例如在pg_hba.conf

以及匹配的 DSN 连接字符串,

发出以下错误说明了这种方法的问题bdr.bdr_group_create

这就是我有点困惑的地方。BDR 真的需要超级用户权限来进行复制吗?或者我是否可以授予我的replication角色特定的权限,使其能够在不全能的情况下开展业务?

也许只是我偏执,但我觉得postgres用户应该只用于系统管理员的东西,并且它的密码绝对不应该出现在明文 DSN 连接字符串的表中,即使您需要特殊权限从所述表中读取。

0 投票
2 回答
932 浏览

django - 使用 Postgres BDR 9.4.1 迁移 Django 1.8

我正在尝试使用 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 取消记录表的信息,尤其是因为 auth_permissions 是一个 Django 表(不是我创建的)。我也不确定 UNLOGGED 表是否会复制。

有人有建议吗?

0 投票
0 回答
492 浏览

postgresql - 如何在 postgresql UDR 数据库中创建一个新列

我需要能够在已设置为使用 postgresql UDR 的数据库中的现有表中创建一个新列。根据我的阅读,除非您以特定方式编写语法,否则您无法在 BDR 中运行 DDL 命令……例如,我在 stackoverflow 上找到了这篇文章:

使用 Postgres BDR 9.4.1 迁移 Django 1.8

我试图在我的 UDR 设置中遵循类似的方法......但它对我不起作用。

具体来说,我尝试了以下方法:

和这个:

是否允许在 UDR 设置中运行 DDL 命令?如果有人有一些提示,我将不胜感激。谢谢。

0 投票
2 回答
90 浏览

python - 我需要对 env.hosts 进行排序以按特定顺序运行任务

我需要从角色定义中对主机进行排序,以便它们可以按特定顺序运行这些任务。

我正在实施 PostgreSQL BDR ( http://2ndquadrant.com/en-us/resources/bdr/ ) 部署程序。为了成功,您需要在主机中创建一个 BDR 组,然后才加入所有其他主机中的 BDR 组。

用户需要从列表中选择哪个是第一个主机。

----已编辑----

我尝试动态设置 env.hosts 但它不起作用。

这样,如果我尝试:

它不会为列表中的每个服务器运行回显。

但是,如果我尝试一种然后在同一命令中回显:

它将提供预期的输出:

如何在运行时更改主机列表?

0 投票
1 回答
235 浏览

multithreading - PostgreSQL + BDR 中的复制确认

我正在使用 libpq C 库来测试 PG + BDR 副本集。我想确认 CRUD 操作的复制。我的目的是以毫秒或如果可能的话以微秒为单位制作我自己的复制时间日志。

程序:
启动 10-20 个线程独立连接,每个线程在三个表上进行 1000-5000 个基本 CRUD 操作周期。

哪个是最好的方法?
如果它们具有带有时间戳的正确数据或在我的 C api 中解析一些高详细日志,我应该在每个 CRUD 操作之后启动 N 个线程(N = {节点数} - {我连接到的主服务器})。并查询数据的节点。

0 投票
1 回答
117 浏览

postgresql-bdr - PostgreSQL-BDR:部分节点仅在网络问题后 2 小时后才开始复制

我的设置是 4 台具有相同配置的服务器上的 PostgreSQL-BDR。

在网络出现问题(例如连接丢失几分钟)后,一些节点会在几秒钟后再次开始复制,但其他节点仅在 2 小时后才开始复制。

我找不到任何配置开关来设置复制的时间。

当我监控复制槽时,我看到以下几行:

知道为什么会这样吗?

0 投票
0 回答
475 浏览

postgresql - Postgresql 复制:使用 2 BDR 和/和 2*n UDR 或 pglogical(某种数据中心设置)

我计划Postgresql在多个站点上运行复制。每个站点上应该有两台服务器。在主站点,它们应该以BDR模式运行。在站点之间(到其他服务器)我需要类似UDR. BDR如果它不需要全网状连接并且会级联更改,我可以使用它。

我正在读那篇文章,BDRUDR不能很好地合作。 链接
然后我看到pglogical它看起来像一个UDR替代品。pglogical docs
我正在使用 BDR 版本 0.9.3 (postgresql 9.4)。

BDR我可以用UDR我想要的方式混合吗?
我可以混合BDRpglogical实现我想要的吗?
什么可能是关键或陷阱?
有没有办法用当前可用的版本来做到这一点?所需的版本和程序是什么?

编辑:
我正在考虑UDRBDR服务器到其他服务器的方向。但我也可以想象其他人需要它。或者一些表只同步,而其他表只同步。

编辑2:

我尝试使用BDRwith pglogical

  1. 首先,我进行了 2 节点BDR设置。
  2. 验证它正在工作。
  3. 然后我pglogical只在一个BDR节点上进行了设置。
  4. 从此时起,它停止工作(BDR& pglogical)。

pglogical像锁一样的接缝DDL(或者可能是所有东西)。我无法加入订阅者,也无法在另一个BDR节点(DDL锁定)上插入数据。

因此,目前似乎不可能BDR在同pglogical一张桌子上运行。
但可能有一种解决方法 - 或者我可能做错了什么。

0 投票
1 回答
3078 浏览

postgresql - Postgres BDR 复制已停止 - 复制槽不活动

我们的 Postgres BDR 数据库系统停止在节点之间复制数据。

当我使用 进行检查时,pg_xlog_location_diff我注意到复制槽中有一个不断增长的缓冲区。

我还注意到该插槽被标记为 active=false。

我提高了 Postgres 日志记录级别,但是我在日志中看到的只有消息:

如果您知道如何重新激活复制槽并允许复制恢复,请告诉我。