由于最近项目比较多,并且都需要自己部署运维Mysql,为了保证mysql数据的安全,那么数据备份就必不可少了。之前做mysql数据备份的时候,都是使用的xtrabackup,所以这次也不例外,由于需要备份的mysql服务器较多,每台都安装一遍xtrabackup的话,重复工作量就太大了,这时候,当然就想着将xtrabackup容器化,需要使用的地方,只需要拉取一下镜像,启动一下容器,感觉一下子就简单起来了呢。
不想动手的小伙伴,可以拉取我已经封装好的镜像,该镜像仅在mysql 5.7测试,mysql 8不支持,5.6是否可用,就各位自己测试啦
docker pull f763180872/xtrabackup
docker run -d --name mysql_backup --privileged \
-e BASE_DIR=/mnt/backup \
-e OPTION="-H127.0.0.1 -P3306 -uroot -ppasswd" \
-v /var/lib/mysql/data:/var/lib/mysql \
-v /mnt:/mnt \
f763180872/xtrabackup
参数说明:
BASE_DIR: 备份文件存放目录
OPTION: mysql连接参数-H IP地址 -P 端口号 -u 用户名 -p 密码
备份的话,建议关闭mysql的ssl连接,否则会出现连接失败的问题
备份规则为:每周三和周六凌晨三点全量备份,其余时间每隔两小时做一次增量更新,每次全量更新的时候,会把之前的全量与增量备份数据压缩后存放在BASE_DIR目录下,保留最近10天的备份数据,也就是最多三个全备数据
#手动构建
github:xtrabackup-docker
欢迎点小星星
git clone https://github.com/fanxcv/xtrabackup-docker.git
cd xtrabackup-docker
docker build -t name .