美文网首页
mysql binlog的日志格式

mysql binlog的日志格式

作者: 不怕天黑_0819 | 来源:发表于2020-09-01 09:32 被阅读0次

Binlog 的日志格式

记录在二进制日志中的事件的格式取决于二进制记录格式。支持三种格式类型:

  • STATEMENT:基于SQL语句的复制(statement-based replication, SBR)
  • ROW:基于行的复制(row-based replication, RBR)
  • MIXED:混合模式复制(mixed-based replication, MBR)

MySQL 5.7.7 之前,默认的格式是 STATEMENT,在 MySQL 5.7.7 及更高版本中,默认值是 ROW。日志格式通过 binlog-format 指定,如 binlog-format=STATEMENTbinlog-format=ROWbinlog-format=MIXED

Statement

每一条会修改数据的sql都会记录在binlog中

优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO, 提高了性能。

缺点:由于记录的只是执行语句,为了这些语句能在slave上正确运行,因此还必须记录每条语句在执行的时候的一些相关信息,以保证所有语句能在slave得到和在master端执行的时候相同的结果。另外mysql的复制,像一些特定函数的功能,slave与master要保持一致会有很多相关问题。

Row

5.1.5版本的MySQL才开始支持 row level 的复制,它不记录sql语句上下文相关信息,仅保存哪条记录被修改。

优点: binlog中可以不记录执行的sql语句的上下文相关的信息,仅需要记录那一条记录被修改成什么了。所以row的日志内容会非常清楚的记录下每一行数据修改的细节。而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题.

缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容。

注:将二进制日志格式设置为ROW时,有些更改仍然使用基于语句的格式,包括所有DDL语句,例如CREATE TABLE, ALTER TABLE,或 DROP TABLE。

Mixed

从5.1.8版本开始,MySQL提供了Mixed格式,实际上就是Statement与Row的结合。
在Mixed模式下,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种。

相关文章

  • MySQL 5.7复制实例

    MySQL复制基础 1.MySQL的复制是异步复制 2.MySQL复制是基于binlog日志。 存在三种日志格式:...

  • mysql的binlog与redo log

    binlog Mysql Binlog是二进制格式的日志文件,用来记录Mysql内部对数据库的改动(只记录对数据的...

  • mysqlbinlog怎么恢复数据

    Mysql之binlog日志说明及利用binlog日志恢复数据操作记录 众所周知,binlog日志对于mysql数...

  • Mysql主从复制异常,定位具体的SQL

    show binlog events 找到对应的position: Mysql bin_log 日志row格式,如...

  • mysql binlog日志备份脚本

    mysql binlog日志备份脚本mysql binlog日志备份脚本 备份到备份服务器 1) 确定binlog...

  • 0基础自学linux运维-2.34-mysql binlog 日

    一、前言 1.1.binlog 1.1.1 binlog简介 Mysql的binlog日志作用是用来记录mysql...

  • MySQL二进制日志

    MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,...

  • Mysql 日志

    Mysql日志.png 二进制日志binlog 事务日志redo logundo log binlog binlo...

  • MySQL BinLog-2020-02

    MySQL binlog的几种日志录入格式以及区别binlog文件中存储的内容称之为二进制事件,简称事件。我们的每...

  • mysql binlog的日志格式

    Binlog 的日志格式 记录在二进制日志中的事件的格式取决于二进制记录格式。支持三种格式类型: STATEMEN...

网友评论

      本文标题:mysql binlog的日志格式

      本文链接:https://www.haomeiwen.com/subject/itimsktx.html