binlog_format参数

binlog_format参数

属性
命令行格式 –binlog-format=format
系统变量 binlog_format
范围 全局,会话
动态
类型 列举
默认值 (> = 5.7.7)ROW
默认值 (<= 5.7.6) STATEMENT
有效值 ROW、STATEMENT、MIXED

设置二进制日志格式,binlog_format包含三个值:STATEMENT,ROW或MIXED。请参见 第16.2.1节“复制格式”。 binlog_format由–binlog-format启动时的 选项或binlog_format运行时的 变量设置。

注意:
可以在运行时更改日志记录格式,但建议您不要在复制过程中对其进行更改。这部分是因为slave库不同步;给定的MySQL服务器只能更改自己的日志记录格式。

在MySQL 5.7.7之前,默认格式是 STATEMENT。在MySQL 5.7.7及更高版本中,默认值是ROW。 例外:在NDB群集中,默认值是MIXED; NDB群集不支持基于语句的复制。

用户必须有权SUPER 设置全局binlog_format值或会话值。

当MIXED指定,基于语句的复制时,除了仅基于行的复制是保证导致正确的结果的情况。例如,当语句包含用户定义函数(UDF)或UUID() 函数时会发生这种情况。

在运行时无法切换复制格式时有例外:
1. 从存储的函数或触发器中。
2. 如果会话当前处于基于行的复制模式并且已打开临时表。
3. 试图在这些情况下切换格式会导致错误。

有关在设置每种二进制日志记录格式时如何处理存储程序(存储过程和函数,触发器和事件)的详细信息,请参见 第23.7节“存储程序的二进制日志记录”。

二进制日志格式会影响以下服务器选项的行为:
--replicate-do-db
--replicate-ignore-db
--binlog-do-db
--binlog-ignore-db

这些效果在各个选项的描述中详细讨论。

猜你喜欢

转载自blog.csdn.net/q936889811/article/details/80192990