Mysql备份与还原

Docker下Mysql的热备份、冷还原

作者: yym439 时间: 2019-10-31

Mysql热备份

percona/percona-xtradb-cluster版本号5.7.21,经测试高版本有问题。

创建备份数据卷

docker volume create backup

创建PXC容器映射备份数据卷

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=123456 -e CLUSTER_JOIN=node2 -v v1:/var/lib/mysql -v backup:/data –privileged –name node1 –net=net1 –ip 172.18.0.2 pxc

PXC容器中安装XtraBackup,并全量备份

使用root权限进入PXC容器:

docker exec -it -u 0 node1 bash

apt-get update

apt-get install percona-xtrabackup-24

innobackupex –user=root –password=123456 /data/backup/full

Mysql冷还原

停止其余节点容器

docker stop node2  node3  node4 node5
docker rm node2 node3 node4 node5
docker volume rm v2 v3 v4 v5

删除PXC容器数据

docker exec -it node1 bash

rm -rf /var/lib/mysql/*

回滚没有提交的事务

innobackupex –user=root –password=123456 –apply-back /data/backup/full/2019-10-10_05-09-07/

还原数据

innobackupex –user=root –password=123456 –copy-back /data/backup/full/2019-10-10_05-09-07/

重启节点

docker stop node1

docker start node1

参考博客:

https://blog.csdn.net/belonghuang157405/article/details/80905657

https://www.ornnth.com/2018/11/18/Docker-7-%E7%83%AD%E5%A4%87%E4%BB%BD%E6%95%B0%E6%8D%AE/

https://blog.wesbin.com/archives/docker_hot_backup_mysql.html