温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-11-06 11:37:35 来源:亿速云 阅读:159 作者:小新 栏目:MySQL数据库

这篇文章主要介绍了MySQL中从库binlog如何使用mysqlbinlog stop-datetime过滤,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、构造这样的binlog

# at 4
#190825  0:01:37 server id 953340  end_log_pos 123 CRC32 0x9409b3c9     Start: binlog v 4, server v 5.7.22-22-debug-log created 190825  0:01:37
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
YV9hXQ/8iw4AdwAAAHsAAAABAAQANS43LjIyLTIyLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AcmzCZQ=
'/*!*/;
# at 123
#190825  0:01:37 server id 953340  end_log_pos 234 CRC32 0x483a41ac     Previous-GTIDs
# 010fde77-2075-11e9-ba07-5254009862c0:16-40,
# cb7ea36e-670f-11e9-b483-5254008138e4:94-104
# at 234
#190724 14:07:36 server id 413340  end_log_pos 299 CRC32 0x9294741b     GTID    last_committed=0        sequence_number=1       rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'cb7ea36e-670f-11e9-b483-5254008138e4:105'/*!*/;
# at 299
#190724 14:07:36 server id 413340  end_log_pos 362 CRC32 0x23ecd791     Query   thread_id=5     exec_time=2714050       error_code=0
SET TIMESTAMP=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/*!*/;
/*!\C utf8 *//*!*/;
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
/*!*/;
# at 362
#190724 14:07:36 server id 413340  end_log_pos 414 CRC32 0x65673dab     Table_map: `testmts`.`testwq` mapped to number 110
# at 414
#190724 14:07:36 server id 413340  end_log_pos 454 CRC32 0xa368ded1     Write_rows: table id 110 flags: STMT_END_F
BINLOG '
qPU3XROcTgYANAAAAJ4BAAAAAG4AAAAAAAEAB3Rlc3RtdHMABnRlc3R3cQABAwABqz1nZQ==
qPU3XR6cTgYAKAAAAMYBAAAAAG4AAAAAAAEAAgAB//4KAAAA0d5oow==
'/*!*/;
# at 454
#190724 14:07:36 server id 413340  end_log_pos 485 CRC32 0x40df9d14     Xid = 44
COMMIT/*!*/;

这个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的时间超过了这个时间直接退出了。

源码如下:

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

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

感谢你能够认真阅读完这篇文章,希望小编分享的“MySQL中从库binlog如何使用mysqlbinlog stop-datetime过滤”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI