docker中mysql pxc集群

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