搭建PXC集群
PXC集群介绍
Percona XtraDB Cluster是业界主流的MySQL集群方案
PXC集群的数据同步具有强一直性的特点
PXC集群只支持InnoDB引擎
数据库也能运行在Docker中
MySQL放在容器中运行会不会有性能损耗?
因为Docker是轻量级的虚拟机,Docker既没有虚拟硬件,也安装独立的操作系统,只是给Docker绑定上了CPU和内存,Docker内部再去划分每个容器占有多少硬件资源,Docker直接使用宿主机的Linux内核与操作系统进行交互,所以容器IO的性能是不会有损失的
数据保存到容器中,如果容器崩溃,如何提取数据?
因为容器是可读写,数据库存部署在容器中,那么数据也就存在中容器中,宿主机无发访问容器内部的文件,如果容器故障,没有办法从容器中提取出来
但是可以对容器做目录映射或者挂载数据卷,把容器里面MySQL的数据目录映射到宿主机的文件夹下面,即便容器崩溃了,宿主机上存放着数据库的数据
开启防火墙端口
开启2388、7946和4789端口,重启Docker服务
firewall-cmd --zone=public --add-port=2377/tcp --permanent firewall-cmd --zone=public --add-port=7946/tcp --permanent firewall-cmd --zone=public --add-port=7946/udp --permanent firewall-cmd --zone=public --add-port=4789/tcp --permanent firewall-cmd --zone=public --add-port=4789/udp --permanent firewall-cmd --reload
下载PXC镜像
docker pull percona/percona-xtradb-cluster docker tag percona/percona-xtradb-cluster pxc #镜像改名 docker rmi percona/percona-xtradb-cluster #将原镜像删掉,就只剩下pxc镜像了
PXC的主节点容器
第一个启动的PXC节点是主节点,它要初始化PXC集群
PXC启动之后,就没有主节点的角色
PXC集群中任何节点都是可以读写数据