mysql主從中非同步和半同步的區別

2021-09-21 00:01:06 字數 360 閱讀 4814

mysql主從複製,預設是非同步複製。非同步複製,即master執行完事物並提交後,二進位制日誌記錄完這些更新操作後,就又開始下一批事物。並不關心這些更新是否被複製到從上。

而半同步複製則相反,它需要等待至少一台mysql的從伺服器接收到master的二進位制日誌後,才開始執行下一批事物。在這個等待過程中,如果主備網路故障或者備庫掛了,主庫在事務提交後等待10秒(rpl_semi_sync_master_timeout的預設值)後,就會繼續。這時,主庫就會變回原來的非同步狀態。

當mysql在載入並開啟semi-sync外掛程式後,每乙個事務需等待備庫接收日誌後才返回給客戶端。如果做的是小事務,兩台主機的延遲又較小,則semi-sync可以實現在效能損失很小的情況下,實現零資料丟失。

MySQL主從複製 半同步複製原理

在mysql5.5之前的版本中,mysql的複製是非同步複製,主庫和從庫的資料之間存在一定的延遲,比如網路故障等各種原因,這樣子容易存在隱患就是 當在主庫寫入乙個事務成功後並提交了,但是由於從庫延遲沒有及時得到主庫推送的binlog日誌時,或者主庫突然宕機了,那麼此時從庫就可能損失這個事務,從而造成...

MySQL的非同步複製 全同步複製與半同步複製

非同步複製 非同步複製,主庫將事務 binlog 事件寫入到 binlog 檔案中,此時主庫只會通知一下 dump 執行緒傳送這些新的 binlog,然後主庫就會繼續處理提交操作,而此時不會保證這些 binlog 傳到任何乙個從庫節點上。半同步複製 半同步複製,是介於全同步複製與全非同步複製之間的一...

mysql非同步複製 半同步複製 組複製

sorce不管replica的死活,寫進binlog後,commit完成就算成功。如果最後乙個event沒有發給replica,主庫就掛了,那麼就會有丟失資料的風險。通過官方的半同步外掛程式,將binlog寫完後,傳送給replica,當replica寫入到relay log後,在主庫commit。...