galera集群中mariadb无法启动处理方法

【环境】

云平台版本:openstack queens版本

架构:ARM

数据库类型: Mariadb galera集群,3个节点

数据库版本:10.3.20-MariaDB

【现象】

三控的云平台集群被非正常关机(机房直接断电)后,云平台启动时报500错误,此错误对应mariadb集群异常。 通过手动指定启动节点方法,成功启动了controller2、controller1节点数据库,在起controller3 mariadb时,组件无法启动,而且容器日志与服务日志均未有ERROR报错。

容器状态如下:

检查docker logs mariadb容器日志,无报错:

检查mariadb.log服务日志,也无报错。

【处理思路】

  1. mariadb没有报错不好排查,关闭节点wsrep同步参数 wsrep_on = OFF

  2. 先恢复组件状态

  3. 之后开启wsrep参数,让节点与集群同步

  4. 最后检查集群整体状态,正常是三副本

【恢复步骤】

以下操作都在controller3节点执行

1、备份mariadb配置及数据文件

cp  /etc/mariadb/galera.cnf   /etc/mariadb/galera.cnf.bak

cp  -raf  /var/lib/docker/volumes/mariadb/   /var/lib/docker/volumes/mariadb_bak/

2、关闭wsrep_on集群参数,并重启组件

sed -i 's/wsrep_on = ON/wsrep_on = OFF/'  /etc/mariadb/galera.cnf

docker restart  mariadb

3、再检查mariadb.log服务日志,已经出现can't init tc.log报错。之后我们处理相应报错

tail -f  /var/lib/docker/volumes/kolla_logs/_data/mariadb/mariadb.log

4、删除tc.log ib_logfile_0 ib_logfile_1这几个集群数据同步日志

cd  /var/lib/docker/volumes/mariadb/_data/

rm -rf tc.log  ib_logfile0   ib_logfile1

docker  restart  mariadb

5、间隔一分钟后,检查组件已经up。 但wsrep_on = OFF参数仍是关闭,下一步我们开启参数

6、检查wsrep_on参数,并再次重启mariadb,检查组件与mariab galera集群状态

mv  /etc/kolla/mariadb/galera.cnf.bak   /etc/kolla/mariadb/galera.cnf

docker restart  mariadb

docker  ps  -a  |  grep  mariadb

tail -f  /var/lib/docker/volumes/kolla_logs/_data/mariadb/mariadb.log     #看到节点已经ready for connections

7、登录controller1节点,检查数据库集群状态

docker exec -it mariadb mysql -u root -p密码   -e "show status like 'wsrep%';"

8、检查云平台其它服务也正常,web页面登录正常。

【总结】

​   后续galera集群中某个节点组件无法启动,mariadb.log又没报错时,可尝试关闭wsrep_on = ON参数,让组件先以单节点形式启动,再考虑同步集群数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值