问题标签 [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 回答
455 浏览

azure-cosmosdb - CosmosDb 如何为多主机环境中的写入操作向 RU 收费?

具有单个区域的多主数据库: SDK 报告 ~10 RU 以执行写入操作
具有 5 个区域的多主数据库::SDK 报告 ~46.86 RU 用于相同的操作(~5x 以将复制合并到所有区域。有意义)

如果你有一个以 10k RU 配置的集合,cosmos 是否为每个区域配置 10k RU?微软文档会建议这样做,但是 SDK 在写入本地区域时会报告所有区域成本,这看起来有点奇怪/令人困惑?此外,为了将写入复制到这些区域,我看不到其他区域中的任何其他写入活动。

在此处输入图像描述

问题:您是支付本地写入区域的 46RU 成本,还是 SDK 报告的成本本质上除以您拥有的区域数,每个区域都支付成本?那么在上述有五个区域的场景中,写入操作是在每个区域中花费 10RU 还是在本地写入区域中一次性收费约 47 RU?

0 投票
1 回答
1625 浏览

postgresql - (Postgresql) make table trigger function insert更改行的ID值到日志表中,用于自定义复制

对于 Postgresql——最终是 Sybase ADS——我有可以使用自制触发器复制的表。触发器有一个函数应该记录 INSERT UPDATE DELETE 更改的信息,其中包括 I/U/D 操作和更改的行的 ID。我正在使用带有名字列和自动递增 ID 的测试表来测试双向复制。

如果我对 NAME 表进行插入,例如添加 autoID 为“1”的“JOHN”,我是否能够将该 ID 值甚至可能“JOHN”插入到日志表中?我正在查看 OLD.ID 或 NEW.ID 选项,但我不知道它是否可以这样工作。我的触发器/功能代码是:

这最终是为了使用触发器进行双向复制。感谢您的任何考虑或指导。我会根据需要进行编辑。

0 投票
1 回答
290 浏览

postgresql - 在 PostgreSQL 中通过 pglogical 使用多主控时的不同选择结果

有两个 PostgreSQL 9.6 节点通过 pglogical 相互订阅。如果节点 A 在复制表中插入一行,则节点 B 会看到它,反之亦然。

但是,当我在一个节点上更新一行时,SELECT两个节点上的后续查询将不断返回不同的结果——当前的结果和之前的一些结果。

此外,两个节点的日志中都有关于复制冲突的日志条目。

为什么会发生这种情况,我该如何解决?

upd:将 pglogical.conflict_resolution 设置为 last_update_wins 会有所帮助。也可以考虑其他解决冲突的选择

0 投票
1 回答
1081 浏览

ubuntu-16.04 - 多主复制 - 如何在连接期间修复不正确的凭据问题(ldap_sasl_bind_s failed (49))

我正在尝试在两个 LDAP ubuntu 16.4服务器(ldap2 和 ldap3)上启动多主复制。完成整个参数化后,我无法在服务器之间建立连接:

两个方向都出现同样的错误。

使用以下命令验证凭据已成功完成(无错误):

我已经阅读了所有现有的教程和论坛,但没有结果。

我会感谢任何提示。

0 投票
1 回答
1059 浏览

mariadb - 具有数据分片和集群的 mariadb 复制

我们搭建了三节点的mariaDB galera集群,基本上是一个多主节点,在集群中的节点之间进行数据的同步复制。最终,可以通过集群中的任何节点进行读/写。但是,它并没有解决我们的问题。由于 mariadb 有多种风格,例如 mariaDB maxscale for sharding ,我们也可以在 galera 集群中应用异步复制。同时我们也可以利用 galera 集群上的 ReaWrite splitter 和 schemaRouter 来分配负载。如何在 MariaDB 的帮助下实现以下要求 数据不应该分布在每个节点中,这意味着数据复制应该是可控的。因为 MariaDb 默认情况下复制到所有从属服务器(如果是主从),并且所有服务器都有galera 的数据相同。在 galera 的情况下,主要关注的是我们需要在所有节点中拥有大型硬件。我同意我们可以为不同的客户端实现高吞吐量,但数据不是分布式的,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。t 分布式,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。t 分布式,实际上是镜像的。同样,在主从存在单点故障瓶颈的情况下。请建议,是否有任何替代方法可以提供高可用性,因为我们的应用程序是读/写密集型的。所以我们需要将负载分布在多个节点上。在读/写操作的情况下,数据应该根据复制因子分布/聚合到多个服务器。如何使用mariaDB实现。

0 投票
2 回答
1745 浏览

postgresql - PostgreSQL 10 逻辑复制触发功能未执行

我已经在 PostgreSQL 10 中的 2 个不同服务器中的 2 db 内实现了逻辑复制,并且我知道序列不同步,因此我在两个数据库中都创建了这样的触发器函数:

ID实际上在 DB1 甚至在 DB2 中使用奇数的事实的一部分,为什么在第二个数据库中没有触发该函数?

如果我在 DB1 中插入一条记录,我有ID3 个,它会进行复制,并且在 DB2 中我有相同的记录ID,我将检查 DB2 中的序列,它仍然是 1 而不是 3。

现在我要在 DB2 中插入一条记录,我有ID2 条,然后是 4 条。

对于我想要实现的是一个主主系统,以防万一它出现故障,我可以在第二个中写我不太在意,但在我要恢复数据库时考虑以防万一发生灾难在已关闭的服务器中(可能带有 pg-dump 备份)我需要更新所有序列以从以前的位置开始写入。

0 投票
1 回答
467 浏览

python - Python mysql复制客户端不显示值

我们正在为 MySQL 5.6 使用 Galera 集群。
我们一直在使用 python mysql 复制客户端(https://github.com/noplay/python-mysql-replication)来跟踪数据库的所有更改,主要用于调试。这曾经工作得很好。我们得到的数据如下所示:

最近我们更改了集群配置。我们添加了以下两个参数(基于此处的建议https://severalnines.com/blog/how-set-asynchronous-replication-galera-cluster-standalone-mysql-server-gtid):

集群仍然正常工作(尽管我们还不能设置异步从属)。但是 python 复制客户端的行为发生了变化。现在我们没有像之前那样在事件中获得任何值。这就是我们现在得到的全部:

“更改的行”始终保持为 0。很可能更改为 GTID 模式影响了客户端。是否仍然可以像之前那样获得人类可读的值?

监控复制事件的代码如下:

0 投票
0 回答
2384 浏览

postgresql - Postgresql 10.x 如何配置Master - Master 复制

我需要配置 Master - Master Postgresql 复制服务器。我猜 psql 10 或 11 将用于此。

但是我找不到任何关于主主配置的信息,只有主从。

以下是逻辑复制设置的快速示例:

https://www.postgresql.org/docs/10/logical-replication-quick-setup.html

最后的步骤是:

  • 创建出版物...

  • 创建订阅...

此示例看起来像主从示例 - 一个数据库实例将“发送”数据,第二个 - “接收”。

主 - 主副本应该采取哪些步骤?有没有人有任何工作配置的例子?

0 投票
0 回答
666 浏览

postgresql - Postgres 中的多节点集群

有没有一种方法可以像 Oracle RAC 一样在 Postgres 中设置多节点集群:

Oracle RAC 允许多台计算机在访问单个数据库时同时运行 Oracle RDBMS 软件,从而提供集群。

到目前为止,我浏览了几篇文章,但似乎 Postgres 不支持它。PGPool 是我们可以进行负载平衡的唯一方法,但它与 RAC 不同。

0 投票
0 回答
524 浏览

ssl - 带有 tls 的 openlap 2.4 syncrepl

我已经为 config 数据库和 ldap 数据库工作了 syncrepl,让我们只专注于 ldap 数据库。在这个解决方案中,我们需要在多主配置中的消费者和提供者之间进行加密。

在没有 tls 的情况下我可以正常工作,这是 syncrepl 的非 tls 配置

更新 server1 更新 server2 和更新 server2 更新 server1 一切正常

当尝试用自签名证书替换此配置并使用超过 636 的 ldaps 时,它会失败

这是 ldaps syncrepl 配置

这不起作用,错误消息

有任何想法吗?