Replication方案:
速度快 弱一致性 低价值数据
日志 新闻 帖子
PXC 方案
速度慢 强一致性 高价值
订单 账户 财务
PXC数据库任何一个节点都是可以读写的。
使用PXC技术,创建mysql集群,
使用docker仓库中pxc的官方镜像。
下载 | 本地导入
# docker仓库下载安装 docker pull percona/percona-xtradb-cluster # 本地镜像安装 docker load < /home/soft/pxc.tar.gz # 修改名字 docker tag 原名 新名字 创建内部网络
# 搭建5节点的sql集群 # 出于安全考虑,需要给PXC集群实例创建docker内部网络 # 创建网段 docker network create net1 # 查看相关信息 docker network inspect net1 # 删除网段 docker network rm net1 # 如 docker network create -subnet=172.18.0.0/24 net1 创建docker卷
# 容器内不要保存数据,将数据保存到宿主机上 # 使用目录映射技术 # 创建 数据卷 docker volume create --name v1 # 查看数据卷详情,可以查看路径 docker inspect v1 创建PXC容器
docker run -d -p 3306:3306 -v v1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc -v 目录映射 MYSQL_ROOT_PASSWORD 密码(用户名只能root) CLUSTER_NAME 集群的名字 XTRABACKUP_PASSWORD 容器同步密码 --privileged 给最高权限 --name=node1 容器名字 --net=net1 指定网段 --ip 172.18.0.2 网段内ip pxc 镜像名字 PXC其他节点创建
docker run -d -p 3307:3306 # 端口错开 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -e CLUSTER_JOIN=node1 -v v3:/var/lib/mysql --privileged --name=node3 --net=net1 --ip 172.18.0.3 pxc # 端口错开 # 加入集群 主节点node1 # -v3 # name node3 # ip 172.18.0.3 数据库负载均衡
Haproxy 一个中间件 转发器 docker pull haproxy # 本机创建一个配置文件,参考 https://zhangge.net/5125.html touch /../haproxy.cfg 双机热备
keepalived 安装在Haproxy所在容器之内 宿主机也需要安装keepalived,为的是映射网卡内的虚拟ip /etc/keepalived/keepalived.conf PXC全量备份
备份工具 XtraBackup 文章来源: https://blog.csdn.net/sunt2018/article/details/91958220