MySQL半同步復制(Semi-synchronous Replication) 在企業應用中,MySQL經常采用主從構架,或者主主架構,這樣可以實現MySQL服務器的負載均衡,提升MySQL服務器的性能.而關鍵是,可以實現MySQL的數據同步復制功能,來為企業數據備份提供一種方便的機制 默認情況下,MySQL5.5 的復制功能是異步的,這意味著當談到數據一致性時,主服務器及其從服務器是獨立的。異步復制可以提供最佳的性能,因為主服務器在將更新的數據寫入它的二進制日志(Binlog)文件中後,無需等待驗證更新數據是否已經復制到至少一台拓撲從服務器中,就可以自由處理其它進入的事務處理請求。雖然快,但這也同時帶來了很高的風險,如果在主服務器或從服務器端發生故障,會造成主服務器/從服務器數據的不一致,甚至在恢復時造成數據丟失。 MySQL5.5 引入了一種半同步復制功能,該功能可以確保主服務器和訪問鏈中至少一台從服務器之間的數據一致性和冗余。在這種配置結構中,一台主服務器和其許多從服務器都進行了配置,這樣在復制拓撲中,至少有一台從服務器在父主服務器進行事務處理前,必須確認更新已經收到並寫入了其中繼日志(Relay Log)。當出現超時,源主服務器必須暫時切換到異步復制模式重新復制,直到至少有一台設置為半同步復制模式的從服務器及時收到信息。 主要注意的地方: 1)MySQL復制過程在網絡上傳輸時是明文的,不過支持SSL加密. 2)MySQL復制要求主從架構的服務器的server id 不能相同. 3)半同步復制模式必須在主服務器和從服務器端同時啟用,否則主服務器默認使用異步復制模式。