一、半同步複製
1、什麼是半同步複製
當主服務器發起任何寫操作時,這個寫操作必須寫到二進制日誌文件中,並通知給從服務器,從服務器接下來並且在本地完成數據修改,而後反饋同步成功給主服務器,然後主服務器才返回OK狀態;像這樣的,只有等從服務器返回狀態結果給主服務器,主服務器再返回狀態,這叫同步,而mysql其實默認是工作於異步模式的
在主從架構中,可以有一主多從,而主服務器只等待其中最快的一臺從服務器響應,而不用等待所有的從服務器響應,所以叫半同步
2、實現方法
早期mysql是不支持半同步複製的,後利益於goolge爲mysql貢獻了一個插件semisync_master.so和semisync_slave.so,因此,要想實現半同步複製,我們需先安裝這兩個插件
3、半同步複製的實現
1)在主服務器上安裝半同步插件並設置
2)查看主服務器上的半同步功能是否開戶成功
3)在從服務器上安裝半同步插件
4)查看從服務器的半同步功能是否啓動成功
5)在主服務器上驗證半同步複製是否生效,如果出現下面那項,則說明成功
二、複製過濾器的使用
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過濾
(2)在主服務器上創建school庫
(3)在從服務器上做驗證,剛纔在主服務器上過濾的那個庫沒有同步到從服務器上來
2)基於表做過濾
(1)在從服務器上做hlbrc庫的students表過濾
(2)在從服務器查看從服務器中的hlbrc庫中的students表中的信息
(3)主服務器上也有一個hlbrc庫,向其students表中插入一個數據
(4)來到從服務器驗證,剛纔在主服務器插入的數據沒有同步過來,說明在從服務器上做基於表過濾成功
(5)測試hlbrc中的其它表是否可以同步到從服務器上,先在主服務器上創造一張students表
(6)到從服務器上測試,hlbrc庫中的其它表可同步到從服務器上,過濾只應用到的確實是hlbrc庫中的students表