這篇文章主要講解了“MySQL主從復(fù)制的三種方式分別是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Mysql主從復(fù)制的三種方式分別是什么”吧!
大箐山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,大箐山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為大箐山近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的大箐山做網(wǎng)站的公司定做!
同步復(fù)制指的是當(dāng)主庫提交事務(wù)后,binlog已經(jīng)通過dump線程傳到從庫的中繼日志,主庫需要一直等待從庫的提交確認(rèn),從庫重放完成之后,回復(fù)一個ACK給主庫,主庫這才結(jié)束等待,執(zhí)行后續(xù)操作,注意:如果這個時候有多個從節(jié)點(diǎn),那么主庫等待的時間就越久,所以需要設(shè)置一個超時等待時間。
異步復(fù)制模式為了解決主庫等待時間過長的問題,將返回確認(rèn)取消了,也就是說當(dāng)主庫提交完事務(wù)后,不需要等待從庫提交確認(rèn),就直接執(zhí)行后續(xù)操作,返回客戶端;但是這個就會造成這樣一個問題:當(dāng)主機(jī)提交完事務(wù)后掛了,但是這個時候binlog還沒有同步到從庫,如果強(qiáng)制切換主從的話,就會造成新的主庫數(shù)據(jù)不完整
半同步方式介于同步和異步復(fù)制方式做了一個折中:同樣主庫還是需要等待從庫的確認(rèn)后才執(zhí)行后續(xù)操作,但是不同的是這次不是等待從庫提交完事務(wù)后,才發(fā)一個確認(rèn)通知給主庫,而是當(dāng)從庫將binlog寫到relaylog后,就會給主庫發(fā)送確認(rèn)通知,這個不僅縮短了等待時間而且還維護(hù)了數(shù)據(jù)的安全性
在半同步復(fù)制情況下如果有這樣一個情況:當(dāng)主庫提交完事務(wù)之后,就開始等待從庫的relay寫入返回,如果從庫這個時候發(fā)生了意外(有可能被人偷走了),導(dǎo)致主庫等待超時,這個時候主庫就會直接結(jié)束等待了,因?yàn)槭聞?wù)已經(jīng)提交了,用戶肯定是可以看到?jīng)]有被同步的數(shù)據(jù),為了解決這個問題,mysql5.7引入了增強(qiáng)半同步復(fù)制: 只有當(dāng)收到至少一個從庫返回的relay log寫入確認(rèn)后,才提交事務(wù),也就是說提交事務(wù)在收到確認(rèn)之后
感謝各位的閱讀,以上就是“Mysql主從復(fù)制的三種方式分別是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Mysql主從復(fù)制的三種方式分別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!