PXC集群 https://hub.docker.com/r/percona/percona-xtradb-cluster 安装PXC镜像 下载镜像或者导入本地镜像 docker pull percona/percona-xtradb-cluster docker load < /home/soft/pxc.tar.gz 修改镜像名字 docker tag docker.io/percona/percona-xtradb-cluster pxc 删除镜像 docker rmi docker.io/xx 查看镜像 docker images 创建内部网络 docker network create net1 docker network inspect net1 docker network rm net1 创建Docker卷 容器中的pxc节点映射数据目录的解决办法 docker volume create --name v1 查看 docker inspect v1 删除 docker volume rm v1 实战 docker volume create v1 docker volume create v2 docker volume create v3 docker volume create v4 docker volume create v5 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=ABC123456 -V V1:/var/lib/mysql --privileged --name=node --net=net1 --ip 172.18.0.2 pxc 数据库负载均衡 安装Haproxy镜像 docker pull haproxy 创建Haproxy配置文件 touch /home/soft/haproxy.cfg 创建Haproxy容器 docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name haproxy --privileged --net=net1 haproxy haproxy -f /usr/local/etc/haproxy/haproxy.cfg 进入一个允许容器 docker exec -it h1 bash haproxy -f /usr/local/etc/haproxy/haproxy.cfg CREATE USER 'haproxy'@'%’ IDENTIFIED BY ''; 配置keepalived 启动 Keepalived service keepalived start 数据库热备份 MYSQL常见的热备有LVM和XtraBackUp两种方案 全量备份和增量备份 创建数据卷 用于映射宿主机内和容器内路径 docker volume create backup docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged -e CLUSTER_JOIN=node2 --name=node1 --net=net1 --ip 172.18.0.2 pxc pxc全量备份步骤 apt-get update apt-get install percona-xtrabackup-24 全量备份 innobackupex --user=root --password=abc123456 /data/backup/full pxc全量恢复步骤 第一步 删除 mysql数据 rm -rf /var/lib/mysql/* 第二步 apply-back 回滚没有提交的事务 innobackupex --user=root --password=abc123456 --apply-back /data/backup/full/2018-04-15_05-09-07/ 第三步 copy-back还原的意思 innobackupex --user=root --password=abc123456 --copy-back /data/backup/full/2018-04-15_05-09-07/ 还原冷备份 数据 前提工作 docker stop node1 node2 node3 node4 node5 停掉5个pxc节点 docker rm node1 node2 node3 node4 node5 删除5个pxc节点 docker volume rmn v1 v2 v3 v4 v5 删除映射的数据卷 docker volume create v1 创建新的数据卷 启动一个pxc节点 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:/data --privileged -e CLUSTER_JOIN=node2 --name=node1 --net=net1 --ip 172.18.0.2 pxc 进入node1节点容器 docker exec -it node1 bash 执行冷还原 pxc全量恢复步骤 退出一下容器 exit 重启下node1节点 docker stop node1 docker start node1