1 相关准备工作
1、
log-bin=filename
例如:log-bin="D:/LOGBIN/data_logbin.log"
filename为存放二进制文件的路径,强烈建议与MySQL的数据目录分开存放。
2 备份/恢复策略
MySQL数据库中的备份可以分为逻辑备份与物理备份,逻辑备份是将数据库中的数据备份为一个文本文件(即我们通常见到的SQL脚本文件),而物理备份则是基于对数据文件的处理(比如对于InnoDB的数据库表,其数据文件即为.ibd文件)。
2.1 逻辑备份与恢复
2.1.1 手工备份
逻辑备份使用mysqldump工具来完成备份。其使用方法为:
mysqldump [主机] [用户名] [密码] [数据库]>[备份路径]
例如:
mysqldump -h192.168.1.7 -uroot –phello data_test>d:/backup.sql
或者写成:
mysqldump
或者写成:
mysqldump --single-transaction -h192.168.1.7 -uroot -phello
第二种写法对于InnoDB存储引擎的表来说,是一个很好的办法,它可以使mysqldump得到数据库的一个快照,使得备份的数据能够保证一致。否则,备份时,用户就只能对表有读的权限了。第三种写法更好,它可以令数据库生成一个新的二进制日志文件,而该文件只记录了自备份开始以来所有的数据库操作,这样更方便。
2.1.2 定时备份
首先写一个批处理脚本,例如该脚本内容为:
mysqldump --single-transaction -h192.168.1.7 -uroot -phello data_test>d:/backup.sql
2.1.3 增量备份
上述备份方法都属于全备份,这种备份优点是备份保持最新备份,恢复的时候可以花费更少的时间,但缺点是如果数据量大,将会花费很多的时间,并对系统造
首先将二进制日志文件复制到备份目录,这个因为是对文件进行CP操作,所以非常快。
然后,利用mydqlbinlog工具将该日志文件中对应当天的SQL语句抽出来形成SQL脚本文件,比如说要得到2009年6月22日的数据:
mysqlbinlog --start-date=”2009-06-22 00:00:00”--stop-date=”2009-06-22 24:00:00” D:/LOGBIN/data_logbin.0000002>d:/logback20090622.sql
2.1.4 恢复
用mysqldump的完全恢复很简单,如下所示例子:
1)
mysqldump --single-transaction -h192.168.1.7 -uroot -phello data_test>d:/backup.sql
2)
3)
4)
mysqlbinlog –start-date=”2009-06-22 10:00:00”—stop-date=”2009-06-22 10:30:00” D:/LOGBIN/data_logbin.0000002>d:/logback.sql
5)
mysql –uroot –psinojp database<d:/backup.sql
6)
mysql –uroot –psinojp database<d:/logback.sql
7)
以上恢复时用到了二进制文件LOGBIN,且是基于时间点恢复LOGBIN里的数据,其实,更精确一点,我们还可以根据位置来恢复二进制文件里的数据。因为由于误操作,比如误删除了一张表,这时使用基于时间点的恢复是有误差的,因为日志里面还存在误操作的语句,我们需要的是恢复到误操作以前的状态,然后跳过误操作语句,再恢复后面执行的语句,完成我们的恢复。这样的要求下,我们就要用到基于位置的恢复了。如下所示:
mysqlbinlog –stop-position=”1000” d:/logbin.0000005>d:/time1.sql
mysqlbinlog –start-position=”1050” d:/logbin.0000005>d:/time2.sql
这样一来,位置1000到1050之间的语句咱就不执行了(这个要求自己去查看日志文件,确认误操作语句的序号)。
2.2 物理备份与恢复
2.2.1 冷备份
冷备份其实就是停掉数据库服务,CP数据文件的方法。这种方法一般很少用,因为很多应用是不允许长时间停机的。方法如下:
备份:首先停掉MySQL服务,在操作系统级别备份数据文件和日志文件到备份目录。
恢复:首先停掉MySQL服务,在操作系统级别恢复数据文件(直接将备份的数据文件复制到数据目录即可),然后重启服务,再使用mysqlbinlog工具恢复自备份以来的所有BINLOG。
2.2.2 热备份
热备份一般由专门的备份工具来完成,优点是速度快,生成的备份文件小,对用户的影响也小,缺点是目前还没有免费的热备份工具。现在较流行的是ibbackup这款热备份工具,可以免费试用一个月,效果不错。
2.2.3 其它方式
实际上,除了上述备份方法外,如果数据库系统进行了主从复制设置,则也可以使用一个从服务器执行备份,这样就不会干扰主服务器,使得在备份过程中主服务器可以继续处理更新。但这种备份方式存在一定的数据差异,所以不提倡大力使用。
同时,可以将全备份与增量备份结合起来使用。但要注意的是,要经常做备份恢复测试,确保备份是有效的,并且是可以恢复的。
3 备份数据的物理存放
由于备份的数据库文件通常会非常大(T级),并且从安全角度来考虑,都应该将备份数据与原数据进行隔离。可以采用专门的备份服务器,定时将数据备份到该备份服务器上来,并且定期将之前备份数据刻录成光盘,以防万一。