说明: 所谓增量备份,就是备份自上一次备份之后增加或改变的文件或内容。然而MySQL没有提供直接的增量备份方法,但是却可以通过MySQL的二进制日志间接实现增量备份。下面有关操作方法进行测试。 . . 实验环境:装有MySQL 5.7 数据库的CentOS7虚拟机一台 . . 实验步骤如下: . . 1 .进入配置文件添加二进制日志 vim /etc/my.cnf [mysqld] 在其中插入二进制日志 log_bin=mysql-bin #二进制日志 . . 2 . 然后重启数据库,到日志文件目录下查看一下 . . 3 . 新建数据库,并在其中新建数据表,写入数据 . . 4 .重新生成一个日志文件,这样刚才的操作步骤都会保存在第一个二进制文件中 mysqladmin -u root -p flush-logs#重新生成二进制文件 . . 5 . 将刚才新建的数据库删除,然后使用恢复命令恢复数据库 mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p #日志文件恢复 . . 6 . 可以查看到数据库已经被恢复好 . . 7 .接下来,测试误操作之后的恢复(两种方法,一是利用时间点,二是利用位置点)先进行时间点的操作 在表中插入数据 下一步,删除表中一条数据(误操作) 然后再插入一条数据 这样,误操作的一条命令已经被覆盖 . . 8 . 重新生成一个二进制日志 mysqladmin -u root -p flush-logs#创建新日志 . . 9 . mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002#64位解码查看日志文件,防乱码 在其中需要找到两个时间点 (1) 删除数据的时间点 (2) 删除之后下一步正确操作时间点 . . 10 . 找到两个时间点之后,用这两个时间点进行恢复 mysqlbinlog --no-defaults --stop-datetime='2018-09-03 16:38:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢复到错误时间点 mysqlbinlog --no-defaults --start-datetime='2018-09-03 16:39:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#从下一个正确时间点恢复 . . 11 . 这样被误删除的数据就恢复好了 . . 12 . 下面根据位置点,再进行恢复 同样把数据恢复到误删除 . . 13 . mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #64位解码查看日志文件,防乱码 找到错误点执行的命令后,复制上一次可正确执行的位置(at后面就是位置号) 然后找到下一次可执行的命令,同样复制上一次可正确执行的位置 . . 14 . 利用位置点进行恢复 mysqlbinlog --no-defaults --stop-datetime='1950' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢复到错误时间点 mysqlbinlog --no-defaults --start-datetime='2223' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#从下一个正确时间点恢复 最后查看结果,测试完成