1

您好,我正在使用带有 10.1.12-MariaDB 的 Galera,SST 方法是 xtrabackup-v2

请不要推荐 SST=rsync 它不适合我

我有健康的集群 8 个节点,有时一个或几个节点出现故障。我刚service mysql开始,他们成功连接到集群,一切正常。

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

经过几次尝试后,我rm -fr /var/lib/mysql/*rm -fr /var/log/mysql/*没有,他们在系统日志中有这条消息:

mysqld: [ERROR] Binlog file '/var/log/mysql/mariadb-bin.003079' not found in binlog index, needed for recovery. Aborting.

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

  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. Aborting.

4

1 回答 1

1

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

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

听起来你被 SST 困住了。

看一下慢日志,看看某些查询是否花费了很长时间,以至于它们间接地迫使你拥有这么多机器。修复几个查询比添加额外的机器要“便宜”得多。

于 2016-03-26T19:26:37.647 回答