-
PXC集群介绍
- Pecona XtraDB Cluster 是业界主流的MySQL集群方案
- PXC集群的数据同步具有强一致性的特点
- PXC集群只支持InnoDB引擎
- PXC集群保存的是高价值的数据
-
数据库运行在Docker
- MySQL放在容器中运行会不会有性能损耗?
- Docker是轻量级的虚拟机,Docker既没有虚拟硬件,又没有安装独立的操作系统,只不过是给Docker线程绑定上了CPU跟内存,然后Docker内部再去划分每个容器占有多少硬件资源,Docker直接使用宿主机的Linux的内核和硬件交互,所以容器IO的性能是不会有太多损失的,所以把数据放在容器里面是不需要担心的。
- 数据库保存到容器中,如果容器奔溃,如何提取数据?
- 因为容器是可读写的,所以把数据库部署在容器里面,那么数据也就存放在容器里面,而且宿主机无法访问容器内部的文件,如果容器发生故障无法启动,我们也真没办法将数据从容器里面提取出来。
- 但是这个问题也能解决,给容器做目录映射,或者挂着数据卷,把容器里面的数据目录映射到宿主机的文件夹上面,即便容器奔溃了也没有关系,因为在宿主机上存放着数据库的数据,无非就是删掉故障的容器,然后重新创建一个容器,把宿主机的目录挂载在新的容器即可。
- MySQL放在容器中运行会不会有性能损耗?
-
开启防火墙端口
- 2377端口:只是让其他端口能加入到swarm中集群的端口,
- 7946和4789端口:swarm虚拟网络之间通讯的端口,并且这两个端口还要开通tcp跟upd协议。
-
必须要开启防火墙端口
每个虚拟机节点都要开放Swarm集群的三个端口,reload防火墙之后,还要重启每个节点的Docker服务,然后才能创建PXC容器,否则就会出现因为防火墙的原因,导致从节点无法连接主节点容器。
-
下载安装最新的PXC镜像
-
-
镜像里面已经包含了percona数据库,所以不需要再单独安装数据库了。
-
包括配置Replication集群的时候,镜像里面也包含了MySQL数据库。
-
tag标签可以修改镜像的名称
-
然后再删除rmi原有镜像的名称即可
-
建议下载5.7.21版本的PXC镜像
-
-
PXC的主节点容器
-
第一个启动的PXC节点是主节点,它要初始化PXC集群
-
PXC启动之后,就没有主节点角色了
-
PXC集群任何一个节点都是可以读写数据的
-
-
创建主节点容器
- 创建主节点之后,稍等一会儿,才能连接。因为需要初始化很多东西。
- -d 是不需要进入交互界面,MySQL数据库直接在后台运行
- -p 端口的映射,MySQL的端口号是3306,需要把端口映射到宿主机的9001端口上
- 使用Navicat连接9001的端口,就能连接数端口为3306的MySQL了
- -e 给容器传入数据
- XTRABACKUP_PASSWORD= abc123456 PXC集群之间数据同步的密码。只有数据正确了才能进行同步。
- -v 数据卷的挂载。数据卷可以简单的理解为虚拟的磁盘,这个虚拟的磁盘挂载到容器的某一个目录上,容器在保存数据的时候,就会在这个目录保存数据,保存到了这个数据卷上面了。
- --net 是集群名称
-
创建从节点容器
-
必须主节点可以访问了,才能创建从节点,否则会闪退
-
-
跟主节点的命令几乎没区别,只是多加了第4个-e,CLUSTER_JOIN表示要连接主节点pn1
-
搭建PXC集群
最新推荐文章于 2024-04-19 10:49:22 发布