MariaDB(mysql)之半同步複製及複製過濾器的使用

一、半同步複製

1、什麼是半同步複製

   當主服務器發起任何寫操作時,這個寫操作必須寫到二進制日誌文件中,並通知給從服務器,從服務器接下來並且在本地完成數據修改,而後反饋同步成功給主服務器,然後主服務器才返回OK狀態;像這樣的,只有等從服務器返回狀態結果給主服務器,主服務器再返回狀態,這叫同步,而mysql其實默認是工作於異步模式的

   在主從架構中,可以有一主多從,而主服務器只等待其中最快的一臺從服務器響應,而不用等待所有的從服務器響應,所以叫半同步

2、實現方法

   早期mysql是不支持半同步複製的,後利益於goolge爲mysql貢獻了一個插件semisync_master.so和semisync_slave.so,因此,要想實現半同步複製,我們需先安裝這兩個插件

wKioL1NL8AmAunRuAAA6CgzyaUw495.png

3、半同步複製的實現

   1)在主服務器上安裝半同步插件並設置

wKioL1NL8PPgpPOtAACKt_RdSso320.png

   2)查看主服務器上的半同步功能是否開戶成功

wKioL1NL8TPRlGARAAA1ySXkUpo567.png

   3)在從服務器上安裝半同步插件

wKiom1NL8Yni_jiNAABlHEVMeE8681.png

   4)查看從服務器的半同步功能是否啓動成功

wKioL1NL8X-TU191AAA4xq1BD30018.png

   5)在主服務器上驗證半同步複製是否生效,如果出現下面那項,則說明成功

wKioL1NL8bySUNwvAABLPb2JsLk275.png

二、複製過濾器的使用

1、關於過濾的一些選項

   1)master,主服務器

   其中主服務器只可過濾到庫級別,如果想要過濾表級別的,則應該在從服務器上設置

   要想使設置永久生效,就寫入配置文件

   ①、binlog_do_db=

       僅複製指定庫

   ②、binlog_ignore_db=

       忽略指定庫的複製

   2)slave,從服務器

   ①、replicate_do_db=

       僅複製指定庫

   ②、replicate_ignore_db=

       忽略指定庫的複製

   ③、replicate_do_table=db_name.table_name

       基於表做白名單

   ④、replicate_ignore_table=

       基於表做黑名單

   ⑤、基於通配做過濾

       replicate_wild_do_table=

       replicate_wild_ignore_table=

2、複製過濾器的使用

   1)基於庫做過濾

   (1)在主服務器上做school過濾

wKioL1NL9pOAsM_IAABJUlrcUcg207.png

   (2)在主服務器上創建school庫

wKioL1NL9xjTkw2uAAA3IEJlQxA136.png

   (3)在從服務器上做驗證,剛纔在主服務器上過濾的那個庫沒有同步到從服務器上來

wKioL1NL9z3x5N1YAABNuMoMwb0025.png

   2)基於表做過濾

   (1)在從服務器上做hlbrc庫的students表過濾

wKiom1NL99iy1Ns5AABlABgeaII547.png

   (2)在從服務器查看從服務器中的hlbrc庫中的students表中的信息

wKioL1NL-FXS_3BVAAAwAuEkSS4236.png

   (3)主服務器上也有一個hlbrc庫,向其students表中插入一個數據

wKiom1NL-RSiycslAABFV5v5eqI236.png

   (4)來到從服務器驗證,剛纔在主服務器插入的數據沒有同步過來,說明在從服務器上做基於表過濾成功

wKioL1NL-RfTJbthAABdj19f8iQ442.png

   (5)測試hlbrc中的其它表是否可以同步到從服務器上,先在主服務器上創造一張students表

wKiom1NL-XyR6ajJAABfjKxBWgc964.png

   (6)到從服務器上測試,hlbrc庫中的其它表可同步到從服務器上,過濾只應用到的確實是hlbrc庫中的students表

wKioL1NL-aST_QUxAAAqs7Tt6lE533.png






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章