暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[ACDU 翻译] MySQL 17.2.1.3 二进制日志中安全和不安全语句的确定

原创 由迪 2022-09-07
308

MySQL 复制中语句的“安全性”是指语句及其效果是否可以使用基于语句的格式正确复制。如果该语句为真,我们称该语句为 安全的;否则,我们将其称为unsafe。

一般来说,如果一个语句是确定性的,它就是安全的,如果不是,它就是不安全的。但是,某些非确定性函数 被认为是不安全的(请参阅 本节后面的非确定性函数不被认为是不安全的)。此外,使用浮点数学函数结果的语句(依赖于硬件)总是被认为是不安全的(参见 第 17.5.1.12 节,“复制和浮点值”)。

处理安全和不安全的语句。 根据语句是否被认为是安全的,以及相对于二进制日志记录格式(即 的当前值 binlog_format),对语句的处理方式会有所不同。

  • 使用基于行的日志记录时,对安全和不安全语句的处理没有区别。
  • 使用混合格式日志记录时,标记为不安全的语句使用基于行的格式进行记录;被视为安全的语句使用基于语句的格式记录。
  • 使用基于语句的日志记录时,标记为不安全的语句会为此生成警告。安全语句正常记录。

每个标记为不安全的语句都会生成一个警告。如果在源上执行了大量此类语句,则可能导致错误日志文件过大。为了防止这种情况,MySQL 有一个警告抑制机制。只要 50 个最近的 ER_BINLOG_UNSAFE_STATEMENT 警告在任何 50 秒内生成超过 50 次,就会启用警告抑制。激活后,这会导致此类警告不写入错误日志;相反,对于这种类型的每 50 个警告,一个注释The last warning was repeated *N* times in last *S* seconds写入错误日志。只要最近 50 个此类警告在 50 秒或更短时间内发出,这种情况就会持续;一旦速率降至此阈值以下,警告将再次正常记录。警告抑制对如何确定基于语句的日志记录的语句安全性没有影响,也对如何向客户端发送警告没有影响。MySQL 客户端仍然会为每个这样的语句收到一个警告。

有关更多信息,请参阅第 17.2.1 节,“复制格式”

被认为不安全的语句。 具有以下特征的语句被认为是不安全的:

有关其他信息,请参阅 第 17.5.1 节,“复制功能和问题”。17.2.1.3 二进制日志中安全和不安全语句的确定

MySQL 复制中语句的“安全性”是指语句及其效果是否可以使用基于语句的格式正确复制。如果该语句为真,我们称该语句为 安全的;否则,我们将其称为unsafe。

一般来说,如果一个语句是确定性的,它就是安全的,如果不是,它就是不安全的。但是,某些非确定性函数 被认为是不安全的(请参阅 本节后面的非确定性函数不被认为是不安全的)。此外,使用浮点数学函数结果的语句(依赖于硬件)总是被认为是不安全的(参见 第 17.5.1.12 节,“复制和浮点值”)。

处理安全和不安全的语句。 根据语句是否被认为是安全的,以及相对于二进制日志记录格式(即 的当前值 binlog_format),对语句的处理方式会有所不同。

  • 使用基于行的日志记录时,对安全和不安全语句的处理没有区别。
  • 使用混合格式日志记录时,标记为不安全的语句使用基于行的格式进行记录;被视为安全的语句使用基于语句的格式记录。
  • 使用基于语句的日志记录时,标记为不安全的语句会为此生成警告。安全语句正常记录。

每个标记为不安全的语句都会生成一个警告。如果在源上执行了大量此类语句,则可能导致错误日志文件过大。为了防止这种情况,MySQL 有一个警告抑制机制。只要 50 个最近的 ER_BINLOG_UNSAFE_STATEMENT 警告在任何 50 秒内生成超过 50 次,就会启用警告抑制。激活后,这会导致此类警告不写入错误日志;相反,对于这种类型的每 50 个警告,一个注释The last warning was repeated *N* times in last *S* seconds写入错误日志。只要最近 50 个此类警告在 50 秒或更短时间内发出,这种情况就会持续;一旦速率降至此阈值以下,警告将再次正常记录。警告抑制对如何确定基于语句的日志记录的语句安全性没有影响,也对如何向客户端发送警告没有影响。MySQL 客户端仍然会为每个这样的语句收到一个警告。

有关更多信息,请参阅第 17.2.1 节,“复制格式”

被认为不安全的语句。 具有以下特征的语句被认为是不安全的:

有关其他信息,请参阅 第 17.5.1 节,“复制功能和问题”

最后修改时间:2022-09-07 17:30:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论