mysql 复制过滤重复如何解决
数据库  /  管理员 发布于 6年前   142
1、replicate_do_db 和 replicate_ignore_db 不要同时出现。容易出现混淆。也是毫无意义的。
Replicate_Do_DB: db1
Replicate_Ignore_DB: db2
statement模式:
使用use 语句
use db1;insert into tb1 values (1);
use db2;insert into tb2 values (2);
以上在slave上均能正确复制,tb1 有数据,tb2没有数据。
不使用use 语句
insert into db1.tb1 values (11);
insert into db2.tb2 values (11);
结果tb1没有数据,tb2也没有数据(按照文档上来讲,应该有的)
row模式:
无论是否使用use 语句,均能正确复制
小结:对于statement模式,SQL语句必须使用use 语句,并设置设置多个replicate_do_db来复制多个DB。
2、只进行表级别过滤的时候,对于statement模式,无论是否使用use语句,均能正确复制。row模式也是可以的。(表名它匹配的表的全名:数据库名+表名)
replicate_do_table=db1.tb1
statement模式:
use db1; insert into tb1 values (22);
insert into db1.tb1 values (22);
两者的复制结果一致。
(同样do 和 ignore 不要混用,除非出现过滤DB的情况)
3、有DB过滤规则的时候,statment模式必须使用USE语句,不能出现 db.表名,db.视图,db.存储程序这样的形式。row模式完胜!
replicate-ignore-db = db1
replicate-do-table = db2.tbl2
USE db1;
INSERT INTO db2.tbl2 VALUES (1);
row模式下,
默认DB不是db1,所以跳过第一条规则,执行表的规则,行被插入
statement模式下,
insert 语句被忽略,表的过滤规则已经在DB级别停止,所以没有做检查。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号