问题标签 [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.
postgresql - 布卡多如何工作?
几天前,我使用 bucardo 将 Postgres Master 设置为主复制。直到昨天我才发现一个极其罕见的问题。问题如下。一个表具有自动生成的主键。有人在 Master-1 表中插入了一条记录。同时有人我在 Master-2 表中插入了一条记录。我认为两者都有相同的 ID,最后两个 Master 都有数据插入到 Master 2 上。
Bucardo 基于触发器工作。如果首先插入 Master-1 数据,那么它也应该在 Master-2 上复制,并且 Master-2 应该插入具有 1 个递增 ID 的数据。我想了很多,但没有找到满意的答案。
我们怎样才能避免这种情况呢?
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 安装。
postgresql - 从 bucardo 同步中删除表
我在两台机器上有两个 postgreSQL 数据库,Bucardo 使它们保持同步。我在 Postgres 数据库中有一个特别大的表,我不想再同步它,我如何告诉 bucardo 停止尝试同步它?
psql - Google Cloud SQL Postgres(Set Session_Replication_Role='Replica') || 布卡多
我正在尝试使用 Bucardo 将 PostgresDB 从 AWS 复制到 GoogleCloudSQL,以避免实时交易。
在这里,Bucardo 需要session_replication_role='replica'
在 googlecloudsql postgres 用户上设置使用用户凭据。cloudsql 上的 postgres 用户需要超级用户权限才能执行此操作。
他们是否有任何其他方式我们可以使用任何其他用户设置角色?
postgresql - 使用 bucardo 在目标中插入源数据
我想使用 bucardo 在两个数据库之间创建同步。这是一种单向同步。目标和源不相同(架构相同但数据不同)。
我已经与属性 onetimecopy=2 设置同步,但日志显示
我不想删除目标上的数据,只想将数据从源复制到目标,这在目标上不可用。
postgresql - bucardo 同步问题,功能不存在
我在添加要同步的数据库时遇到问题。DB版本:PostgreSQL 9.6.8(RDS),跳转系统:Ubuntu18.04 LTS,bucardo版本:5.4.1。
尝试运行此命令时:
我收到此错误:
函数search_string
存在,我可以从 psql 命令行运行这个函数
postgresql - Postgres 和复制
我对 Bucardo 和 Postgres 不太熟悉,所以我希望从这个问题中得到一些反馈/如何去做。
我们有 3 台计算机在大楼的各个部分并行运行。由于计算机之间运行的 bucardo 同步,当一个更新某些内容时,另一个会显示数据等。
但是,这是要求。在任何时候,一台计算机都可以离线并重新映像。现在,当这台计算机重新上线时,操作员应该能够点击复制并从主计算机获取数据。
实现这一目标的最佳方法是什么?
我的想法是在主计算机上运行 pg_dump 并在重新映像的计算机上运行 pg_restore。
还是您认为设置 bucardo onetimecopy=2 是最好的做法。
postgresql - 由于重复键冲突,PostgreSQL 数据库复制失败
我已经使用以下软件版本配置了两台具有冗余配置(master-master setup)的 RHEL 机器。
- 数据库:PostgreSQL 9.5
- 布卡多:布卡多 5.4
数据库复制一直顺利进行,直到某个时间点,之后复制突然停止。我可以在 bucardo 日志中看到以下语句。
? 错误:无 DB database_node1 状态:?错误:无 DB database_node2 状态:23505 错误:7 MCP 启动 check_sync_health*
以下是我创建同步所遵循的步骤。
你能帮我解决这个问题吗?我的数据库中的序列可以负责在数据库中创建重复条目吗?
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 也有可能吗?
postgresql - 如何让 bucardo 5.6.0 执行复制?
我试图让 Bucardo 在 2 个 postgres 12 数据库之间执行多主机复制。我相信一切都安装正确,我可以配置复制。但是,什么也没有发生。下面是我尝试过的代码示例(但我尝试了很多变体)。大家有什么建议吗?