mysql 復制過濾反復若何處理。本站提示廣大學習愛好者:(mysql 復制過濾反復若何處理)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql 復制過濾反復若何處理正文
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級別停滯,所以沒有做檢討。