本方案是在windows操作系统下,mysql的定时备份加上差异备份,可以将你的数据库恢复到任何过去的时候,好处是相当的多的,最大的好处是当服务器受到了攻击,或者是服务器发生了灾难,可以恢复到受攻击或灾难之前。

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

1.建立bat文件,bat文件内容
@echo off
set "a=%date% %time:~0,2%_%time:~3,2%"
E:\backdata\tool\mysqldump.exe -uroot -p111111 --database database1 database2> "E:\backdata\back_up(%a%).sql"
//以下是解释

第一句,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文件末尾加上这个配置就可以了:

#log
log-error=D:/backdata/logs/error.log
log_bin=D:/backdata/logs/logbin.log
long_query_time=2
log-slow-queries=D:/backdata/logs/slowquery.log
这里有用的是第二行,生成的bin文件。其它几个不是用于备份的,但感觉很有用的日志,而且占用空间不大,对于分析mysql的问题是大有好处的。

总结:

怎么样,是不是很简单,而且所有的都是自动完成,并且配置很灵活,你可以5点备份。你所需要的就是把备份文件保管好。看了这个你是不是觉得,停掉数据库去拷贝文件太次哦,太累不说,还原还会丢掉不少数据。觉得方案不错的话支持下哦

同理在linux下也是类似的,只是linux下命令有些不同,思路是一样的。