• 【文档】四、Mysql Binlog事件含义详解


    下面对binlog中事件做个简单说明:

    • UNKNOWN_EVENT

    这个事件类型应该永远不会出现。它从不会写入binlog中。如果binlog中的事件没法被识别成其他已知事件,他被当做UNKNOWN_EVENT。

    • START_EVENT_V3

    在binlog文件最开始的符号事件(在Mysql的4.0和4.1版本中,这个事件只会在服务启动时,写到第一个binlog文件中)。这个事件在3.23到4.1版本中使用,在5.0版本中被FORMAT_DESCRIPTION_EVENT代替。

    • QUERY_EVENT

    当更新操作完成时写入。

    • STOP_EVENT

    当mysqld停止时写入。

    • ROTATE_EVENT

    当mysqld切换一个新的binlog文件时写入。当FLUSH LOGS命令执行或者当前的binlog文件太大时,这个事件会出现。binlog文件的最大值由max_binlog_size定义。

    • INTVAR_EVENT

    当一个语句使用到AUTO_INCREMENT列时,或者LAST_INSERT_ID()函数时写入。在这个语句的其他事件之前写入。这个只在QUERY_EVENT之前写入,并且在基于行的日志中不会使用。这个事件是以下面两种子类型的方式写入的

    INSERT_ID_EVENT表示下个语句中使用到的自增列。

    LAST_INSERT_ID_EVENT表示下个语句中用到的LAST_INSERT_ID()函数。

    • LOAD_EVENT

    在Mysql 3.23中用于LOAD DATA INFILE语句中。

    • SLAVE_EVENT

    没使用过。

    • CREATE_FILE_EVENT

    在Mysql 4.0和4.1版本中用于LOAD DATA INFILE语句。

    • APPEND_BLOCK_EVENT

    在Myql 4.0中用于LOAD DATA INFILE语句。

    • EXEC_LOAD_EVENT

    在Mysql 4.0和4.1中用于LOAD DATA INFILE语句。

    • DELETE_FILE_EVENT

    在Myql 4.0中用于LOAD DATA INFILE语句。

    • NEW_LOAD_EVENT

    在Mysql 4.0和4.1中用于LOAD DATA INFILE语句。

    • RAND_EVENT

    当一个语句使用RAND()函数时写入。在这个语句的所有其他事件之前。表示在下个语句中使用RAND()生成随机数用到的种子值。这个只在QUERY_EVENT之前写入,并且在基于行的日志中不记录。

    • USER_VAR_EVENT

    一个语句中使用到user变量时写入。在这个语句的所有事件之前。表示在下个语句中使用到的user变量值。这个只在QUERY_EVENT之前写入,并且在基于行的日志中不记录。

    • FORMAT_DESCRIPTION_EVENT

    每个binlog文件开头的符号事件。用于Mysql 5.0版本,替代START_EVENT_V3。

    • XID_EVENT

    在支持XA事务的存储引擎中,事务提交时产生。普通的事务是这样实现的:发送一个包含BEGIN语句的QUERY_EVENT和一个包含COMMIT语句的QUERY_EVENT(或者当事务回滚时的ROLLBACK语句)

    • BEGIN_LOAD_QUERY_EVENT

    用于Mysql 5.0中LOAD DATA INFILE语句。

    • EXECUTE_LOAD_QUERY_EVENT

    用于Mysql 5.0中LOAD DATA INFILE语句。

    • TABLE_MAP_EVENT

    用于基于行日志记录。这个事件在每个行操作事件之前。他把表定义映射为一个数字,表定义包含库名和表名,还有列的定义。这个事件的目的是当master和slave的同一张表有不同的定义时,允许进行主从复制。属于同一个事务的行操作事件会被按顺序放到一个组中,在这种情况下,每个事件序列组以TABLE_MAP_EVENT事件开头,每张表的序列组有一个。

    • PRE_GA_WRITE_ROWS_EVENT

    WRITE_ROWS_EVENT的废弃版本

    • PRE_GA_UPDATE_ROWS_EVENT

    UPDATE_ROWS_EVENT的废弃版本

    • PRE_GA_DELETE_ROWS_EVENT

    DELETE_ROWS_EVENT的废弃版本

    • WRITE_ROWS_EVENT

    用于基于行的日志记录方式,这个事件记录了单表的行插入。

    • UPDATE_ROWS_EVENT

    用于基于行的日志记录方式,这个事件记录了单表的行更新。

    • DELETE_ROWS_EVENT

    用于基于行的日志记录方式,这个事件记录了单表的行删除。

    • INCIDENT_EVENT

    用于记录master上发生的非常规事件。这个事件会通知slave,master发生了一些会导致数据不一致的事件。

    • HEARTBEAT_LOG_EVENT

    master发送给slave的事件,让slave知道master还活着。不写入日志文件。

  • 相关阅读:
    以最少的循环把两个数组里面的相同结果输出来
    解决PL/SQL Developer连接数据库时出现 “ORA-12541:TNS:无监听程序”错误
    AOP中Advice执行两遍的原因
    Java注释@interface的用法
    Spring进阶教程之在ApplicationContext初始化完成后重定义Bean
    Java的注解机制——Spring自动装配的实现原理
    基数排序简单Java实现
    jQuery的选择器中的通配符
    SEO 网站页面SEO优化之页面title标题优化
    IntelliJ IDEA 中文乱码解决
  • 原文地址:https://www.cnblogs.com/f-zhao/p/7637619.html
Copyright © 2020-2023  润新知