您好,我在 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”,需要进行恢复。中止。
我知道如何使用它,当我有无法连接到带有上述消息的集群的节点时,我可以恢复集群,所以我这样做:
- 关闭所有节点,只留下一个节点
- 关闭最后一个节点和
rm -fr/var/log/mysql/*
- 使用删除的 binlog 引导最后一个节点
- 将其他节点连接到集群
service mysql start
- 利润 - 一切正常
但问题是:
我不能关闭所有生产节点,也不能关闭最后一个节点,因为我有 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/