天天看點

半同步複制簡介

半同步複制簡介:

預設情況下,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)。

<a href="http://s3.51cto.com/wyfs02/M01/8D/17/wKioL1iF6wPA816QAAAxX2IR-3Q062.jpg" target="_blank"></a>

簡言之,半同步複制在一定程度上可保證送出的事務已經傳給了至少一個備庫,是以,半同步複制與異步複制相比,進一步提高了資料的完整性。

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

<b>本文轉自淺景塵51CTO部落格,原文連結:http://blog.51cto.com/857803451/1951884</b><b> ,如需轉載請自行聯系原作者</b>

下一篇: ProtoBuf協定

繼續閱讀