mysql - Galera 节点无法连接到集群

标签 mysql mariadb galera

您好,我在 10.1.12-MariaDB 中使用 Galera,SST 方法是 xtrabackup-v2

请不要推荐 SST=rsync 它对我不起作用

我有健康的集群 8 个节点,有时一个或几个节点出现故障。 我只是在 service mysql 上启动,他们成功连接到集群,一切正常。

但有时,当断开连接的节点几天后我无法将它们连接到集群。

经过几次尝试 im rm -fr/var/lib/mysql/* & rm -fr/var/log/mysql/* 什么也没有,他们有系统日志中的这条消息:

mysqld:[错误] 在二进制日志索引中找不到二进制日志文件“/var/log/mysql/mariadb-bin.003079”,需要进行恢复。中止。

我知道如何使用它,当我有无法连接到带有上述消息的集群的节点时,我可以恢复集群,所以我这样做:

  1. 关闭所有节点,只留下一个节点
  2. 关闭最后一个节点和rm -fr/var/log/mysql/*
  3. 使用删除的 binlog 引导最后一个节点
  4. 将其他节点连接到集群service mysql start
  5. 利润 - 一切正常

但问题是:

我不能关闭所有生产节点,也不能关闭最后一个节点,因为我有 8 个节点来处理大站点流量,而一个正在运行的节点在所有流量都流向它时立即关闭(当然是因为过载)

问题是:

请帮帮我。当节点无法连接并出现错误时如何将节点连接到集群 mysqld: [ERROR] Binlog file '/var/log/mysql/mariadb-bin.003079' not found in binlog index, needed for recovery.中止。

最佳答案

gcache 有多大?这控制了 IST 是否可以用于重新附加节点。

expire_log_days 的值是多少?是不是太小了,没等你尝试连接,binlog就丢失了?如果您丢失了一个,并且需要另一个用于 SST,您仍然有 6 个可以为“大站点”提供服务。听起来您需要将部署增加到大约 10 个节点,以便即使在节点中断时也能处理该站点。

听起来您好像被 SST 困住了。

查看慢日志,看看是否某些查询花费的时间太长,以至于它们间接地迫使您拥有如此多的机器。修复几个查询比添加额外的机器“便宜”得多。

关于mysql - Galera 节点无法连接到集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36195742/

相关文章:

Mysql:从二进制 ip 和子网获取 IPv6 二进制网络掩码

python - 我应该安装 'MySQL-Python' 连接器中的哪一个?

php - 如何从数据库中获取日期并显示而不重复?

mysql - SSIS - MySQL 源代码 : Could not create a managed connection manager

php - 如何使用 PHP 和 MySQL 限制用户输入 10 个或更少的关键字?

mysql - 我可以拥有 HA MySQL/MariaDB Slave 吗?

mariadb - Galera 复制忽略表

python - (Python) 编辑 SQL 数据库中的表?

java - Hibernate 时间戳 - 毫秒精度

mysql - 集群数据源从 JBoss AS 5 迁移到 Wildfly 8