1

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
  • 创建执行任务

打开 田-所有程序—附件—系统工具-任务计划程序

image.png

创建任务

image.png

在常规中输入任务名称

image.png

在操作中选择执行的bat文件
image.png

在触发器中新建定时任务

image.png

新建完成
image.png
注意事项
右键查看这个定时任务属性,有2个地方要勾选,不然待机或者其他用户登录的话会导致任务不能执行下去。
image.png

还原dump文件

mysqldump -uroot -ppassword dbname < dump.sql;

官方文档dump指令参考


sf4y
23 声望7 粉丝