Docker 部署Mysql 高可用集群(PXC)

Mysql集群(PXC)
Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法。

PXC特性
同步复制,事务要么在所有节点提交或不提交。
多主复制,可以在任意节点进行写操作。
在从服务器上并行应用事件,真正意义上的并行复制。
节点自动配置,数据一致性,不再是异步复制。
PXC最大的优势:强一致性、无同步延迟

PXC的优点
服务高可用;
数据同步复制(并发复制),几乎无延迟;
多个可同时读写节点,可实现写扩展,不过最好事先进行分库分表,让各个节点分别写不同的表或者库,避免解决数据冲突;
新节点可以自动部署,部署操作简单;
数据严格一致性,尤其适合电商类应用;
完全兼容MySQL;

实现

1、PXC镜像安装--》本身就是mysql镜像的封装

2、网络,专门搭建一个网段来管理mysql集群

3、持久化处理,挂载实现

4、容器创建方式

步骤:

//拉镜像

docker pull percona/percona-xtradb-cluster:5.7.21

//名字太长了 打个标签

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

//查看宿主机的network

docker network ls

//创建一个mysql专用的网段

docker network create --subnet=172.20.0.0/24 pxc-net

Docker 部署Mysql 高可用集群(PXC)_第1张图片

//查看当前数据卷

docker volume ls

//创建3个数据卷

docker volume create --name v1

docker volume create --name v2

docker volume create --name v3

//查看数据卷信息

docker volume inspect v1

 Docker 部署Mysql 高可用集群(PXC)_第2张图片宿主机的挂在地址

//启动命令 创建三个容器

docker run -d -p 3311:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=mysql_node1 --net=pxc-net --ip 172.20.0.2 pxc

docker run -d -p 3312:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=mysql_node1 --privileged --name=mysql_node2 --net=pxc-net --ip 172.20.0.3 pxc

docker run -d -p 3313:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=mysql_node1 --privileged --name=mysql_node3 --net=pxc-net --ip 172.20.0.4 pxc

部署完成

Docker 部署Mysql 高可用集群(PXC)_第3张图片

 参考:docker搭建mysql(集群+高可用+热备份)_南美鼠的博客-CSDN博客_docker mysql 高可用

 

你可能感兴趣的:(mysql,docker,数据库)