docker部署mysql集群

匿名 (未验证) 提交于 2019-12-02 22:02:20

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!