複製過濾器:
僅複製有限一個或幾個數據庫相關的數據,而非所有;由複製過濾器進行;
有兩種實現思路:
(1) 主服務器
主服務器僅向二進制日誌中記錄有關特定數據庫相關的寫操作;
問題:其它庫的time-point recovery將無從實現;
binlog_do_db= #白名單
binlog_ignore_db= #黑名單
(最好只是用一種,不要同時設定)
(2) 從服務器
從服務器的SQL THREAD僅重放關注的數據庫或表相關的事件,並將其應用於本地;
問題:網絡IO和磁盤IO;
Replicate_Do_DB= #白名單
Replicate_Ignore_DB= #黑名單
Replicate_Do_Table= (必須明確的給出表名)
Replicate_Ignore_Table= (表級別的黑白名單)
Replicate_Wild_Do_Table= (wild表示通配之意,可以使用通配符使用的是glob的通配符)
Replicate_Wild_Ignore_Table=
實驗:
接着之前的半同步複製的兩臺機器做的
先停掉之前的複製
MariaDB [(none)]> stop slave;
設置黑名單不同步mydb
MariaDB [(none)]> set @@global.replicate_ignore_db=mydb;
然後在啓動之前的複製
MariaDB [(none)]> start slave;
然後複製過濾器就是基於這個原理實現的
(這些都是在命令行中定義的,要想永久有效,還是要寫入配置文件中)