当前位置:  数据库>mysql

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

    来源: 互联网  发布时间:2014-10-04

    本文导语:  今天有个需求要在 Windows 下实现数据库自动备份,拼凑了一下解决办法。 实现的特性 可指定多个数据库 按照 年/月/日 的方式组织备份 可选的使用 WinRAR 压缩备份 使用计划任务实现定时备份 具体代码 备份 代码如下: @echo off ...

今天有个需求要在 Windows 下实现数据库自动备份,拼凑了一下解决办法。

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

具体代码
备份
代码如下:

@echo off & setlocal ENABLEEXTENSIONS

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

:: 备份放置的路径,加
set BACKUP_PATH=D:Backup

:: 要备份的数据库名称,多个用空格分隔
set DATABASES=database1 database2 database3

:: MySQL 用户名
set USERNAME=root

:: MySQL 密码
set PASSWORD=123456

:: MySQL Bin 目录,加
:: 如果可以直接使用 mysqldump(安装时添加 MySQL Bin 目录到了环境变量),此处留空即可
set MYSQL=D:SERVERMySQLbin

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

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

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
:: 如果在 dos 下输入 time 返回的不是 24 小时制(没有 0 填充),请自行修改此处
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

set DIR=%BACKUP_PATH%%YEAR%%MONTH%%DAY%
set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%

:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, create dir failed.
goto exit
)
cd /d %DIR%

:: backup
echo Start dump databases...
for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqldump -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql 2>nul
:: winrar
if exist %WINRAR% (
%WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>nul
del /F /S /Q %%D.%ADDON%.sql 2>nul
)
)
echo Done

:exit

增加计划任务
代码如下:

@echo off

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

:: 要执行的文件名
set FILE=D:croncron_backup.bat

:: 计划频率类型
set FREQUENCY=DAILY

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

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

:: 计划的名字
set NAME="Backup Cron Job"

:: 计划执行用户,不建议修改
set USER="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 将计划任务添加到系统中。
Windows Server 2003 / XP 可以通过 开始,控制面板,计划任务进入计划任务管理界面;
Windows Vista / 7 可以通过 计算机,右键,管理,系统工具,任务计划程序,任务计划程序库,进入计划任务管理界面。
手动运行该任务,查看备份目录来确认下备份是否成功。

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

    
 
 

您可能感兴趣的文章:

  • 大家备份windows98用ghost 估计就用得很多了, 请问linux可不可以ghost 备份? 还有linux 的资源管理器在哪里? 我想打开我原来的硬盘F
  • 备份Windows设备驱动 Driver Magician Lite
  • linux 用ghost备份恢复后不能和windows双启动问题??
  • 怎么将windows的文件夹备份到linux上
  • python在windows下实现备份程序实例
  • 利用windows任务计划实现oracle的定期备份
  • 把linux下的一个文件夹备份到另外一台windows系统的机器上
  • Windows服务器下MySql数据库单向主从备份详细实现步骤分享
  • 在Windows主机上定时备份远程VPS(CentOS)数据的批处理
  • windows环境下mysql数据库的主从同步备份步骤(单向同步)
  • 我是想写批处理文件将一个文件myfile自动拷到用户的 windowssystem 下,但不知用户的windows在c: 还是其他盘,我改怎做???
  • 从windows连ftp到unix做批处理的问题???/
  • Linux下的批处理文件是否和Windows下的写法相同呀?
  • Windows系统下,Cygwin.bat批处理文件怎么添加并执行其他命令?
  • 编写shell脚本执行远端windows的批处理
  • linux双击进入某目录怎么写类似windows下的批处理(准确该叫launcher)
  • 请问各位高手,怎么样在windows上通过批处理脚步启动solaris上的编译器,实现自动编译?(solaris通过telnet登陆)?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt.event类keyevent的类成员方法: vk_windows定义及介绍
  • WEB前端 iis7站长之家
  • WinDows8最新版文件夹加密
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • 修改Windows硬盘分区名称
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • windows10玩游戏怎么样?唯一支持DirectX 12的windows
  • 装了Linux和Windows,怎样默认进入Windows
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • Linux与windows共存时,如何将Windows设置为默认启动系统?
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 怎样是编好的java application在windows上像windows应用程序一样直接运行
  • Docker宣布支持Windows 10和Azure Windows Server
  • windows 和linux双系统,重装windows后,无法启动linux?
  • win7/Windows7系统下载地址搜集整理
  • 如何将linux的一台机器加入windows 2000的域?并且通过一windows的机器上网?
  • Windows7自带防火墙设置:启动,关闭及高级设置
  • 为什么在安装了WINDOWS和LINUX的电脑上,重装WINDOWS会破坏MBR?
  • IE11设置IE兼容性视图及提升Windows 8.1中IE11兼容性的相关设置
  • Linux + Windows2000 双启动,Windows2000起不来了,说是文件被破坏,进来看看……
  • Windows优化大师最新版 V7.99 Build 12.604发布
  • Linux和Windows2000双系统(为什么Windows2000中打开我的电脑非常慢?)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3