docker 单机部署 mysql PXC主主集群

PXC 模式,没有主从之分,每个数据库都可以进行读写,数据可以保持强一致性,执行时间较慢,由于
一般是强一致性,所以一般用于存储重要的信息,例如金融、电信、军工。至少需要三个实例,agent不能相互注册,只能注册到master

  • PXC的优点
    ①实现mysql数据库集群架构的高可用性和数据的 强一致性
    ②完成了真正的多节点读写的集群方案。
    ③改善了传统意义上的主从复制延迟问题,基本上达到了实时同步。
    ④新加入的节点可以自动部署,无须提供手动备份,维护起来很方便。
    ⑤由于是多节点写入,所以数据库故障切换很容易。
  • PXC的缺点
    ①新加入的节点开销大,需要复制完整的数据。采用SST传输开销太大。
    ②任何更新事务都需要全局验证通过,才会在每个节点库上执行。集群性能受限于性能最差的节点,
    也就是经常说的短板效应。
    ③因为需要保证数据的一致性,所以在多节点并发写时,锁冲突问题比较严重。
    ④存在写扩大问题,所有的节点上都会发生些操作。
    ⑤只支持innodb存储引擎的表。
    ⑥没有表级别的锁定,执行DDL语句操作会把整个集群锁住,而且也 kill 不了(建议使用Osc操作,即
    在线DDL)
    ⑦所有的表必须含有主键,不然操作数据时会报错。

一、下载pxc mysql docker 镜像

docker pull percona/percona-xtradb-cluster:5.7.30

二、创建单独网络

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

三、准备三个数据卷。注意要给目录授权。开发环境777

docker volume create --name v1
docker volume create --name v2
docker volume create --name v3

四、创建第一个节点

docker run -d -p 3301:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=yang --privileged --name=node1 --net=pxc-net --ip 172.18.0.2 percona/percona-xtradb-cluster:5.7.30

五、等待节点一完全启动后,创建另外两个节点

#创建第二个节点
docker run -d -p 3302:3306 -v v2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=yang -e CLUSTER_JOIN=node1 --privileged --name=node2 --net=pxc-net --ip 172.18.0.3 percona/percona-xtradb-cluster:5.7.30
#创建第三个节点
docker run -d -p 3303:3306 -v v3:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=yang -e CLUSTER_JOIN=node1 --privileged --name=node3 --net=pxc-net --ip 172.18.0.4 percona/percona-xtradb-cluster:5.7.30

六、使用sql管理管理工具依次连接三个mysql,进行创建DDL操作,查看是否同步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值