本文主要是介绍xtrabackup-docker实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
xtrabackup
引言
案例代码可以从https://github.com/WeiXiao-Hyy/k8s_example获取,欢迎Star!
环境准备
创建数据文件夹和备份文件夹
mkdir -p ~/GitCode/xtrabackup/mysql/data
mkdir -p ~/GitCode/xtrabackup/mysql/backup
制作MySQL:5.7运行环境
cd mysql-5.7docker build -t mysqld-prod:5.7 .
制作xtrabackup-2.4.20运行环境
cd xtrabackup-2.4.20docker build -t centos7.8_xtrabackup:v1 .
运行MySQL
docker run -d \
--name mysqld-prod \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3307:3306 \
-v ~/GitCode/xtrabackup/mysql/data:/var/lib/mysql \
mysqld-prod:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
运行xtrabackup
docker run -it -d \
--name centos7.8_xtrabackup \
--restart=always \
-e TZ=Asia/Shanghai \
-v ~/GitCode/xtrabackup/mysql/data:/data \
-v ~/GitCode/xtrabackup/mysql/backup:/backup \
centos7.8_xtrabackup:v1
查看MySQL容器的IpAddress以及执行创建数据库插入/删除操作
执行插入或删除操作才能让MySQL生成bin-log文件
docker inspect mysqld-prod # 查看IPAddress
全量备份
启动xtrabackup备份
# 172.17.0.2 为上一步查看的MySQL容器IPAddressinnobackupex \
--user=root \
--password=123456 \
--port=3306 \
--host=172.17.0.2 \
--socket=/data/mysql.sock \
--datadir=/data /backup
执行prepare操作
xtrabackup --prepare --target-dir=/backup/2024-03-07_21-32-37
用于恢复MySQL
rsync -avrP /backup/2024-03-07_21-32-37 /var/lib/mysql/
修改MySQL文件夹的权限
chown -R mysql:mysql /var/lib/mysql
参考资料
- https://blog.csdn.net/wfs1994/article/details/80396604#t3
- https://www.cnblogs.com/xiao987334176/p/13953912.html
这篇关于xtrabackup-docker实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!