Binlog

Binlog是二进制日志文件,主要是用于Mysql数据恢复和主从复制。本身就是二进制格式的日志文件,网络传输无需进行协议转换。MySQL集群的高可用,负载均衡,读写分离等功能都是基于Binlog来实现的。binlog也是二进制日志文件,用于记录mysql的数据更新或者潜在更新(比如DELETE语句执行删除而实际并没有符合条件的数据),在mysql主从复制中就是依靠的binlog。可以通过语句“sh...[ 百科 ]

Binlog是二进制日志文件,主要是用于Mysql数据恢复和主从复制。本身就是二进制格式的日志文件,网络传输无需进行协议转换。MySQL 集群的高可用,负载均衡,读写分离等功能都是基于Binlog 来实现的。

binlog也是二进制日志文件,用于记录mysql的数据更新或者潜在更新(比如DELETE语句执行删除而实际并没有符合条件的数据),在mysql主从复制中就是依靠的binlog。可以通过语句“show binlog events in 'binlogfile'”来查看binlog的具体事件类型。binlog记录的所有操作实际上都有对应的事件类型的,MySQL binlog的三种工作模式:
(1)Row level(用到MySQL的特殊功能如存储过程、触发器、函数,又希望数据最大化一直则选择Row模式,我们公司选择的是row)
  简介:日志中会记录每一行数据被修改的情况,然后在slave端对相同的数据进行修改。
  优点:能清楚的记录每一行数据修改的细节
  缺点:数据量太大
(2)Statement level(默认)
  简介:每一条被修改数据的sql都会记录到master的bin-log中,slave在复制的时候sql进程会解析成和原来master端执行过的相同的sql再次执行。在主从同步中一般是不建议用statement模式的,因为会有些语句不支持,比如语句中包含UUID函数,以及LOAD DATA IN FILE语句等
  优点:解决了 Row level下的缺点,不需要记录每一行的数据变化,减少bin-log日志量,节约磁盘IO,提高新能
  缺点:容易出现主从复制不一致
(3)Mixed(混合模式)
  简介:结合了Row level和Statement level的优点,同时binlog结构也更复杂。


扫码进入手机网页