`
whitesock
  • 浏览: 483680 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

MySQL Binlog Events Under Different Scenarios

阅读更多

1 Tables

CREATE TABLE ta (id int(11) NOT NULL, name varchar(20) DEFAULT NULL, PRIMARY KEY (id)) ENGINE=InnoDB;
CREATE TABLE tb (id int(11) NOT NULL, name varchar(20) DEFAULT NULL, PRIMARY KEY (id)) ENGINE=MyISAM;

 

2 @@binlog_format=STATEMENT

2.1

set @@binlog_format=STATEMENT;
start transaction;
insert into ta values(1, 'ta'); -- InnoDB
commit;

    QueryEvent[...,databaseName=test,sql=BEGIN]
    QueryEvent[...,databaseName=test,sql=insert into ta values(1, 'ta')]
    XidEvent[...,xid=38]

 

2.2

set @@binlog_format=STATEMENT;
insert into tb values(1, 'tb'); -- MyISAM
commit;

    QueryEvent[...,databaseName=test,sql=BEGIN]
    QueryEvent[...,databaseName=test,sql=insert into tb values(1, 'tb')]
    QueryEvent[...,databaseName=test,sql=COMMIT]

 

2.3

set @@binlog_format=STATEMENT;
start transaction;
insert into ta values(7, 'ta'); -- InnoDB
insert into tb values(7, 'tb'); -- MyISAM
commit;

    QueryEvent[,databaseName=test,sql=BEGIN]
    QueryEvent[...,databaseName=test,sql=insert into ta values(7, 'ta')]
    QueryEvent[...,databaseName=test,sql=insert into tb values(7, 'tb')]
    XidEvent[...,xid=64]

 

2.4

set @@binlog_format=STATEMENT;
start transaction;
insert into ta values(8, 'ta'); -- InnoDB
insert into tb values(8, 'tb'); -- MyISAM
rollback;

    QueryEvent[...,databaseName=test,sql=BEGIN]
    QueryEvent[...,databaseName=test,sql=insert into ta values(8, 'ta')]
    QueryEvent[...,databaseName=test,sql=insert into tb values(8, 'tb')]
    QueryEvent[...,databaseName=test,sql=ROLLBACK]

3 @@binlog_format=ROW

3.1

set @@binlog_format=ROW;
start transaction;
insert into ta values(2, 'ta'); -- InnoDB
commit;

    QueryEvent[...,databaseName=test,sql=BEGIN]
    TableMapEvent[...]
    WriteRowsEvent[...,rows=[Row[columns=[2, ta]]]]
    XidEvent[...,xid=45]

 

3.2

set @@binlog_format=ROW;
insert into tb values(2, 'tb'); -- MyISAM

    QueryEvent[...,databaseName=test,sql=BEGIN]
    TableMapEvent[...]
    WriteRowsEvent[...,rows=[Row[columns=[2, tb]]]]
    QueryEvent[...,databaseName=test,sql=COMMIT]

 

3.3

set @@binlog_format=ROW;
start transaction;
insert into ta values(5, 'ta'); -- InnoDB
insert into tb values(5, 'tb'); -- MyISAM
commit;

    QueryEvent[...,databaseName=test,sql=BEGIN]
    TableMapEvent[...]
    WriteRowsEvent[...,rows=[Row[columns=[5, tb]]]]
    QueryEvent[...,databaseName=test,sql=COMMIT]
    QueryEvent[...,databaseName=test,sql=BEGIN]
    TableMapEvent[...]
    WriteRowsEvent[...,rows=[Row[columns=[5, ta]]]]
    XidEvent[...,xid=54]

 

3.4

set @@binlog_format=ROW;
start transaction;
insert into ta values(6, 'ta'); -- InnoDB
insert into tb values(6, 'tb'); -- MyISAM
rollback;

    QueryEvent[...,databaseName=test,sql=BEGIN]
    TableMapEvent[...]
    WriteRowsEvent[...,rows=[Row[columns=[6, tb]]]]
    QueryEvent[...,sql=COMMIT]

分享到:
评论

相关推荐

    MySQL Binlog Digger 4.28 + Mysql Binlog分析 + 数据库

    MySQL Binlog Digger是一款免费的,且基于图形界面的binlog挖掘分析工具与sql审计工具。当发生误删、误增、误改时,它可以帮助我们从binlog中快速定位到误操作的重做语句(redo sql),同时推理出回滚语句(undo sql)。...

    MySQL Binlog Digger 4.8.0

    MySQL Binlog Digger 4.8.0 是一个专为MySQL数据库设计的强大的日志挖掘和分析工具,尤其适用于数据恢复场景。它采用图形用户界面,使得操作更加直观易用。该工具支持在线和离线两种模式的binlog分析,能够帮助用户...

    Mysql binlog查看工具

    MySQL的二进制日志(Binary Log,简称binlog)是数据库系统中非常重要的一个功能,主要用于数据恢复、数据同步以及审计。它记录了所有改变数据库状态的事务,包括INSERT、UPDATE、DELETE等操作,为数据库提供了事务...

    mysql binlog日志恢复【亲测有效,有例子实测】

    5. **查看binlog事件并恢复数据**:通过`show binlog events in 'mysql-bin.000002'`查看binlog文件中的事件,然后使用`mysqlbinlog`工具指定开始和结束位置恢复特定数据,例如: ``` mysqlbinlog --start-...

    MySQL Binlog Digger 4.19

    MySQL Binlog Digger 4.19安装包,mysql日志回滚、解析、挖掘、支持离线在线 支持解析全sql字段语句

    MySQL Binlog Digger 4.10

    MySQL Binlog Digger基于图形界面,免安装的日志分析工具,能对在线binlog与离线binlog进行分析,在选定在线binlog或离线binlog日志后,可对数据库、表、binlog开始时间、binlog结束时间、误操作的重做类型进行信息...

    mysql-binlog-connector-java-0.21.0-API文档-中文版.zip

    赠送jar包:mysql-binlog-connector-java-0.21.0.jar; 赠送原API文档:mysql-binlog-connector-java-0.21.0-javadoc.jar; 赠送源代码:mysql-binlog-connector-java-0.21.0-sources.jar; 赠送Maven依赖信息文件:...

    MySQL Binlog Digger 4.17.zip

    MySQL Binlog Digger是一个免费的,且基于图形界面的binlog挖掘分析工具。它可以为数据恢复提供有力的参考依据,它可以对在线binlog与离线binlog进行挖掘分析,在设定过滤条件后便可以进行精确过滤,从而得到我们所...

    MySQL-Binlog-Digger4.9.exe.7z

    MySQL Binlog Digger分析工具。其他人下载,需要积分太多,我只需要5个积分

    MySQL Binlog Digger 4.18 Setup.exe

    MySQL Binlog Digger是一款免费的,且基于图形界面的binlog挖掘分析工具与sql审计工具。当发生误删、误增、误改时,它可以帮助我们从binlog中快速定位到误操作的重做语句(redo sql),同时推理出回滚语句(undo sql)。...

    8、NIFI综合应用场景-NiFi监控MySQL binlog进行实时同步到hive

    【NIFI综合应用场景-NiFi监控MySQL binlog进行实时同步到hive】 Apache NiFi是一款强大的数据流处理工具,常用于构建复杂的数据集成解决方案。在本场景中,我们将探讨如何使用NiFi来实时监控MySQL数据库的binlog...

    MySQL Binlog Digger 4.9.rar

    MySQL Binlog Digger基于图形界面,免安装的日志分析工具,能对在线binlog与离线binlog进行分析,在选定在线binlog或离线binlog日志后,可对数据库、表、binlog开始时间、binlog结束时间、误操作的重做类型进行信息...

    MySQL Binlog Digger 4.20 Setup.exe

    MySQL Binlog Digger是一款免费的,且基于图形界面的binlog挖掘分析工具与sql审计工具。当发生误删、误增、误改时,它可以帮助我们从binlog中快速定位到误操作的重做语句(redo sql),同时推理出回滚语句(undo sql)。...

    MySQL二进制日志(binlog)解析工具

    MySQL二进制日志(binlog)是数据库系统中一种重要的功能,用于记录所有改变数据库状态的事务。这种日志格式是二进制的,它包含了一种持久化数据库更改的方式,这对于数据恢复、主从复制和数据分析具有关键作用。在...

    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据

    mysqlbinlog和binlog2sql的使用及mysql通过binlog日志恢复数据库数据

    MySQL – binlog日志简介及设置

    MySQL的binlog(二进制日志)是数据库系统中至关重要的组件,它记录了所有对数据库进行修改的SQL语句,除了数据查询语句。binlog的主要功能在于支持数据库的主从复制和数据的增量恢复,确保数据的高可用性和一致性。...

    开启mysql-Binlog

    开启mysql-binlog操作 binlog日志用于记录所有更新了数据或者已经潜在更新了数据的所有语句。语句以“事件”的形式保存,它描述数据更改。当我们因为某种原因导致数据库出现故障时,就可以利用binlog日志来挽回...

    mysql通过binlog同步数据到redis的方法.docx

    mysql通过binlog同步数据到redis的方法 本文档介绍了使用mysql的binlog机制同步数据到redis的方法。该方法通过模仿mysql的slave角色,从master获取数据库变化的数据,写入activeMQ,再同步到redis,实现数据同步的...

Global site tag (gtag.js) - Google Analytics