首页 > 数据库技术 > 详细

mysql-docker备份

时间:2020-06-22 20:53:13      阅读:74      评论:0      收藏:0      [点我收藏+]
crontab -e
0 8 * * * docker exec mysql_container mysqldump -uroot -proot_password database_name > /var/backups/mysql/$(date +%Y%m%d_%H%M%S).sql
mysql_container 为你的数据库容器名
mysqldump 是mysql数据库导出数据的指令
-u 填写root账号
-p 填写root密码
database_name 需要备份的数据库名
/var/backups/mysql/$(date +%Y%m%d_%H%M%S).sql 备份文件,后面是文件名的格式
注:mysql备份的时候我使用了docker exec -it mysqldump ... 这样的命令去做bash脚本,因为-i参数是有互动的意思,导致在crontab中执行定时任务的时候,没有输出数据到sql文件当中。
所以使用crontab定时的对docker容器进行备份命令的时候不要添加-i参数。

建议把数据库备份的命令写成一个bash脚本。在crontab这里调用就好了
vim /var/backups/mysql/mysqldump.sh文件
docker exec mysql_container mysqldump -uroot -pmypassword database_name > /var/backups/mysql/$(date +%Y%m%d_%H%M%S).sql
crontab -e 
0 20 * * * /var/backups/mysql/mysqldump.sh

mysql备份优化
修改脚本
export mysqldump_date=$(date +%Y%m%d_%H%M%S) && docker exec mysql_container mysqldump -uroot -pmypassword database_name> /var/backups/mysql/$mysqldump_date.sql && gzip /var/backups/mysql/$mysqldump_date.sql
find /var/backups/mysql/ -name "*.sql" -mtime +15 -exec rm -f {} \;

数据恢复
docker exec -i mysql_container mysql -uroot -proot_password database_name < /var/backups/mysql/20200619_120012.sql

参考链接
https://www.cnblogs.com/Johnson-lin/p/13178028.html

mysql-docker备份

原文:https://www.cnblogs.com/kylingx/p/13178889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!