docker重新启动后,PXC启动不了解决方法

参考:

https://blog.csdn.net/Fupengyao/article/details/88931880

https://blog.csdn.net/super_ye_man/article/details/94037377

 

docker重启后docker start pxc节点后闪退,解决方法如下:

方法一:

1. 找出数据卷映射目录

docker inspect v1

显示结果如下:

2. 到映射目录下修改配置文件 grastate.dat

# cd到映射目录
cd /var/lib/docker/volumes/v1/_data
# 查看配置文件
cat grastate.dat

可以看到,safe_to_bootstrap的值为0,编辑这个文件,将这个值改为1

3. 再次启动 pxc容器

docker start -i node1

注意:只需要修改第一个pxc节点,就能启动成功,不需要全部修改。

PXC集群只有在超过一半数量的节点宕机,集群才会不可用,这是为了避免异地机房部署PXC集群,因为网络故障,导致一个PXC集群分裂成两个集群。所以说挂掉一两个节点没什么问题,只要不超过一半的节点就行。

 

方法二:

直接通过docker start node1 或者任何一个节点是启动不了的,原因是集群之前的同步机制造成的,启动任何一个节点,该节点都会去其它节点同步数据,其它节点仍处于宕机状态,所以该节点启动失败,这也是pxc集群的强一致性的表现。

删除所有节点docker rm node1 node2 node3 node4 node 5和数据卷中的grastate.dat文件

rm -rf /var/lib/docker/volumes/v1/_data/grastate.dat

rm -rf /var/lib/docker/volumes/v2/_data/grastate.dat

rm -rf /var/lib/docker/volumes/v3/_data/grastate.dat

rm -rf /var/lib/docker/volumes/v4/_data/grastate.dat

rm -rf /var/lib/docker/volumes/v5/_data/grastate.dat

重新执行集群创建的命令即可,因为数据都在数据卷中,所有放心,集群重新启动都数据仍然都在
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值