binlog_row_image参数修改测试
程序员文章站
2022-06-19 12:00:15
binlog_row_image参数修改实践一、binlog_row_image参数解释二、场景测试题外话今天开发同事在测试环境用canal抽取数据时,遇到问题,度娘发现大概率是参数binlog_row_image的设置导致,于是做了相应的检查测试。一、binlog_row_image参数解释前提binlog格式必须为row格式或者mixed格式,不可以是statement格式。名称解释:before image:前镜像,即数据库表中修改前的内容。after image:后镜像,即数据库...
binlog_row_image参数修改实践
题外话
今天开发同事在测试环境用canal抽取数据时,遇到问题,度娘发现大概率是参数binlog_row_image的设置导致,于是做了相应的检查测试。
一、binlog_row_image参数解释
前提
binlog格式必须为row格式或者mixed格式,不可以是statement格式。
名称解释:
before image:前镜像,即数据库表中修改前的内容。
after image:后镜像,即数据库表中修改后的内容。
参数设置
binlog_row_image参数可以设置三个合法值: FULL、MINIMAL、NOBLOB
FULL: Log all columns in both the before image and the after image.
binlog日志记录所有前镜像和后镜像。
MINIMAL: Log only those columns in the before image that are required to identify the row to be changed; log only those columns in the after image where a value was specified by the SQL statement, or generated by auto-increment.
binlog日志的前镜像只记录唯一识别列(唯一索引列、主键列),后镜像只记录修改列。
NOBLOB: Log all columns (same as full), except for BLOB and TEXT columns that are not required to identify rows, or that have not changed.
binlog记录所有的列,就像full格式一样。但对于BLOB或TEXT格式的列,如果他不是唯一识别列(唯一索引列、主键列),或者没有修改,那就不记录。
分析
从以上参数解释可以很简单的看出binlog_row_image参数设置不同值的区别
binlog_row_image=FULL,binlog记录所有数据的前后镜像,是最安全的设置,但性能也是最低的,如果数据出现误操作,可以能通过flashback或binlog2sql等快速闪回工具恢复数据,如果对短时间前后数据安全性要求比较高,推荐此设置。
binlog_row_image=MINIMAL,binlog日志的前镜像只记录唯一识别列(唯一索引列、主键列),后镜像只记录修改列,性能是最高的,占用的资源等也是最少的,如果数据出现误操作,不能通过flashback或binlog2sql等快速闪回工具恢复数据。
binlog_row_image=NOBLOB,binlog记录所有的列,就像full格式一样。但对于BLOB或TEXT格式的列,如果他不是唯一识别列(唯一索引列、主键列),或者没有修改,那就不记录。此设置可以简单理解为在没有text和blob等大字段时,效果同FULL一样;在有text和blob等大字段时,如果大字段不是唯一识别列(唯一索引列、主键列),或者没有修改,那就不记录。
二、场景测试
(1)binlog_row_image=MINIMAL
set global binlog_row_image=‘MINIMAL’;
update一条数据:
binlog记录:
(2)binlog_row_image=FULL
set global binlog_row_image=‘FULL’;
update一条数据:
binlog记录:
PS:另一个设置NOBLOB,这里忽略。
注意insert和delete有一点区别,因为insert没有前镜像,delete没有后镜像,如下:
通过以上测试可以明显的看到各优缺点,个人还是推荐binlog_row_image=FULL,此设置为官方的默认设置,也是最安全的设置。
哎哟,不错噢! - - - - - - 欢迎指出有误的地方以及补充更好的方法
本文地址:https://blog.csdn.net/Tah_001/article/details/107605614