Linux ·

Docker 搭建 PXC 集群实现负载均衡

1. 创建 PXC 集群

1.1 拉取 pxc 镜像

1.2 给 pxc 集群创建 docker 内部网络

1.3 给 pxc 集群创建 docker 卷

1.4 创建 pxc 容器节点

1.5 创建 pxc 容器集群

以 node1 为基础

CLUSTER_JOIN=node1 : 加入 node1节点.

创建节点时需等前一个节点mysql 初始化完成.

2. 负载均衡

2.1 拉取haproxy镜像

2.2 创建 haproxy 配置文件

2.3 创建 haproxy 容器

进入 haproxy1 容器,指定haproxy 启动配置指令

创建haproxy 的 mysql 用户

2.4 haproxy 监控:

http://ip:4001/dbs

pxc 集群重启

重启docker服务和pxc集群容器后,发现pxc集群出现闪退

解决方法:

safe_to_bootstrap参数被PXC用来记载谁是最后退出PXC集群的节点。

比如node1是最后关闭的节点,那么PXC就会在把safe_to_bootstrap设置成1,代表node1节点最后退出,它的数据是最新的。

下次启动必须先启动node1,然后其他节点与node1同步。

如果在PXC节点都正常运行的状态下关闭宿主机Docker服务或者电源,那么PXC来不及判断谁是最后退出的节点,所有PXC节点一瞬间就都关上了,哪个节点的safe_to_boostrap参数就都是0。

解决这个故障也很好办,那就是挑node1,把该参数改成1,然后正常启动node1,再启动其他节点就行了。

查看node1挂载目录:

修改 grastate.dat 文件里的 safe_to_bootstrap: 0 改为 safe_to_bootstrap: 1

重新启动pxc集群所有节点,注意node1节点顺序

参与评论