【MySQL】批处理实现数据库自动备份
数据库自动备份是常见任务,为了数据的安全性和可恢复性,这个也是必须的。数据是网站之本,一旦出现意外情况,自然需要还原。
前面曾介绍过一款叫 MySQLDumper 的工具,但MySQLDumper无法实现自动备份,于是考虑了用Windows的计划任务+批处理来实现MySQL数据库的自动备份。
操作步骤如下:
1、建立批处理程序文件data_backup.cmd,输入以下两行命令即可。
mysqldump --default-character-set=utf8 --skip-lock-tables -hlocalhost -P3306 -uusername -ppassword uchome > %date:~0,10%_uchome.sql forfiles /d -7 /m *.sql /c "cmd /c del /f @file"
第一行命令为备份数据库uchome为 日期_uchome.sql 数据文件。mysqldump参数含义罗列如下:
- --default-character-set 数据库使用的编码
- --skip-lock-tables 忽略锁定的表格
- -h 主机名
- -P 端口号
- -u 用户名
- -p 密码
- 更多参数可以通过 mysqldump --help 查看。
第二行命令为删除7天以前的备份文件。forfiles参数含义罗列如下:
- /d [{+ | -}] [{MM/DD/YYYY | DD}] 选择日期大于或等于 (+)(或者小于或等于 (-))指定日期的文件,其中 MM/DD/YYYY 是指定的日期,DD 是当前日期增加 DD 天。如果未指定 + 或 -,则使用 +。DD 的有效范围是 0 - 32768。
- /m SearchMask 按照 SearchMask 搜索文件。默认的 SearchMask 是 *.*。
- /c Command 在每个文件上运行指定的 Command。带有空格的命令字符串必须用引号括起来。默认的 Command 是 "cmd /c echo @file"。
- @file 指代文件名
- 更多参数可以通过 forfiles/? 查看。
注:forfiles命令为Windows 2003上的命令, XP上没有这个命令。
2、添加计划任务,将刚建立的批处理文件data_backup.cmd按每天一起运行一遍。考虑到备份的稳定和不影响系统,一般安排在凌晨执行备份。
经过如此配置,便实现了每天对MySQL数据库执行备份,且只保留7天内的备份。
回返,呵呵。有空记得去我那踩踩哦?
[回复]
对于WordPress我一般使用WordPress 的备份插件备份的哈哈
[回复]
晴枫 10月 23rd, 2009 上午7:46 回复:
@mosky, WordPress我也是用插件来备份,上面的批处理是给别的信息系统做的
[回复]