windows下执行mysql冷备份
- 前言
由于业务需要,需要定时对mysql数据库进行备份,因为交易量不算太大,所以没用采用主从同步的方式,采用相对简单的冷备份。
- bat脚本
这边有几个地方需要改动的地方,backup_dir
表示你要备份的文件路径,如果需要备份到其他机器,需要开启远程文件夹共享,uname
用户名,这边不推荐用root,用其他账户备份也可以,password
登录密码,port
端口,dbname
要导出的数据库名称。
remain_day
这个变量表示你要保留多少天的备份,这边我是设置为7天,cd D:\mysql-5.7.17-winx64\bin
这个地方记得改成mysql文件夹bin路径,可以先手动执行下看看有没有备份文件生成,如果没问题可以开始配置定时任务。
rem today
set day=%date:~0,4%%date:~5,2%%date:~8,2%
rem save dir
set backup_dir=D:\mysql-backup
set uname=root
set password=onepay@123
set port=3306
set dbname=onepay
rem day for dmp file remaining
set remain_day=7
rem delete files before 7 days
forfiles /p "%backup_dir%" /d -%remain_day% /c "cmd /c echo deleting @file ... && del /f @path"
rem locate mysql_home/bin
cd D:\mysql-5.7.17-winx64\bin
d:
rem export to dmp file, do not use root if not local mysql
mysqldump -h 127.0.0.1 -P %port% -u %uname% -p%password% %dbname% --skip-lock-tables --single-transaction > %backup_dir%\%day%.sql
- 创建执行任务
打开 田-所有程序—附件—系统工具-任务计划程序
创建任务
在常规中输入任务名称
在操作中选择执行的bat文件
在触发器中新建定时任务
新建完成
注意事项
右键查看这个定时任务属性,有2个地方要勾选,不然待机或者其他用户登录的话会导致任务不能执行下去。
还原dump文件
mysqldump -uroot -ppassword dbname < dump.sql;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。