设置当前会话(Session)的DML是否在日志节点(Change Data Capture,CDC)生成Binlog

sql_log_bin变量可以控制当前会话(Session)的DML在日志节点(Change Data Capture,CDC)是否会生成Binlog,默认情况下允许生成Binlog。批量更新或插入数据时会大量生成Binlog,会对Binlog生成和下游消费端的性能产生较大影响。若实际业务中不需要CDC产生的DML Binlog,可以通过sql_log_bin关闭生成Binlog。

版本限制

实例版本需为5.4.19-20240801_17225050及以上。

说明

语法

SET sql_log_bin={on|off};
说明

sql_log_bin不支持全局(Global)设置,否则会有not support set global sql_log_bin错误提示。

参数说明:

参数名称

说明

off

当前会话(Session)后续执行的DML,不会在CDC生成Binlog。

重要

设置为off后,需要显式地开启事务操作,如果使用Auto Commit事务,会有ERR_SQL_LOG_BIN_NOT_SUPPORT_AUTO_COMMIT错误提示。

on

默认值为on,表示当前会话(Session)后续执行的DML,会在CDC生成Binlog,您可以通过SHOW binlog events;语句查看是否有Binlog生成。更多信息,请参见SHOW BINLOG EVENTS

示例

SET sql_log_bin = off;
BEGIN;
... -- dml
COMMIT; -- 设置显式的事务提交

SHOW binlog events; -- 查看Binlog是否还在继续生成