问题标签 [multi-master-replication]

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

database - Postgres 12 逻辑复制到有时连接的订阅者?

我被要求设置一个带有 2 个服务器的 Postgres 12 系统。一个本地和一个下行范围,网络连接非常不可靠。我们需要使用多发布者设置在两个系统之间复制数据。本机逻辑复制或 pglogical 是否支持这种情况?如果是这样,你会推荐哪个,为什么?

0 投票
2 回答
160 浏览

redis - 在分布式系统中选择哪种复制机制?

很难理解一些事情。我在网关后面有两个复制的服务主机(A 和 B)(将来可能会扩展到最多 3 个)。每个服务主机都需要保存其各自主机的一些数据/状态(键值)。为避免 SPOF,需要将相同的状态/数据复制到两台主机,以便如果一台服务器出现故障,则另一台服务器应该可以提供服务。请提出一些解决此问题的机制。(如果有任何分布式框架,要非常具体)

在此处输入图像描述

主从复制:主机 A 为主,主机 B 为从。但我的问题是:

  • 来自主机 B 的所有写请求都将通过主机 A 路由,然后最终到达 B。
  • 此外,假设主机 A 出现故障,那么将没有写入,B 将卡住直到 A 恢复。

我的理解是否正确,不能在奴隶中完成写入?如果有一些解决方法,例如将从站升级为主站,仍然存在重新路由问题,如前所述。

我认为可以使用其他方法(多主和无领导)来实施解决方案,但无法得出任何结论。我尝试比较其中的几个:

  • Redis - 默认情况下它是主从,但企业版也有主主配置。所以可能是一个可能的解决方案。
  • Dynamo 风格 - Riak、Cassandra、Voldemort 等。不确定所涉及的复杂性

要求:

  • 解决方案必须更简单、更轻量,且不消耗大量服务主机资源。
  • 数据采用键值格式
  • 读/写应该非常快。(内存中会更好)
  • 读/写动作的发生/频率不是很快。
  • 数据量也非常少。在任何时候,任何主机上的数据总大小不得超过 1 mb。
0 投票
0 回答
37 浏览

oracle - ADD_MASTER_DATABASE 程序更改 tns 登录用户名

我正在尝试按照multi master指南配置两台服务器(orclsrc 和 orcltgt)Oracle 11G(是的,我知道它很旧,但我们在这里拥有)。

当我尝试这样做时:

我收到了这个错误:

AFAIK 我有一个正确的 TNS 配置,因为 tnsping 在两个方向上都可以正常工作。

所以问题似乎是当运行以前的命令登录操作将“.sys”附加或连接到我的用户名(repadmin.sys而不是repadmin)时。

我怎样才能避免这种行为?

PS:还有其他更好的选择multimaster吗?

0 投票
1 回答
373 浏览

postgresql - PostgreSQL BDR 与复制槽有关的问题

如果可以的话,我想在添加更多细节之前写一个问题的简短摘要,以使我的问题更清晰:

我有一个 BDR 组在生产中运行,复制在所有节点中都可以正常工作,但是我在其中一个节点中遇到了关于复制槽的错误,我想在不破坏其他任何东西的情况下修复这些错误......

更多细节:

我有一个在 PostgreSQL 9.4 上运行的三节点 BDR 组,2 个节点使用 RedHat7,另一个使用 Centos7。数据库名称是“MCT”。

从任何节点到其他节点的复制都运行良好,但是......

所有节点都在其日志中显示复制槽问题:

REDHAT_1:

REDHAT_2:

CENTOS_1:

如果我运行此查询:

我得到这个结果:

REDHAT_1:

REDHAT_2:

CENTOS_1:

这个查询:

REDHAT_1:

REDHAT_2:

CENTOS_1:

因此,我想知道如何在不破坏当前正在生产的 BDR 中的任何内容的情况下摆脱该错误。

有什么想法吗?

先感谢您!

0 投票
1 回答
86 浏览

mysql - MySQL Master-Master 复制错误 1062

问题是关于 MySQL-Master-Master 复制。我在网上看了很多,但是有一个问题。

源数据:

A. MySQL 5.7。我的一部分。cnf 关于复制:

B. MySQL 5.7。my.cnf 关于复制的一部分:

服务器 A 是活动(主)数据库服务器。当服务器 A 被禁用/不可用时,服务器 B 连接。一开始,Master-Master的replication组装好了(replication双向工作),成功工作了2天,直到我决定测试它。我开始阻止对服务器 A 的访问以切换到服务器 B 并返回。多次切换后出现复制错误 1062(无法在表上执行 Write_rows 事件...)。

现在提问。我的复制配置中的哪些配置不正确?我知道这在很大程度上取决于产品和对它的要求,但是是否有通用的 Master-Master 配置?

0 投票
1 回答
156 浏览

sql - 从 sql 脚本中的配置文件读取

我有一个 sql 脚本,我在其中创建应用程序中使用的所有序列,如下所示。对于不同的服务器,这些值会有所不同。我不想给出这些硬编码的值,而是想在一些配置文件中指定这些值有没有一种方法可以从我的 sql 脚本中的配置文件中读取所有这些值

创建序列 tbl1_tbl1id_seq AS INT START WITH 1 INCREMENT BY 2 MAXVALUE 50000;

创建序列 tbl2_tb21id_seq AS INT START WITH 1 INCREMENT BY 2 MAXVALUE 50000;

创建序列 tbl3_tbl3id_seq AS INT START WITH 1 INCREMENT BY 2 MAXVALUE 50000;

0 投票
0 回答
23 浏览

database-replication - 为什么有人会在多数据中心部署中进行同步多领导者复制?

在本书Multi-Leader Replication第 5 章 ( ) 的小节中,作者比较了多数据中心部署的单领导复制和多领导复制。ReplicationDesigning Data-Intensive Applications

在标题为 的段落中Tolerance of network problems,他写道:

A single-leader configuration is very sensitive to problems in this inter-datacenter link, because writes are made synchronously over this link

我很好奇为什么有人会跨数据中心进行同步复制。这不会使数据库的性能很差吗?

0 投票
1 回答
24 浏览

mysql - 复制中的Mysql ID重复问题

我尝试用 3 个系统实现 MySQL 复制。

在我的设置中,我有如下配对

因此,在此设置中,每个系统都是其他所有系统的主从系统。

每个系统也都有本地数据库。

现在在简单的情况下一切正常。但是在测试中我面临一个问题是......

假设某个时刻 System_3 断开连接,而不是此时所有 3 个系统都有一些条目,直到 id=3(主键和唯一)。

系统_1

ID 价值
1 美国广播公司
2 xyz
3 pqr

系统_2

ID 价值
1 美国广播公司
2 xyz
3 pqr

系统_3

ID 价值
1 美国广播公司
2 xyz
3 pqr

现在说当 System_3 离线时,它在本地表中创建了一些条目,该条目将在其表中使用 id 4,同时其他两个在线系统,即 System_1、System_2,在它们各自的表中创建了一些也将使用 id 4 的条目具有复制功能的表。

现在说 System_3 上线,它将读取其他系统的 bin 日志文件,并尝试插入其他系统所做的更改以在 id 4 处复制。但是繁荣 System_3 已经在 id 4 处具有值。这里复制停止了。

我的问题是如何解决这个问题。

0 投票
1 回答
118 浏览

amazon-web-services - AWS RDS 多主写入多个区域

是否有可能在 AWS RDS 中有类似于 DynamoDB 全局表的东西?

我知道使用 Aurora,我们可以在不同区域拥有多个只读副本,在同一区域拥有两个活动主服务器,但 AWS 是否为关系数据库提供了在两个不同区域有两个活动主服务器写入数据的可能性?