您的位置:宽带测速网 > mysql教程 > MySQL中从库binlog如何使用mysqlbinlog stop-datetime过滤

MySQL中从库binlog如何使用mysqlbinlog stop-datetime过滤

2025-06-24 08:03来源:互联网 [ ]

一、构造这样的binlog
#at4#1908250:01:37serverid953340end_log_pos123CRC320x9409b3c9Start:binlogv4,serverv5.7.22-22-debug-logcreated1908250:01:37#Warning:thisbinlogiseitherinuseorwasnotclosedproperly.BINLOG'YV9hXQ/8iw4AdwAAAHsAAAABAAQANS43LjIyLTIyLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQAAcmzCZQ='/*!*/;#at123#1908250:01:37serverid953340end_log_pos234CRC320x483a41acPrevious-GTIDs#010fde77-2075-11e9-ba07-5254009862c0:16-40,#cb7ea36e-670f-11e9-b483-5254008138e4:94-104#at234#19072414:07:36serverid413340end_log_pos299CRC320x9294741bGTIDlast_committed=0sequence_number=1rbr_only=yes/*!50718SETTRANSACTIONISOLATIONLEVELREADCOMMITTED*//*!*/;SET@@SESSION.GTID_NEXT='cb7ea36e-670f-11e9-b483-5254008138e4:105'/*!*/;#at299#19072414:07:36serverid413340end_log_pos362CRC320x23ecd791Querythread_id=5exec_time=2714050error_code=0SETTIMESTAMP=1563948456/*!*/;SET@@session.pseudo_thread_id=5/*!*/;SET@@session.foreign_key_checks=1,@@session.sql_auto_is_null=0,@@session.unique_checks=1,@@session.autocommit=1/*!*/;SET@@session.sql_mode=524288/*!*/;SET@@session.auto_increment_increment=1,@@session.auto_increment_offset=1/*!*/;/*!\Cutf8*//*!*/;SET@@session.character_set_client=83,@@session.collation_connection=83,@@session.collation_server=33/*!*/;SET@@session.lc_time_names=0/*!*/;SET@@session.collation_database=DEFAULT/*!*/;BEGIN/*!*/;#at362#19072414:07:36serverid413340end_log_pos414CRC320x65673dabTable_map:`testmts`.`testwq`mappedtonumber110#at414#19072414:07:36serverid413340end_log_pos454CRC320xa368ded1Write_rows:tableid110flags:STMT_END_FBINLOG'qPU3XROcTgYANAAAAJ4BAAAAAG4AAAAAAAEAB3Rlc3RtdHMABnRlc3R3cQABAwABqz1nZQ==qPU3XR6cTgYAKAAAAMYBAAAAAG4AAAAAAAEAAgAB//4KAAAA0d5oow=='/*!*/;#at454#19072414:07:36serverid413340end_log_pos485CRC320x40df9d14Xid=44COMMIT/*!*/;

这个binlog是从库的binlog,Event header timestamp如下:

    FORMAT_DESCRIPTION_EVENT:190825 0:01:37

    PREVIOUS_GTIDS_LOG_EVENT:190825 0:01:37

    以上两个Event都是从库binlog自己生成当然就是本实例的时间。

      GTID_LOG_EVENT:190724 14:07:36

      QUERY_EVENT:190724 14:07:36

      MAP_EVENT:190724 14:07:36

      WRITE_EVET:190724 14:07:36

      XID_EVENT:190724 14:07:36

      他们都是主库语句命令发起的时间。

      如果这个时候我们使用stop-datetime=‘2019-07-25 00:00:00’ 不会解析到这个事务。原因在于FORMAT_DESCRIPTION_EVENT的时间超过了这个时间直接退出了。

      源码如下:

      debug如下: