文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Mysql】从binlog中找出单个表的binlog信息

2024-04-02 19:55

关注
无聊研究binlog写了个提取单个表的binlog 的信息,便于误删恢复数据,这样做的目的是为了减少恢复时其他表可能引起的出错,以及缩短恢复时间
首先研究binlog日志的格式
  1. 如下:
  2. ;
    ;
    DELIMITER ;
    # at 4
    #160229 15:19:52 server id 162  end_log_pos 123 CRC32 0xbbe9b551 Start: binlog v 4, server v 5.7.9-log created 160229 15:19:52 at startup
    # Warning: this binlog is either in use or was not closed properly.
    ROLLBACK;
    BINLOG '
    GPHTVg+iAAAAdwAAAHsAAAABAAQANS43LjktbG9nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAY8dNWEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
    AVG16bs=
    ';
    # at 123
    #160229 15:19:52 server id 162  end_log_pos 154 CRC32 0xd473f6f4 Previous-GTIDs
    # [empty]
    # at 154
    #160229 15:18:07 server id 162  end_log_pos 219 CRC32 0xe86bb499 Anonymous_GTID last_committed=0 sequence_number=1
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS';
    # at 219
    #160229 15:18:07 server id 162  end_log_pos 291 CRC32 0xe1803afe Query thread_id=102887 exec_time=341 error_code=0
    SET TIMESTAMP=1456730287;
    SET @@session.pseudo_thread_id=102887;
    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;
    ;
    SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33;
    SET @@session.lc_time_names=0;
    SET @@session.collation_database=DEFAULT;
    BEGIN
    ;
    # at 291
    #160229 15:18:07 server id 162  end_log_pos 343 CRC32 0xcfc435f2 Table_map: `test`.`ty` mapped to number 127
    # at 343
    #160229 15:18:07 server id 162  end_log_pos 463 CRC32 0xb4ef18fe Write_rows: table id 127 flags: STMT_END_F
    BINLOG '
    r/DTVhOiAAAANAAAAFcBAAAAAH8AAAAAAAEABHRlc3QAAnR5AAQDDw8DBBQAFAAP8jXEzw==
    r/DTVh7iAAAAeAAAAM8BAAAAAH8AAAAAAAEAAgAE//AFAAAABEVFRUUCQzFfAAAA8AEAAAAEQUFB
    QQJDMUMAAADwAwAAAARDQ0NDAkMxQwAAAPAEAAAABEREREQCQzFBAAAA8AIAAAAEQkJCQgJDMTcA
    AAD+GO+0
    ';
    # at 463
    #160229 15:18:07 server id 162  end_log_pos 494 CRC32 0xed1fb95b Xid = 53


    COMMIT;                                                                                                              -------到第一个commit为第一部分 为binlog必须的,缺失会报错
    # at 494
    #160229 15:18:07 server id 162  end_log_pos 559 CRC32 0xef3ac14c Anonymous_GTID last_committed=1 sequence_number=2
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS';
    # at 559
    #160229 15:18:07 server id 162  end_log_pos 631 CRC32 0xe834f1d8 Query thread_id=102887 exec_time=350 error_code=0
    SET TIMESTAMP=1456730287;
    BEGIN
    ;
    # at 631
    #160229 15:18:07 server id 162  end_log_pos 683 CRC32 0xc64ac724 Table_map: `test`.`ty` mapped to number 127
    # at 683
    #160229 15:18:07 server id 162  end_log_pos 803 CRC32 0x4a5f1c75 Write_rows: table id 127 flags: STMT_END_F
    BINLOG '
    r/DTVhOiAAAANAAAAKsCAAAAAH8AAAAAAAEABHRlc3QAAnR5AAQDDw8DBBQAFAAPJMdKxg==
    r/DTVh7iAAAAeAAAACMDAAAAAH8AAAAAAAEAAgAE//AFAAAABEVFRUUCQzFfAAAA8AEAAAAEQUFB
    QQJDMUMAAADwAwAAAARDQ0NDAkMxQwAAAPAEAAAABEREREQCQzFBAAAA8AIAAAAEQkJCQgJDMTcA
    AAB1HF9K
    ';
    # at 803
    #160229 15:18:07 server id 162  end_log_pos 834 CRC32 0x96148022 Xid = 77



    COMMIT;                                                                                                              ------到下一个commit为第二部分,一个事物语句,可以缺失
    # at 834
    #160229 15:18:07 server id 162  end_log_pos 899 CRC32 0xa1e52982 Anonymous_GTID last_committed=2 sequence_number=3
    SET @@SESSION.GTID_NEXT= 'ANONYMOUS';
    # at 899
    #160229 15:18:07 server id 162  end_log_pos 971 CRC32 0x89fc0e48 Query thread_id=102887 exec_time=359 error_code=0
    SET TIMESTAMP=1456730287;
    BEGIN
    ;
    # at 971
    #160229 15:18:07 server id 162  end_log_pos 1023 CRC32 0xc1309696 Table_map: `test`.`ty` mapped to number 127
    # at 1023
    #160229 15:18:07 server id 162  end_log_pos 1143 CRC32 0x0993d08b Write_rows: table id 127 flags: STMT_END_F
    BINLOG '
    r/DTVhOiAAAANAAAAP8DAAAAAH8AAAAAAAEABHRlc3QAAnR5AAQDDw8DBBQAFAAPlpYwwQ==
    r/DTVh7iAAAAeAAAAHcEAAAAAH8AAAAAAAEAAgAE//AFAAAABEVFRUUCQzFfAAAA8AEAAAAEQUFB
    QQJDMUMAAADwAwAAAARDQ0NDAkMxQwAAAPAEAAAABEREREQCQzFBAAAA8AIAAAAEQkJCQgJDMTcA
    AACL0JMJ
    ';
    # at 1143
    #160229 15:18:07 server id 162  end_log_pos 1174 CRC32 0x7c2054fd Xid = 101



                                                                                                                               。。。。。省略                                               




    COMMIT;                                                                                                                -------最后一个commit到最后必须存在
    SET @@SESSION.GTID_NEXT= 'AUTOMATIC' ;
    DELIMITER ;
    # End of log file
    ;
    ;

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯