本文主要描述 MySQL Group Replication的簡易原理、搭建過程以及故障維護管理內(nèi)容。由于是新技術,未在生產(chǎn)環(huán)境使用過,本文均是虛擬機測試,可能存在考慮不周跟思路有誤情況,歡迎交流指正。
如果轉(zhuǎn)載,請注明博文來源: www.cnblogs.com/xinysu/ ,版權(quán)歸 博客園 蘇家小蘿卜 所有。望各位支持!
1 What's Group Replication
主從復制,一主多從,主庫提供讀寫功能,從庫提供寫功能。當一個事務在master 提交成功時,會把binlog文件同步到從庫服務器上落地為relay log給slave端執(zhí)行,這個過程主庫是不考慮從庫是否有接收到binlog文件,有可能出現(xiàn)這種情況,當主庫commit一個事務后,數(shù)據(jù)庫發(fā)生宕機,剛好它的binlog還沒來得及傳送到slave端,這個時候選任何一個slave端都會丟失這個事務,造成數(shù)據(jù)不一致情況。原理圖如下:
為了避免出現(xiàn)主從數(shù)據(jù)不一致的情況,MySQL引入了半同步復制,添加多了一個從庫反饋機制,這個有兩種方式設置:
主庫執(zhí)行完事務后,同步binlog給從庫,從庫ack反饋接收到binlog,主庫提交commit,反饋給客戶端,釋放會話;
主庫執(zhí)行完事務后,主庫提交commit ,同步binlog給從庫,從庫ack反饋接收到binlog,反饋給客戶端,釋放會話;