【备份脚本】
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
打赏