close

安裝方式很簡單,(基本的replication設定跳過)

分別在master和slave上安裝plugin並啟用

master

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

SET GLOBAL rpl_semi_sync_master_enabled=on;

slave

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

SET GLOBAL rpl_semi_sync_slave_enabled=on;

 

Master重要參數調整(Slave沒有啥重要的參數)
SET GLOBAL rpl_semi_sync_master_wait_point='AFTER_SYNC' | 'AFTER_COMMIT';
AFTER_SYNC:master crash時,slave可能多資料;讀取一致.(個人Prefer這個)
AFTER_COMMIT:master crash時,master可能多資料;可能髒讀.

SET GLOBAL rpl_semi_sync_master_timeout=2000;
等待all slaves回應的時間接超過就轉成異步同步複寫

SET GLOBAL rpl_semi_sync_master_wait_no_slave=1;
=1:當沒有半同步clients時,會等待time out的時間才轉成異步同步; =0:當沒有半同步clients時,會直接轉成異步同步

重要狀態說明
Master
Rpl_semi_sync_master_clients -> 半同步的slave clients數量
Rpl_semi_sync_master_net_avg_wait_time -> 網路平均回應時間,用以評估參數的rpl_semi_sync_master_timeout設定
Rpl_semi_sync_master_status -> master是否為半同步
Slave
Rpl_semi_sync_slave_status -> slave是否為半同步

結語

為何會說雞肋呢?

是因為它會自動轉換為異步複寫,(可能網路變慢,硬碟壞軌,balabal...)

所以當沒有在監控時,依樣可能遇到在異步下的crash情況.GG

 

參考
Semisynchronous Replication
MariaDB 10.3.8 半同步复制(semi-synchronous Replication)

 

arrow
arrow
    文章標籤
    Mariadb semi-synchronous
    全站熱搜

    abcg5 發表在 痞客邦 留言(1) 人氣()