PXC集群搭建

之前我们搭建了四个Docker虚拟机

并且把四个docker虚拟机加入了swarm集群。

Docker环境的搭建

接下来我们学习把PXC集群搭建在Dokcer容器中。

Percona XtraDB Cluster是什么?

PXC是percona公司的开源项目,是业界主流的数据库集群解决方案。

具有数据的强一致性,仅支持InnoDB引擎

内部使用的数据库是pecona server 是一款衍生版的MySQL数据库,读写性能更强。

PXC集群如何搭建

1.在已经加入swarm集群的Docker虚拟机上pull下PXC镜像。

docker pull percona/percona-xtradb-cluster:5.7.21
docker tag percona/percona-xtradb-cluster:5.7.21 pxc
docker rmi percona/percona-xtradb-cluster:5.7.21

2.创建主节点Docker容器。

docker run -d -p 9001:3306 
-e MYSQL_ROOT_PASSWORD=abc123456
-e CLUSTER_NAME=PXC1 
-e XTRABACKUP_PASSWORD=abc123456 
-v pnv1:/var/lib/mysql --privileged 
--name=pn1 
--net=swarm_mysql
pxc

-d 指后台运行PXC,而不是进入docker的bash页面

-p 指端口的映射,把3306映射到9001端口

-e 中的配置是用户密码,集群名称,同步数据的密码

-v 指挂载数据卷的名称 以及数据卷在宿主机中的目录。

–privileged 指对数据卷有读写的权限。

–net 指出该容器加入的网络。

3.创建从节点容器

docker run -d -p 9001:3306 
-e MYSQL_ROOT_PASSWORD=abc123456 
-e CLUSTER_NAME=PXC1 
-e XTRABACKUP_PASSWORD=abc123456 
-e CLUSTER_JOIN=pn1 
-v pnv2:/var/lib/mysql 
--privileged 
--name=pn2 
--net=swarm_mysql 
pxc

这里跟上面不同的是,-e cluster_join =pn1 指出了该节点为从节点

加入pn1为管理节点的集群。

这样PXC集群就搭建完毕了。

搭建PXC集群中遇到的问题

在某次重启机器之后,发现主节点无法启动。

分析之后发现应该是因为从节点最后关闭,在PXC集群中最后关闭的从节点会把safe_to_bootstrap置为1,表示该节点应该为主节点。后来我去查找,发现从节点并不为1。经过分析是PXC有一个脚本,如果当前虚拟机不是管理节点,则该容器的safe_to_bootstrap不会变为1,但是主节点的已经修改为0。接下来只要修改了主节点的参数就可以重新启动了。

你可能感兴趣的:(数据库集群的部署)