当pxc所有节点都突然挂了,或者使用单节点的容器隔离搭建的集群,突然出现故障导致集群无法自动重启

此时你就需要重启集群了,在启动之前需要删除或者重命名4个文件

需要找数据库存放数据的目录,一般用docker都会创建数据卷,进入数据卷的_data目录进行重命名


cd /var/lib/docker/volumes/v1/_data

 备份

mv grastate.dat grastate.dat.back
mv galera.cache galera.cache.back
mv grastate.dat grastate.dat.back

如果是Ubuntu则将ubuntu.pid重命名或者删除

mv ubuntu.pid ubuntu.pid.back

然后启动第一个节点  需要自己修改对应参数  比如数据卷、root密码、集群加入密码、节点名

docker run -d -e MYSQL_ROOT_PASSWORD=123456 \
      -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 \
      -v v1:/var/lib/mysql -v backup:/data \
      --privileged --name=node1 --network=host  --restart=always pxc

后面两个节点不用和节点一一样删除4个文件,pxc集群只要有一个节点存在都运行动态加入节点 

接着启动第二个节点

docker run -d -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=192.168.117.230 -v v2:/var/lib/mysql -v backup:/data --privileged --name=node2 --net=host --restart=always pxc

 接着启动第三个节点

docker run -d -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=192.168.117.230 -v v3:/var/lib/mysql -v backup:/data --privileged --name=node3 --net=host --restart=always pxc

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐