學習mysql細節整理(二)
mysql管理之道自我整理(二)
半同步複製:該模式可以確保從服務器接受完主服務器發送的binlog日誌文件並寫入自己的中繼日誌relay log裏,然後給主服務器一個反饋,告訴對方已經接受完畢,這時主庫線程才返回給當前session告知操作完成。當出現超時現象時,源主服務器會暫時切換到異步複製模式,知道至少有一臺設置爲半同步複製模式的從服務器及時收到信息位爲止。
注意:半同步模式必須主從服務器同時啓用才生效,否則默認使用異步模式。
半同步安裝配置:半同步負載插件在目錄/usr/local/mysql/lib/mysql/plugin下只需按照下面步驟即可簡單安裝:
#pwd
/usr/local/mysql/lib/mysql/plugin
ll -h semisync_*
-rwxr-xr-x 1 root root 409K Oct 26 16:02 semisync_master.so
-rwxr-xr-x 1 root root 245K Oct 26 16:02 semisync_slave.so
在master和slave首次啓動是,安裝插件,並開啓半同步複製。
install plugin rpl_semi_sync_master soname 'semisync_master.so';
set global rpl_semi_sync_master_enabled=on;
install plugin rpl_semi_sync_master soname 'semisync_slave.so';
set global rpl_semi_sync_slave_enabled=on
加載一次就可以,就會將該插件記錄到系統表mysql.plugin中,下次啓動系統會自動加載該插件。
rpl_semi_sync_master_enabled=1
rpl_semi_sync_slave_enabled=1
寫入到my.cnf中即可。
參數說明:
rpl_semi_sync_master_enabled=on 表示在master上開啓半同步複製模式。
rpl_semi_sync_master_timeout=10000,該參數在默認10000毫秒,即10秒。檢測超時時間。
rpl_semi_sync_master_wait_no_slave,表示是否允許master每隔事物提交後都要等待slave的接收信號。默認是on,都等待。off,則slave追趕上後,也不會開啓半同步複製模式,需要手動開啓。
rpl_semi_sync_master_trace_level=32,指用於開啓半同步模式的調試級別,默認32.
rpl_semi_sync_slave_enabled=on 表示slave上開啓半同步模式。
rpl_semi_sync_slave_trace_level=32,指用於開啓半同步模式的調試級別,默認32.
異步複製的性能(吞吐率)要稍好於半同步複製。