首页 > 数据库 > MySQL > 正文

windows下自动定时mysql备份数据库方法

2024-07-24 12:37:46
字体:
来源:转载
供稿:网友

mysql数据库在我们WEB开发与网站中是很重要的一个点,我们可以说要实时备份数据库或每天一备份,但是如果我们每天手工备份,这样可能会忘记了,下面我来介绍在windows下使用批处理方法实现定时mysql数据库备份方法.

步骤非常的简单,就三部搞定.

1.建立bat文件,bat文件内容,代码如下:

  1. @echo off  
  2. set host=localhost  
  3. set username=root  
  4. set passward=ansure  
  5. set database=weihe  
  6. set backup_path=D:/db_backup/  
  7. echo "Mysql Backup , please waitting"  
  8. mysqldump -h%host% -u%username% -p%passward% --skip-lock-tables %database% > %backup_path%/%database%_%date:~0,10%.sql  
  9. echo "OK ! " 

以下是解释.

第一句,bat文件的通用命令。

第二句,设置月份格式,为了文件名不重复,并且知道当前文件的生成日期.生成的格式为:back_up(2013-04-25 星期四 18_00).sql,红色的这段.

第三句,我是将mysqldump.exe从安装文件拷贝到这个目录的,目的是为了防止空格(E:/backdata/tool/mysqldump.exe这段不能有空格,空格需要非常特殊的处理,这里不写详细的)。-u后面是用户名,注意没有空格哦, -u root这样是要出错的,同样-p也是。--database后面可以跟多个数据库。

2.建立计划任务,执行bat文件

到windows的任务计划里新建一个计划任务,我的计划任务执行是1个月执行一次上面的bat文件,完整备份一次数据库,以sql的形式,一般情况下设置在凌晨3点左右。

为什么一个月一次呢,因为我们还有增量备份,如果太频繁的话,消耗磁盘空间,也会消耗大量的数据库性能。所以建议是较长的时间周期,做好增量备份就可以应付了。

3.mysql的增量备份

通过上面的方案,可以将数据库恢复到上个月的数据,但是如果只有上面的备份方案,这个月的数据就不能找回了,配合增量备份方案,就可以恢复到过去的任何时候,达到比较实用的程度,那么增量备份是怎么样备份的呢?

只需在my.ini文件末尾加上这个配置就可以了,代码如下:

  1. #log 
  2. log-error=D:/backdata/logs/error.log 
  3. log_bin=D:/backdata/logs/logbin.log 
  4. long_query_time=2 
  5. log-slow-queries=D:/backdata/logs/slowquery.log 

这里有用的是第二行,生成的bin文件,其它几个不是用于备份的,但感觉很有用的日志,而且占用空间不大,对于分析mysql的问题是大有好处的.

4.直接备份数据库文件

新建db_bak.bat,写入以下代码:

  1. *******************************Code Start***************************** 
  2. net stop mysql --Vevb.com
  3. xcopy c:/mysql/data/bbs/*.* c:/db_bak/bbs/%date:~0,10%/ /S /I 
  4. net start mysql 
  5. *******************************Code End ***************************** 

然后使用Windows的“计划任务”定时执行该批处理脚本即可,例如,每天凌晨3点执行back_db.bat.

解释:备份和恢复的操作都比较简单,完整性比较高,控制备份周期比较灵活,例如,用%date:~0,10%。此方法适合有独立主机但对mysql没有管理经验的用户,缺点是占用空间比较多,备份期间mysql会短时间断开,例如,针对30M左右的数据库耗时5s左右,针对%date:~0,10%的用法参考.     

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表