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