如果Replication Source Server未将语句写入其二进制日志,则不会复制语句。如果服务器确实记录语句,则将语句发送到所有副本,每个副本都会确定是否执行它或忽略它。
在源中,您可以控制哪些数据库以使用使用的日志更改--binlog-do-db
和--binlog-Ignore-DB
控制二进制日志记录的选项。有关服务器在评估这些选项时使用的规则的说明,请参阅第17.2.5.1节“数据库级复制和二进制记录选项的评估”。您不应该使用这些选项来控制复制哪些数据库和表。相反,在副本上使用过滤以控制在副本上执行的事件。
在副本方面,关于是否执行或忽略从源收到的语句的决定是根据的- 复制-*
副本已启动的选项。(看第17.1.6节“复制和二进制记录选项和变量”。)由这些选项所治理的过滤器也可以使用该选项动态设置更改复制过滤器
陈述。管理此类过滤器的规则是相同的,无论是在启动时都会创建- 复制-*
选项或副本服务器运行时更改复制过滤器
。请注意,Replication Filters无法在为组复制配置的MySQL Server实例上的组复制特定声道上使用,因为某些服务器上的过滤事务将使该组无法以一致状态达到协议。
在最简单的情况下,当没有- 复制-*
选项,副本执行从源收到的所有语句。否则,结果取决于给出的特定选项。
数据库级选项(- 一次性do-db
那- 重新删除-db
)首先检查;看第17.2.5.1节“数据库级复制和二进制记录选项的评估”,用于描述此过程。如果未使用数据库级选项,则选项检查进入可能正在使用的任何表级选项(请参阅第17.2.5.2节“表级复制选项的评估”是关于这些)的讨论。如果使用了一个或多个数据库级别选项但无匹配,则不会复制语句。
仅对影响数据库的语句(即,创建数据库
那删除数据库
, 和改变数据库
),数据库级选项始终优先于任何内容- 普通话 - 野生桌子
选项。换句话说,对于此类陈述,- 普通话 - 野生桌子
如果且仅当没有适用的数据库级选项时,请选中选项。
要使给定的选项集的效果更容易,建议您避免混合做-*
和忽略-*
选项或包含具有选项的通配符的选项。
如果有的话- 重写 - 重写-dB
指定了选项,在此之前应用了它们- 复制-*
过滤规则已测试。
所有复制过滤选项都遵循相同的规则,以满足适用于MySQL服务器其他位置的数据库和表的名称,包括效果dreame_case_table_names.
系统变量。