【备份脚本】

docker exec 2e4d21f88ef3 sh -c 'exec mysqldump -uroot -pxxx --databases halodb' > /root/backup/halodb_`date +%F`.sql

说明:上面的脚本只备份了halodb数据库实例,如果需要备份全部数据库,则把–databases halodb 改为–all-databases

【定时备份】

crontab -e

0 2 * * * find /root/backup/ -mtime +9 -name "*.sql" -delete && docker exec 2e4d21f88ef3 sh -c 'exec mysqldump -uroot -pxxx --databases halodb' > /root/backup/halodb_`date +%F`.sql

通过linux的crontab,每天凌晨2点先删除10天前sql文件,然后再执行备份。

【还原备份】
docker cp/root/backup/halodb_2022-07-12.sql mysql:/var/backup/
将备份文件拷贝到容器的备份目录中

docker exec -it mysql bin/bash
进入容器

mysql -uroot -pxxx -A
进入mysql

source /var/backup/halodb_2022-07-12.sql
执行还原

或者容器外还原
mysql -uroot -proot < /root/backup/halodb_2022-07-12.sql

打赏
支付宝 微信
上一篇 下一篇