zoukankan      html  css  js  c++  java
  • 【文档】四、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还活着。不写入日志文件。

  • 相关阅读:
    算法学习——贪心篇
    Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
    小白创建网站的曲折之路
    7.2.5 多层嵌套的if语句
    7.2.4 else与if配对
    7.2.3
    7.4 electirc.c -- 计算电费
    oracle数据库命令行查看存储过程
    Linux下如何查看进程准确启动时间
    7.2 if else 语句
  • 原文地址:https://www.cnblogs.com/f-zhao/p/7637619.html
Copyright © 2011-2022 走看看