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

17.2.3.3 Replication Rule Application

原创 由迪 2020-03-04
398

本节提供其他说明以及复制过滤选项的不同组合的用法示例。

下表提供了复制过滤器规则类型的一些典型组合:

条件(选项类型) 结果
完全没有–replicate-选择: 从机执行从主机接收的所有事件。
–replicate-
-db 选项,但没有表格选项: 从站使用数据库选项接受或忽略事件。因为没有表限制,它将执行那些选项允许的所有事件。
–replicate-*-table 选项,但没有数据库选项: 因为没有数据库条件,所以在数据库检查阶段接受所有事件。从站仅根据表选项执行或忽略事件。
数据库和表选项的组合: 从站使用数据库选项接受或忽略事件。然后,它根据表选项评估这些选项允许的所有事件。有时这会导致结果似乎违反直觉,并且可能会有所不同,具体取决于您使用的是基于语句的复制还是基于行的复制。请参阅文字作为示例。
接下来是一个更复杂的示例,其中我们检查了基于语句的设置和基于行的设置的结果。

假设我们mytbl1在数据库db1和主mytbl2数据库db2上都有两个表,并且从数据库运行以下选项(并且没有其他复制过滤选项):

replicate-ignore-db = db1
replicate-do-table = db2.tbl2
现在,我们在主服务器上执行以下语句:

USE db1;
INSERT INTO db2.tbl2 VALUES (1);
从站上的结果根据二进制日志格式的不同而有很大差异,在两种情况下都可能不符合初始预期。

基于语句的复制。 该USE语句导致 db1成为默认数据库。因此,该 --replicate-ignore-db选项匹配,并且该 INSERT语句被忽略。表格选项未选中。

基于行的复制。 使用基于行的复制时,默认数据库对从属服务器如何读取数据库选项没有影响。因此,该 USE语句在–replicate-ignore-db选项的处理方式上没有区别 :此选项指定的数据库与该INSERT 语句更改数据的数据库不匹配,因此从服务器继续检查表选项。指定 --replicate-do-table的表与要更新的表匹配,并插入行。

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

评论