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.2pxc
数据库负载均衡
安装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.2pxc
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