您好,登錄后才能下訂單哦!
本文主要給大家介紹Mysql復制過濾器簡析,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續在億速云行業資訊里面關注我的更新文章的。
復制過濾器:僅復制有限一個或幾個數據庫相關的數據,而非所有;由復制過濾器進行;
有兩種過濾方式,在主云服務器上進行過濾或者是在從服務器上進行過濾
(1) 主服務器上過濾
實現有選擇的復制,只復制主節點上的一部分,從源頭上選擇幾個庫主節點過濾,寫入二進制日志的時候有選擇,影響其他庫的時間點還原
主服務器僅向二進制日志中記錄有關特定數據庫相關的寫操作;
問題:其它庫的time-point recovery將無從實現,影響其他庫的時間點還原;
主節點上使用以下的選項,以下是黑白名單,同一庫二者選其一即可
binlog_do_db= #白名單,向binlog中寫入哪些庫的二進制log,多個庫名用逗號分隔
binlog_ignore_db=#黑名單,此處寫入的庫不記錄二進制log,多個庫用逗號隔開
但是這里有個問題是,如果某個庫故障,要還原的時候就會出問題,所以一般不在主節點上過濾,主節點建議將所有的庫都寫入二進制日志。
(2) 從服務器上過濾
從服務器的SQL THREAD僅重放關注的數據庫或表相關的事件,并將其應用于本地;
問題:會消耗更多的網絡IO和磁盤IO;
重放庫的選擇:
Replicate_Do_DB=
Replicate_Ignore_DB=
重放表的選擇:
Replicate_Do_Table=
Replicate_Ignore_Table=
這兩個和上面兩個類似,下面的表可以使用通配符
Replicate_Wild_Do_Table=
Replicate_Wild_Ignore_Table=
如果同一庫既被允許,又被拒絕,則該庫將被復制
例子
假設主服務器上有一個庫為sunnydb,但是從服務器重放時不重放該數據庫,因此在從服務器73上設定如下,
注意,設定前要先關閉slave進程
MariaDB [test2]> stop slave;
MariaDB [test2]> set @@global.Replicate_ignore_DB=sunnydb;#該參數建議寫入配置文件,否則下次重啟就會失效
那么在主服務器71上創建數據庫sunnydb,該庫的所有二進制信息都會被復制到從服務器的slave_log,但是都不會被從服務器73上的sql線程重放sunnydb庫的數據。
看了以上關于Mysql復制過濾器簡析,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。