问题标签 [bucardo]

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 投票
0 回答
499 浏览

postgresql - 布卡多如何工作?

几天前,我使用 bucardo 将 Postgres Master 设置为主复制。直到昨天我才发现一个极其罕见的问题。问题如下。一个表具有自动生成的主键。有人在 Master-1 表中插入了一条记录。同时有人我在 Master-2 表中插入了一条记录。我认为两者都有相同的 ID,最后两个 Master 都有数据插入到 Master 2 上。

Bucardo 基于触发器工作。如果首先插入 Master-1 数据,那么它也应该在 Master-2 上复制,并且 Master-2 应该插入具有 1 个递增 ID 的数据。我想了很多,但没有找到满意的答案。

我们怎样才能避免这种情况呢?

0 投票
1 回答
439 浏览

postgresql - Bucardo 显示错误的 postgres 版本

我正在安装 Bucardo 以在 openSUSE Leap 42.3 上复制我的 Postgres 服务器 (10.1),并且我已经成功编译了 Bucardo 的可执行文件。当我尝试bucardo install并将参数修改为:

布卡多说:Postgres version is 4.8. Bucardo requires 8.1 or higher.这怎么会发生?我安装了 postgres 10,而不是 4.8。我还通过select version();and 验证了版本,我的机器上只有一个 postgres 安装。

0 投票
2 回答
1101 浏览

postgresql - 从 bucardo 同步中删除表

我在两台机器上有两个 postgreSQL 数据库,Bucardo 使它们保持同步。我在 Postgres 数据库中有一个特别大的表,我不想再同步它,我如何告诉 bucardo 停止尝试同步它?

0 投票
0 回答
302 浏览

psql - Google Cloud SQL Postgres(Set Session_Replication_Role='Replica') || 布卡多

我正在尝试使用 Bucardo 将 PostgresDB 从 AWS 复制到 GoogleCloudSQL,以避免实时交易。

在这里,Bucardo 需要session_replication_role='replica'在 googlecloudsql postgres 用户上设置使用用户凭据。cloudsql 上的 postgres 用户需要超级用户权限才能执行此操作。

他们是否有任何其他方式我们可以使用任何其他用户设置角色?

0 投票
1 回答
115 浏览

postgresql - 使用 bucardo 在目标中插入源数据

我想使用 bucardo 在两个数据库之间创建同步。这是一种单向同步。目标和源不相同(架构相同但数据不同)。

我已经与属性 onetimecopy=2 设置同步,但日志显示

我不想删除目标上的数据,只想将数据从源复制到目标,这在目标上不可用。

0 投票
0 回答
181 浏览

postgresql - bucardo 同步问题,功能不存在

我在添加要同步的数据库时遇到问题。DB版本:PostgreSQL 9.6.8(RDS),跳转系统:Ubuntu18.04 LTS,bucardo版本:5.4.1。

尝试运行此命令时:

我收到此错误:

函数search_string存在,我可以从 psql 命令行运行这个函数

0 投票
0 回答
50 浏览

postgresql - Postgres 和复制

我对 Bucardo 和 Postgres 不太熟悉,所以我希望从这个问题中得到一些反馈/如何去做。

我们有 3 台计算机在大楼的各个部分并行运行。由于计算机之间运行的 bucardo 同步,当一个更新某些内容时,另一个会显示数据等。

但是,这是要求。在任何时候,一台计算机都可以离线并重新映像。现在,当这台计算机重新上线时,操作员应该能够点击复制并从主计算机获取数据。
实现这一目标的最佳方法是什么?
我的想法是在主计算机上运行 pg_dump 并在重新映像的计算机上运行 pg_restore。

还是您认为设置 bucardo onetimecopy=2 是最好的做法。

0 投票
1 回答
461 浏览

postgresql - 由于重复键冲突,PostgreSQL 数据库复制失败

我已经使用以下软件版本配置了两台具有冗余配置(master-master setup)的 RHEL 机器。

  • 数据库:PostgreSQL 9.5
  • 布卡多:布卡多 5.4

数据库复制一直顺利进行,直到某个时间点,之后复制突然停止。我可以在 bucardo 日志中看到以下语句。

? 错误:无 DB database_node1 状态:?错误:无 DB database_node2 状态:23505 错误:7 MCP 启动 check_sync_health*

以下是我创建同步所遵循的步骤。

你能帮我解决这个问题吗?我的数据库中的序列可以负责在数据库中创建重复条目吗?

0 投票
1 回答
438 浏览

postgresql - pg_restore 后引导 bucardo 复制

目前,我正在不同位置的 5 个节点之间使用 bucardo 设置主/主复制(应该提供位置透明性)。该数据库包含大约 500 个应该被复制的表。我根据它们彼此的依赖关系,将它们分成最多 50 个表的较小的复制群。所有表都定义了主键,并且每个节点上的排序器都设置为提供系统范围的唯一身份(基于残基类)

为了在每个节点上获得一个初始数据库,我将--data-only自定义格式 pg_dump 制作成一个文件,并通过pg_restore. Bucardo 同步设置了bucardo_latest解决冲突的策略。现在,当我开始同步 bucardo 时,首先删除原始数据库中的所有数据集,然后从其中一个恢复的节点再次插入它,因为所有恢复的数据集都有一个“稍后的时间戳”(我调用 pg_restore 的时间点)。这最终会阻止初始启动,因为 bucardo 需要非常多的时间并且也会失败,因为有很多数据集需要解决并且超时通常太短。

我在每个表上也有“last_modified”时间戳,由 UPDATE 触发器管理,但据我了解,pg_dump 通过 COPY 插入数据,因此这些触发器不会被触发。

  • bucardo 使用哪个时间戳来找出是谁bucardo_latest
  • 我必须pg_dump用类似的东西打电话set SESSION_REPLICATION_ROLE = 'replica';吗?

我只想让 bucardo 跟踪每个新更改,而不是因为还原而执行伪更改。

编辑:pg_restore 在恢复时肯定触发了几个触发器......正如我所说的,我在每个表中跟踪用户和最后修改日期,并且这些值在恢复完成时设置为用户和时间戳。我知道,我可以设置 SESSION_REPLICATION_ROLE 以通过psql. 这对 pg_restore 也有可能吗?

0 投票
1 回答
56 浏览

postgresql - 如何让 bucardo 5.6.0 执行复制?

我试图让 Bucardo 在 2 个 postgres 12 数据库之间执行多主机复制。我相信一切都安装正确,我可以配置复制。但是,什么也没有发生。下面是我尝试过的代码示例(但我尝试了很多变体)。大家有什么建议吗?