16.2.5.1 评估数据库级复制和二进制日志记录选项

在评估复制选项时,副本首先检查是否有适用的--replicate-do-db--replicate-ignore-db选项。使用--binlog-do-db--binlog-ignore-db时,过程类似,但是在源上检查了选项。

检查数据库是否匹配取决于所处理语句的二进制日志格式。如果该语句已使用行格式记录,则要在其中更改数据的数据库是已检查的数据库。如果已使用语句格式记录了该语句,则默认数据库(用USE语句指定)是已检查的数据库。

Note

使用行格式只能记录 DML 语句。即使binlog_format=ROW,DDL 语句也始终记录为语句。因此,始终会根据基于语句的复制规则来过滤所有 DDL 语句。这意味着您必须使用USE语句显式选择默认数据库,才能应用 DDL 语句。

对于复制,此处列出了涉及的步骤:

Important

在此阶段仍允许的语句尚未实际执行。在还检查了所有 table 级选项(如果有)之后,该语句才执行,并且该过程的结果允许执行该语句。

对于二进制日志记录,此处列出了涉及的步骤:

Important

对于基于语句的日志记录,仅在为CREATE DATABASEALTER DATABASEDROP DATABASE语句指定的规则中有 exception。在这些情况下,确定,记录或忽略更新时,正在创建,更改或删除*的数据库将替换默认数据库。

--binlog-do-db有时可以 table 示“忽略其他数据库”。例如,当使用基于语句的日志记录时,仅使用--binlog-do-db=sales运行的服务器不会写入默认数据库不同于sales的二进制日志语句。当使用具有相同选项的基于行的日志记录时,服务器仅记录那些更改sales中的数据的更新。

首页