MySQL半同步複製

2021-08-19 22:51:46 字數 658 閱讀 1761

1 從mysql5.5開始,mysql以外掛程式的形式支援半同步複製。如何理解半同步呢?首先我們來看看非同步,全同步的概念

非同步複製(asynchronous replication)

mysql預設的複製即是非同步的,主庫在執行完客戶端提交的事務後會立即將結果返給給客戶端,並不關心從庫是否已經接收並處理,這樣就會有乙個問題,主如果crash掉了,此時主上已經提交的事務可能並沒有傳到從上,如果此時,強行將從提公升為主,可能導致新主上的資料不完整。

全同步複製(fully synchronous replication)

指當主庫執行完乙個事務,所有的從庫都執行了該事務才返回給客戶端。因為需要等待所有從庫執行完該事務才能返回,所以全同步複製的效能必然會收到嚴重的影響。

半同步複製(semisynchronous replication)

介於非同步複製和全同步複製之間,主庫在執行完客戶端提交的事務後不是立刻返回給客戶端,而是等待至少乙個從庫接收到並寫到relay log中才返回給客戶端。相對於非同步複製,半同步複製提高了資料的安全性,同時它也造成了一定程度的延遲,這個延遲最少是乙個tcp/ip往返的時間。所以,半同步複製最好在低延時的網路中使用。

linux運維部落參考文獻

MySQL 複製過濾和半同步複製

半同步複製主要是為了考慮和解決主從資料一致性的問題,5.5 5.6版本出現的這個功能,然後在5.7版本以後因為出現了mgr複製,就完全的被mgr進行代替了,現在主要是跟mgr進行對比的。半同步複製和普通主從的說明 1 普通主從 主庫dump thread傳送給io thread資料,io接收到資料寫...

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

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

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

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