使用mysqldump+windows定时任务进行备份mysql容器数据
备份步骤
- 备份.sql文件到容器内部的目录
- 拷贝文件到宿主机目录下,我想要存放备份的路径是"D:\workSpace\1_development_environment\docker_data\mysql\backup\data"
- 使用windows定时任务实现每天定时定点执行bat脚本
实现步骤
创建一个bat脚本,我本机的路径是 "D:\workSpace\1_development_environment\docker_data\mysql\backup\script\backup.bat",内容如下,目标效果是在"D:\workSpace\1_development_environment\docker_data\mysql\backup\data"文件夹下按照每天的日期生成名为carb_ignite-YYYY-MM-DD.sql
bash@echo off REM 获取当前日期,格式为yyyy-MM-dd set "dt=%date:~0,4%-%date:~5,2%-%date:~8,2%" REM 1. 在容器内创建备份目录(如果已存在不会有影响) docker exec mysql mkdir -p /backup REM 2. 备份数据库到容器内的 /backup 目录 docker exec mysql sh -c "mysqldump -uroot -proot --databases carb_ignite > /backup/carb_ignite-%dt%.sql" REM 3. 将备份文件拷贝到本地 docker cp mysql:/backup/carb_ignite-%dt%.sql D:\workSpace\1_development_environment\docker_data\mysql\backup\data\carb_ignite-%dt%.sql echo 备份完成,文件已保存到 D:\workSpace\1_development_environment\docker_data\mysql\backup\data\carb_ignite-%dt%.sql pause创建windows定时任务
打开任务计划程序页面(或win + r 输入 taskschd.msc)

点击创建任务

常规标签下:填写基本信息

触发器标签下:定义每天12点执行

操作标签下:设置信息,注意:"起始于选项"的值是.bat存放的路径,所以我要填D:\workSpace\1_development_environment\docker_data\mysql\backup\script\,最后面的\一定要有!!!

设置成功后,就可以在"任务计划程序库"中查看到了,当然可以右击立即运行查看效果

备份后的结果,在容器中备份成功、在宿主机目标文件夹下备份成功


补充:mysqldump常用操作
备份全部数据库的数据和结构
shellmysqldump -uroot -proot -A > /backup/all_db.sql备份全部数据库的结构(-d参数)
shellmysqldump -uroot -proot -A -d > /backup/all_db.sql备份全部数据库的数据(-t参数)
shellmysqldump -uroot -proot -A -t > /backup/all_db.sql备份单个数据库的数据和结构,以备份carb_ignite库为例
shellmysqldump -uroot -proot carb_ignite > /backup/carb_ignite.sql备份单个数据库的结构(-d参数)
shellmysqldump -uroot -proot carb_ignite -d > /backup/carb_ignite.sql备份单个数据库的数据(-t参数)
shellmysqldump -uroot -proot carb_ignite -t > /backup/carb_ignite.sql备份某个数据库的多个表的数据和结构(如果只结构 -d,如果只数据 -t)
shellmysqldump -uroot -proot carb_ignite table1 table2 > /backup/carb_ignite_tables.sql一次性备份多个数据库(如果只结构 -d,如果只数据 -t)
shellmysqldump -uroot -proot --databases database1 database2 > /backup/databases.sql