mysql5.5版本開始系統提供半同步複製機制,就是用來保障主從之間數據同步的及時性。在半同步機制下,master節點只要確認有至少一個slave節點接收到了事務,即向發起請求的客戶端返回操做成功的信息。mysql
查看當前系統安裝的全部插件:sql
mysql>show plugins;異步
查看mysql插件目錄:插件
mysql>show variables like 'plugin_dir';線程
半同步插件共有兩個,分別對應主從節點,semisync_master.so和semisync_slave.so,事務
在master節點執行命令,加載semisynchronous插件:同步
master> install plugin rpl_semi_sync_master soname 'semisync_master.so';ast
在slave節點也加載:配置
slave> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';plugin
經過show plugins檢查插件是否處於可用狀態,而後啓用改功能:
在master節點設置:
master> set global rpl_semi_sync_master_enabled = 1;
master> set global rpl_semi_sync_master_timeout = 3000;
rpl_semi_sync_master_enabled:用來控制是否在master節點啓用半同步複製,1即啓用狀態;
rpl_semi_sync_master_timeout:用來指定master節點等待slave響應的時間,單位是毫秒,默認爲10000即10秒,這裏設置爲3秒。若是超過指定時間slave節點仍無響應,那麼當前複製環境就臨時被轉換爲異步複製。
在slave節點設置:
slave> set global rpl_semi_sync_slave_enabled = 1;
rpl_semi_sync_slave_enabled:用來控制slave節點是否啓用半同步複製;
說明:上述修改是動態修改,建議將全部配置保存在初始化參數文件中。
配置好後,必需要從新啓動slave節點的IO_THREAD線程:
slave> stop slave IO_THREAD;
slave> start slave IO_THREAD;
這一步是讓slave節點從新鏈接master節點,註冊成爲半同步slave身份;