增量恢复数据:
1.开启log-bin日志
开启mysql log-bin日志:
cat /etc/my.cnf
log-bin=mysqlbin_oldboy
查看log-bin日志:
[root@node201 bin]#mysqlbinlog ../bin-log.000001
如果不能停止数据库,要切割bin-log日志:
防止其它数据插入到现有的bin-log日志里面去
[root@node201mysql5621]# ./bin/mysqladmin -uroot -p flush-log
执行这条语句将会增加一个新的bin-log记录
bin-log.000002 //原来只有
bin-log.000003 //执行命令后新增加的bin-log日志
将bin-log日志生成一个bin.sql文件:
[root@node201mysql5621]# ./bin/mysqlbinlog bin-log.000002 >bin.sql
[root@node201 mysql5621]#./bin/mysqlbinlog -d oldboy bin-log.000002 >bin_oldboy.sql//-d指定数据库
当有多个bin-log文件时,可以通过追加的方式统一加到bin_oldboy.sql里面
[root@node201mysql5621]# ./bin/mysqlbinlog -d oldboy bin-log.0000012 >>bin_oldboy.sql
[root@node201mysql5621]# ./bin/mysqlbinlog -d oldboy bin-log.0000013 >>bin_oldboy.sql
[root@node201mysql5621]# ./bin/mysqlbinlog -d oldboy bin-log.0000014 >>bin_oldboy.sql
通过查看bin_oldboy.sql文件,将不需要恢复的SQL语句删除:
SETTIMESTAMP=1465823509/*!*/;
insert into testvalues(6,'xiaozhnag')
/*!*/;
# at 540
//如果将insert into test values(6,'xiaozhnag') 这条语句删除,则恢复时将不会插入这条语句
将生成的SQL语句恢复进数据库:
[root@node201mysql5621]# mysqll -uroot oldboy < ./bin_oldboy.sql