手动构建percona-xtrabackup Docker镜像,并实现mysql数据备份

奚和光
2023-12-01

由于最近项目比较多,并且都需要自己部署运维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 .
 类似资料: