zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Windows下实现MySQL自动备份的批处理(复制目录或mysqldump备份)

mysqlWindows备份自动 实现 目录 复制 批处理
2023-06-13 09:14:33 时间
今天有个需求要在Windows下实现数据库自动备份,拼凑了一下解决办法。

实现的特性
可指定多个数据库
按照年/月/日的方式组织备份
可选的使用WinRAR压缩备份
使用计划任务实现定时备份

具体代码
备份
复制代码代码如下:

@echooff&setlocalENABLEEXTENSIONS

::----------配置项----------

::备份放置的路径,加\
setBACKUP_PATH=D:\Backup\

::要备份的数据库名称,多个用空格分隔
setDATABASES=database1database2database3

::MySQL用户名
setUSERNAME=root

::MySQL密码
setPASSWORD=123456

::MySQLBin目录,加\
::如果可以直接使用mysqldump(安装时添加MySQLBin目录到了环境变量),此处留空即可
setMYSQL=D:\SERVER\MySQL\bin\

::WinRAR自带命令行工具的可执行文件路径,长文件名注意用Dos长文件名书写方式
setWINRAR=C:\Progra~1\WinRAR\Rar.exe

::----------以下请勿修改----------

setYEAR=%date:~0,4%
setMONTH=%date:~5,2%
setDAY=%date:~8,2%
::如果在dos下输入time返回的不是24小时制(没有0填充),请自行修改此处
setHOUR=%time:~0,2%
setMINUTE=%time:~3,2%
setSECOND=%time:~6,2%

setDIR=%BACKUP_PATH%%YEAR%\%MONTH%\%DAY%\
setADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%

::createdir
ifnotexist%DIR%(
mkdir%DIR%2>nul
)
ifnotexist%DIR%(
echoBackuppath:%DIR%notexists,createdirfailed.
gotoexit
)
cd/d%DIR%

::backup
echoStartdumpdatabases...
for%%Din(%DATABASES%)do(
echoDumpingdatabase%%D...
%MYSQL%mysqldump-u%USERNAME%-p%PASSWORD%%%D>%%D.%ADDON%.sql2>nul
::winrar
ifexist%WINRAR%(
%WINRAR%a-k-r-s-m1-ep1%%D.%ADDON%.rar%%D.%ADDON%.sql2>nul
del/F/S/Q%%D.%ADDON%.sql2>nul
)
)
echoDone

:exit

增加计划任务
复制代码代码如下:

@echooff

::-------配置项-------

::要执行的文件名
setFILE=D:\cron\cron_backup.bat

::计划频率类型
setFREQUENCY=DAILY

::频率,与上面的计划频率类型对应
setMODIFIER=1

::该计划执行的时间(24小时制)
setDATETIME=00:30:00

::计划的名字
setNAME="BackupCronJob"

::计划执行用户,不建议修改
setUSER="System"

::-------以下请勿修改-------

schtasks/Create/RU%USER%/SC%FREQUENCY%/MO%MODIFIER%/ST%DATETIME%/TN%NAME%/TR%FILE%
pause

其中的

::计划频率类型,可选项:
::MINUTE分钟
::DAILY天
::HOURLY小时
::WEEKLY周
::MONTHLY月

::频率,与上面的计划频率类型对应
::MINUTE:1到1439分钟
::HOURLY:1-23小时
::DAILY:1到365天
::WEEKLY:1到52周
::MONTHLY:1到12,或FIRST,SECOND,THIRD,FOURTH,LAST,LASTDAY

使用方法
将上面的两段代码分别保存为cron_backup.bat和cron_backup_add.bat,并根据注释修改相关参数
确定好目录之后,运行cron_backup_add.bat将计划任务添加到系统中。
WindowsServer2003/XP可以通过开始,控制面板,计划任务进入计划任务管理界面;
WindowsVista/7可以通过计算机,右键,管理,系统工具,任务计划程序,任务计划程序库,进入计划任务管理界面。
手动运行该任务,查看备份目录来确认下备份是否成功。

待改进
增加删除多少天之前备份的功能