在宿主机创建数据库卷,将数据卷映射到某个数据库的节点上
docker volume create backup
停止一个数据库节点,删除容器,将数据卷映射到容器内部,然后在启动容器加入集群
docker stop node1
docker rm node1
docker run -d -p 3306:3306 -v v1:/var/lib/mysql -v backup:/data -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 --privileged --name=node1 -e CLUSTER_JOIN=node2 --net=net1 --ip 172.18.0.2 pxc
// CLUSTER_NAME=PXC 集群名字
// XTRABACKUP_PASSWORD=123456 数据库集群节点之间同步用到的密码
// --privileged 给最高的权限
// node1 为容器的名字,网段为net1 ip为172.18.0.2
// pxc 为镜像的名称
// -e CLUSTER_JOIN=node2 加入node2节点
// -v backup:/data 数据卷映射
#进入node1容器
docker exec -it node1 bash
#更新软件包
apt-get update
#安装热备工具
apt-get install percona-xtrabackup-24
#全量热备
innobackupex --user=root --password=abc123456 /data/backup/full
冷还原数据
停止其余2个节点,并删除节点
```shell
docker stop node2
docker stop node3
docker rm node2
docker rm node
```
node1容器中删除MySQL的数据
```shell
#删除数据
rm -rf /var/lib/mysql/*
#清空事务
innobackupex --user=root --password=abc123456 --apply-back /data/backup/full/2018-04-15_05-09-07/
#还原数据
innobackupex --user=root --password=abc123456 --copy-back /data/backup/full/2018-04-15_05-09-07/
```
重新创建其余2个节点,组件PXC集群