(一)MysqLbinlog工具介绍
binlog类型是二进制的,也就意味着我们没法直接打开看,MysqL提供了MysqLbinlog来查看二进制日志,该工具类似于Oracle的logminer。MysqLbinlog用法为
其中,常用的option选项如下:
option | 作用 |
-d,--database=name | 只列出指定数据库的操作 |
-o,--offset = n | 忽略日志前n行 |
-r,--result-file=name | 将输出的文本格式日志保存到文件 |
-v -vv |
-v :从binlog中重建sql语句 -vv:显示的sql语句增加了注释,可以理解为-v的增强 |
--start-datetime=datetime --stop-datetime=datetime |
指定日期间隔内的所有日志 |
--start-position=position --stop-position=position |
指定位置间隔内的所有日志 |
(二)MysqLbinlog使用例子
(1)提取指定的binlog日志
(2)提取指定position位置的binlog日志
(3)提取指定position位置的binlog日志并输出到压缩文件
000018 |gzip >extra_01.sql.gz
(4)提取指定position位置的binlog日志导入数据库
000018 | MysqL -uroot -p
(5)提取指定开始时间的binlog并输出到日志文件
MysqLbinlog --start-datetime="2017-08-14 10:00:00" /home/MysqL/data/ins3308/binlog.000018 --result-file=extra02.sql
(6)提取指定位置的多个binlog日志文件
(7)提取指定数据库binlog并转换字符集到UTF8
(8)远程提取日志,指定结束时间
MysqLbinlog -uroot -p -h192.168.10.11 -P3308 --stop-datetime=" --read-from-remote-server binlog.more
(9)远程提取使用row格式的binlog日志并输出到本地文件
例子1:使用--start-datetime和--stop-datetime显示2020年2月12日23:30到2020年2月12日23:50的日志
[root@masterdb binlog]# MysqLbinlog master-bin.000025 --start-datetime='2020-02-12 23:30:00' --stop-datetime=2020-02-12:23:50:00' /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; !50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0; DELIMITER !; # at 4 #200212 23:40:10 server id 1 end_log_pos 123 CRC32 0xfc4fd0fc Start: binlog v 4,server v 5.7.24-log created 10 at startup # Warning: this binlog is either in use or was not closed properly. ROLLBACK; BINLOG ' WhxEXg8BAAAAdwAAAHsAAAABAAQANS43LjI0LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABaHEReEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA AfzQT/w= /*!*/; # at 123154 CRC32 0x3dc8c184 PrevIoUs-GTIDs # [empty] # at 15446 server 219 CRC32 0x12bba458 Anonymous_GTID last_committed=0 sequence_number=1 rbr_only=no SET @@SESSION.GTID_NEXT= ANONYMOUS'219315 CRC32 0x5ed83729 Query thread_id=3 exec_time=0 error_code=0 use `db1`; SET TIMESTAMP=1581522046; SET @@session.pseudo_thread_id=3; SET @@session.foreign_key_checks=1,@@session.sql_auto_is_null=0,@@session.unique_checks=1; SET @@session.sql_mode=1436549152; SET @@session.auto_increment_increment=!\C utf8 *//*; SET @@session.character_set_client=33,@@session.collation_connection=33; SET @@session.lc_time_names=; SET @@session.collation_database=DEFAULT; create table t1(id int ) ; SET @@SESSION.GTID_NEXT= AUTOMATIC' added by MysqLbinlog */ ; DELIMITER ; # End of log file !50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
相关文档集合: 1.MySQL日志--二进制日志(binlog) |