半同步複製簡介

2021-09-20 16:45:23 字數 1170 閱讀 8433

半同步複製簡介:

預設情況下,mysql 5.5/5.6/5.7和mariadb 10.0/10.1的複製功能是非同步的,非同步複製可以提供最佳的效能,主庫把binlog日誌傳送給從庫,這一動作就結束了,並不會驗證從庫是否接收完畢,但這同時也帶來了很高的風險,這就意味著當主伺服器或從伺服器發生故障時,有可能從機沒有接收到主機傳送過來的binlog日誌,會造成主伺服器/從伺服器的資料不一致,甚至在恢復時會造成資料丟失。

為了解決上述問題,mysql 5.5 引入了一種半同步複製(semi replication)模式,該模式可以確保從伺服器接收完主伺服器傳送的binlog日誌檔案並寫入自己的中繼日誌(relay log)裡,然後會給主伺服器乙個反饋,告訴對方已經接收完畢,這時主庫執行緒才返回給當前session告知操作完成,如下圖所示。當出現超時情況時,源主伺服器會暫時切換到非同步複製模式,直到至少有一台設定為半同步複製模式的從伺服器及時收到資訊為止(見圖2-140)。

簡言之,半同步複製在一定程度上可保證提交的事務已經傳給了至少乙個備庫,因此,半同步複製與非同步複製相比,進一步提高了資料的完整性。

注意 半同步複製模式必須在主伺服器和從伺服器同時啟用,否則主伺服器預設使用非同步複製模式。

MySQL半同步複製

1 從mysql5.5開始,mysql以外掛程式的形式支援半同步複製。如何理解半同步呢?首先我們來看看非同步,全同步的概念 非同步複製 asynchronous replication mysql預設的複製即是非同步的,主庫在執行完客戶端提交的事務後會立即將結果返給給客戶端,並不關心從庫是否已經接收...

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

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

MySQL 複製過濾和半同步複製

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