利用binlog回复误删表和库
查看某个binlog日志内容,常用有两种方式:
1,,,#/usr/local/mysql/bin/mysqlbinlog/usr/local/mysql/data/mysql-bin.000013
,,,mysql>显示binlog事件(& # 39;log_name& # 39;][从pos][限制[抵消,]row_count];
,,,,,,,选项解析:
,,,,,,,,在& # 39;log_name& # 39;,指定要查询的binlog文件名(不指定就是第一个binlog文件)
,,,,,,,从pos大敌;,,,指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
,,,,,,,(抵消,),限制偏移量(不指定就是0)
,,,,,,,row_count大敌;,,查询总条数(不指定就是所有行)
,,,D。指定查询mysql-bin。这000021个文件,从pos点:8224年开始查起,查询10条
,,,,mysql>显示binlog事件& # 39;mysql-bin.000021& # 39;从8224年开始限制10 \ G;
,,6 .从binlog日志恢复数据
,,,#/usr/local/mysql/bin/mysql -uroot -p123456 - v & lt;/root/BAK.zyyshop.sql;
,,,,常用选项:
,,,,,——起始位置=953,,,,,,,,,起始pos点
,,,,,——停止位置=1437,,,,,,,,,结束pos点
,,,,,——start-datetime=?013-11-29 13:18:54"起始时间点
,,,,,——stop-datetime=?013-11-29 13:21:53",结束时间点
,,,,,——数据库=zyyshop,,,,,,,,,,指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地日志日志)
,,,小结:实际是将读出的binlog日志内容,通过管道符传递给mysql命令。这些命令,文件尽量写成绝对路径;
,,,b指定pos结束点恢复(部分恢复):
,,,,@——停止位置=953 pos结束点
,,,,注:此pos结束点介于“导入实验数据”与更新“name=& # 39;李四& # 39;”之间,这样可以恢复到更改“name=& # 39;李四& # 39;”之前的“导入测试数据”
,,,,#/usr/local/mysql/bin/mysqlbinlog数据库——停止位置=953=zyyshop/usr/local/mysql/data/mysql-bin.000023 |/usr/local/mysql/bin/mysql -uroot -p123456 - v zyyshop
,,,c .指定pso点区间恢复(部分恢复):
,,,,更新name=& # 39;李四& # 39;这条数据,日志区间是Pos[1038]——比;End_log_pos[1164],按事务区间是:Pos[953]——比;End_log_pos [1195],
,,,,c1。单独恢复name=& # 39;李四& # 39;这步操作,可这样:
,,,,,,#/usr/local/mysql/bin/mysqlbinlog——起始位置=1038数据库——停止位置=1164=zyyshop,/usr/地方/mysql/数据/mysql-bin。000023 |/usr/local/mysql/bin/mysql -uroot -p123456 - v zyyshop
,,,,,,也可以按事务区间单独恢复,如下:
,,,,,,#/usr/local/mysql/bin/mysqlbinlog——起始位置=953数据库——停止位置=1195=zyyshop,/usr/地方/mysql/数据/mysql-bin。000023 |/usr/local/mysql/bin/mysql -uroot -p123456 - v zyyshop
,,,,#/usr/local/mysql/bin/mysqlbinlog——start-datetime=?013-11-29 13:18:54"——stop-datetime=?013-11-29 13:21:53"——数据库=zyyshop/usr/local/mysql/data/mysql-bin.000021 |/usr/local/mysql/bin/mysql -uroot -p123456 - v zyyshop
,,,总结:所谓恢复,就是让mysql将保存在binlog日志中指定段落区间的sql语句逐个重新执行一次而已。