mysqlbinlog

###############################

 

增量恢复:mysqlbinlog mysql-bin.000001 | mysql -uroot -p  your_database_name

mysqlbinlog 常用参数:

(1)-d:指定特定数据库的binlog;

(2)-r:相当于重定向到指定文件,与>、<作用相同;

(3)--start-position和--stop-position:按照指定位置解析binlog日志(精确),如不接--stop-positiion则一直到binlog日志结尾;

(4)--start-datetime和--stop-datetime:按照指定时间解析binlog日志(模糊,不准确),如不接--stop-datetime则一直到binlog日志结尾;

(5)-D --disable-log-bin:禁止恢复过程产生日志。指定-D时使用mysqlbinlog解析binlog时,会看到sql_log_bin=0。也可以再把binlog解析到普通SQL文件,在mysql命令行下执行SQL文件前,手工设定set sql_log_bin=0,执行恢复SQL的过程就不会产生日志,恢复后再恢复set sql_log_bin=1。sql_log_bin 是一个动态变量,修改该变量时,可以只对当前会话生效(Session);

(6)-v :显示SQL语句,在行事件中重构伪SQL语句,将自动生成带注释的SQL语句,这个并非原始SQL语句(Reconstruct pseudo-SQL statements out of row events);

(7)-vv:显示的SQL语句之后会加上字段属性注释,另外,若配置了参数binlog_rows_query_log_events,则会显示原始SQL语句;

(8)--base64-output=decode-rows:不显示BINLOG内容部分,注意:做恢复操作时不能加该参数,否则不能增量恢复;


 

1、查看远程服务器上的二进制日志文件:这里

mysqlbinlog -R -h192.168.1.101 -uroot -p123456 mysql-bin.000036 > igoodful.sql

 

2、指定位置点。start <= pos < end

 

3、指定时间。

 

4、mysqlbinlog --base64-output=DECODE-ROWS  -v -v mysql-bin.000776|less

 

#  那么能否看到原始SQL语句呢?答案是可以,但是必须设置系统变量binlog_rows_query_log_events

mysql> show variables like 'binlog_rows_query_log_events';

+------------------------------+-------+

| Variable_name                | Value |

+------------------------------+-------+

| binlog_rows_query_log_events | OFF   |

+------------------------------+-------+

1 row in set (0.00 sec)

 

mysql> set binlog_rows_query_log_events=1;

Query OK, 0 rows affected (0.00 sec)

 

mysql> flush logs;

Query OK, 0 rows affected (0.01 sec)

 

mysql>  show master status;

+----------------------+----------+--------------+------------------+-------------------+

| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+----------------------+----------+--------------+------------------+-------------------+

| DB-Server-bin.000026 |      120 |              |                  |                   |

+----------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

 

mysql>

 

 

 #########################

 

 

 

 

 

 

 

 

###############################

posted @ 2018-05-18 11:20  igoodful  阅读(261)  评论(0编辑  收藏  举报