当前位置: 首页 > 知识库问答 >
问题:

当非主节点更新时,MariaDB群集到群集复制不起作用

卢才艺
2023-03-14

我有两个MariaDB Galera群集(PROD(服务器A、B和C)和DR(服务器1、2和3)。我有从PROD群集的主组件节点(服务器A)到DR群集的主组件节点(服务器1)的标准复制(主从)配置。每个群集都可以正常地独立于其他群集运行(也就是说,如果对一个节点进行更改,则群集中的所有节点立即复制更改)。

这种配置的目的是允许我将中继日志在从机上的应用延迟一段预定的时间。不幸的是,Mariadb10.1不支持MySQL5.6/7延迟中继日志应用程序。我使用Percona脚本来方便从进程的控制,以便在中继日志应用到DR集群之前改变时间量。

当直接对PROD集群的主组件节点(主服务器a)进行更改时,更改立即复制到DR集群的主组件节点(从服务器1),然后依次复制到DR集群内的所有节点(服务器2和3)。但是,如果我对PROD集群中不是主组件节点(服务器a)的节点(例如服务器C)进行更改,这些更改不会复制到DR主组件节点(从服务器1)。

我怀疑驱动二进制日志记录的进程没有监听通过端口4567上运行的wsrep集群复制进程显示的PROD集群中的更改,因此没有写入二进制日志文件。

是否有一种方法可以配置MariaDB,以便通过集群主组件节点(主服务器a)的二进制日志复制PROD集群任何节点上的更改?

谢了。

共有1个答案

戚育
2023-03-14

您需要在主节点上设置log-slave-updates(以及log-bin)。通过这样做,您将指示节点将从其他节点接收的更改记录到其二进制日志中,从而能够将更改复制到其从节点。

 类似资料:
  • 按照Seafile 集群文档中给出的推荐架构,Seafile 集群需要使用一个分布式、高可用的数据库和缓存集群。在本文档中,我们给出一个在 3 台服务器上部署 MariaDB 和 Memcached 集群的案例。 硬件和操作系统需求 最少使用3台服务器部署来集群,每台机器都应该有: 2核、4GB内存。 1个SATA磁盘用来存储操作系统。 1个SATA磁盘用来存储MariaDB数据。也可以把 Mar

  • 问题内容: 我对SQL(Server2008)的较低层次的了解是有限的,现在我们的DBA对此提出了挑战。让我解释一下这种情况:(我已经提到一些明显的陈述,希望我是对的,但是如果您发现有问题,请告诉我)。 我们有一张桌子,上面放着人们的“法院命令”。创建表(名称:CourtOrder)时,我的创建方式如下: 然后,我将非聚集索引应用于主键(以提高效率)。我的理由是,这是一个唯一字段(主键),应该像我

  • 有什么工作可以做吗?可能是一种远程通知每个节点将新节点添加到集群的方法吗?

  • 我正在开发一个使用Redis的API,它托管在ElastiCache上,有三个节点(一个主节点,两个副本)。周末,由于某种原因,主节点被切换到节点002(从001),这导致我的应用程序在尝试向Redis发送消息时出现只读错误。 有什么理由不手动操作就可以做到这一点?

  • 本文档介绍用 3 台服务器构建 Seafile 高可用集群的架构。这里介绍的架构仅能实现“服务高可用”,而不能支持通过扩展更多的节点来提升服务性能。如果您需要“可扩展 + 高可用”的方案,请参考Seafile 可扩展集群文档。 在这种高可用架构中包含3个主要的系统部件: Seafile 服务器:提供 Seafile 服务的软件 MariaDB 数据库集群:保存小部分的 Seafile 元数据,比如

  • 我使用他们的web UI在EMR上创建了一个AWS Spark2.2集群(这里是新手)。我知道我需要连接到主节点,以便开始发出pyspark命令来学习Spark。但是,当我尝试连接到主节点时,它给我一个错误。在浏览了internet之后,我发现使用可能有助于调试正在进行的操作,但我找不到任何有用的信息。下面是我的ssh调试日志。 有人能指出这里的问题是什么吗?编辑:我已经尝试过将端口22添加到安全