10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

17.2.1复制格式

复制作品,因为从源中读取到二进制日志的事件,然后在副本上处理。根据事件类型以不同格式记录事件以不同的格式记录。使用的不同复制格式对应于在源二进制日志中记录事件时使用的二进制日志记录格式。二进制记录格式与复制期间使用的术语之间的相关性:

  • 使用基于语句的二进制日志记录时,源将SQL语句写入二进制日志。通过在副本上执行SQL语句来对源的复制来复制副本。这就是所谓的基于语句的复制(可以缩写为SBR.),它对应于基于MySQL语句的二进制记录格式。

  • 使用基于行的日志记录时,源写入活动到二进制日志,指示单个表行如何更改。通过将表示更改的事件复制到副本,复制源对副本的复制。这就是所谓的基于行的复制(可以缩写为RBR.)。

    基于行的日志记录是默认方法。

  • 您还可以配置MySQL以使用基于语句和基于行的日志记录的混合,具体取决于哪个最适合更改要记录的更改。这就是所谓的混合格式日志记录。使用混合格式日志记录时,默认使用基于语句的日志。根据某些语句,以及使用的存储引擎,日志在特定情况下自动切换到基于行。使用混合格式的复制称为基于混合的复制或者混合格式复制。有关更多信息,请参阅第5.4.4.3节“混合二进制日志记录格式”

NDB集群。MySQL NDB群集8.0中的默认二进制记录格式是混合。您应该注意,NDB群集复制始终使用基于行的复制,并且NDB.存储引擎与基于语句的复制不兼容。看第23.6.2节“NDB群集复制的一般要求”, 想要查询更多的信息。

使用时混合格式,二进制日志记录格式部分由正在使用的存储引擎和执行语句。有关混合格式日志记录的详细信息以及管理不同日志记录格式的支持的规则,请参阅第5.4.4.3节“混合二进制日志记录格式”

通过设置运行MySQL服务器中的日志记录格式binlog_format.服务器系统变量。可以使用会话或全局范围设置此变量。新设置生效的何时以及如何以及如何与其他MySQL Server系统变量相同。将当前会话的变量设置为持续直到该会话结束,并且其他会话不可见更改。将变量设置为全局对更改后连接的客户端生效,但不适用于任何当前客户端会话,包括更改变量设置的会话。要使全局系统变量设置永久性,以便跨服务器重新启动,必须​​将其设置为选项文件。有关更多信息,请参阅第13.7.6.1节“可变分配的SECTAX”

有些条件下,您无法在运行时更改二进制记录格式,也可以执行此操作,因此会导致复制失败。看第5.4.4.2节“设置二进制日志格式”。

改变全球binlog_format.值需要足以设置全局系统变量的权限。改变会话binlog_format.值需要足以设置受限制会话系统变量的权限。看第5.1.9.1节“系统变量权限”

基于语句和基于行的复制格式具有不同的问题和限制。为了比较他们的相对优势和缺点,参见第17.2.1.1节“基于行和基于行的复制的优势和缺点”

使用基于语句的复制,您可能会遇到复制存储的例程或触发器的问题。您可以使用基于行的复制来避免这些问题。有关更多信息,请参阅第25.7节“存储程序二进制记录”