深入了解復(fù)制-半同步復(fù)制

1)mysql支持的幾種復(fù)制形式:

異步復(fù)制(Asynchronous replication)

MySQL默認(rèn)的復(fù)制即是異步的耳贬,主庫在執(zhí)行完客戶端提交的事務(wù)后會(huì)立即將結(jié)果返給給客戶端,并不關(guān)心從庫是否已經(jīng)接收并處理悲没,這樣就會(huì)有一個(gè)問題,主如果crash掉了亿汞,此時(shí)主上已經(jīng)提交的事務(wù)可能并沒有傳到從上亮垫,如果此時(shí),強(qiáng)行將從提升為主躺涝,可能導(dǎo)致新主上的數(shù)據(jù)不完整厨钻。

全同步復(fù)制(Fully synchronous replication)

指當(dāng)主庫執(zhí)行完一個(gè)事務(wù),所有的從庫都執(zhí)行了該事務(wù)才返回給客戶端坚嗜。因?yàn)樾枰却袕膸靾?zhí)行完該事務(wù)才能返回夯膀,所以全同步復(fù)制的性能必然會(huì)收到嚴(yán)重的影響。

半同步復(fù)制(Semisynchronous replication)

介于異步復(fù)制和全同步復(fù)制之間苍蔬,主庫在執(zhí)行完客戶端提交的事務(wù)后不是立刻返回給客戶端诱建,而是等待至少一個(gè)從庫接收到并寫到relay log中才返回給客戶端。相對(duì)于異步復(fù)制碟绑,半同步復(fù)制提高了數(shù)據(jù)的安全性涂佃,同時(shí)它也造成了一定程度的延遲,這個(gè)延遲最少是一個(gè)TCP/IP往返的時(shí)間蜈敢。所以辜荠,半同步復(fù)制最好在低延時(shí)的網(wǎng)絡(luò)中使用。

2)半同步復(fù)制的原理:

在復(fù)制繼續(xù)運(yùn)行之前抓狭,確保至少有一個(gè)slave將變更寫到磁盤伯病。也就是說,對(duì)每個(gè)連接來說否过,如果發(fā)生master崩潰午笛,至多只有一個(gè)事務(wù)丟失。參考下圖:


3)苗桂、半同步復(fù)制的基本流程:

MySQL半同步復(fù)制的實(shí)現(xiàn)是建立在MySQL異步復(fù)制的基礎(chǔ)上的药磺。MySQL支持兩種略有不同的半同步復(fù)制:AFTER_SYNC和AFTER_COMMIT(受rpl_semi_sync_master_wait_wait_point控制)。

開啟半同步復(fù)制時(shí)煤伟,Master在返回之前會(huì)等待Slave的響應(yīng)或超時(shí)癌佩。當(dāng)Slave超時(shí)時(shí)木缝,半同步復(fù)制退化成異步復(fù)制。這也是MySQL半同步復(fù)制存在的一個(gè)問題

AFTER_SYNC模式是MySQL 5.7才支持的半同步復(fù)制方式围辙,也是MySQL5.7默認(rèn)的半同步復(fù)制方式

1我碟、Prepare thetransaction in the storage engine(s).

2、Write thetransaction to the binlog, flush the binlog to disk.

3姚建、Wait for atleast one slave to acknowledge the reception for the binlog events for thetransaction.

4矫俺、Commit thetransaction to the storage engine(s).

半同步復(fù)制AFTER_COMMIT模式的基本流程

MySQL 5.5和5.6的半同步復(fù)制只支持AFTER_COMMIT:

1、Prepare thetransaction in the storage engine(s).

2掸冤、Write thetransaction to the binlog, flush the binlog to disk.

3厘托、Commit thetransaction to the storage engine(s).

4、Wait for atleast one slave to acknowledge the reception for the binlog events for thetransaction.

兩種方式小結(jié):1稿湿、after_sync:日志先復(fù)制到slave催烘,然后master再commit,after_commit:先在master上commit缎罢,然后將日志復(fù)制到slave伊群。2、after_sync方式下:所有復(fù)制到slave的事務(wù)不一定在master上commit; after_commit方式下策精,所以復(fù)制到slave上的日志一定在master上commit,但在master上commit的日志不一定復(fù)制到了slave舰始。3、after_commit方式下:在master宕機(jī)的情況下咽袜,無法保證數(shù)據(jù)的一致性

4)配置半同步復(fù)制

配置基礎(chǔ)是在已經(jīng)配置好異步復(fù)制丸卷。

主服務(wù)器操作:

1、安裝半同步插件:

mysql>install plugin rpl_semi_sync_master soname'semisync_master.so';

2询刹、查看插件安裝是否成功:


3谜嫉、編輯配置文件,啟動(dòng)半同步服務(wù):停止mysqld服務(wù)凹联,編輯/etc/my.cnf文件沐兰,添加如下內(nèi)容:

rpl_semi_sync_master_enabled = 1#啟用半同步服務(wù)

rpl_semi_sync_master_timeout = 1000#超時(shí)設(shè)置,如果master在超時(shí)之后收不到任何確認(rèn)蔽挠,就還原為民步復(fù)制繼續(xù)操作住闯,不再使用半同步復(fù)制煌珊。

以上兩個(gè)選項(xiàng)也可以在mysql命令行通過變量設(shè)置兼蜈,如下:

mysql> set global rpl_semi_sync_master_enabled =1;

mysql> set rpl_semi_sync_master_timeout 1000;

4、啟動(dòng)myslqd服務(wù)婶熬,主服務(wù)器配置完成杠巡。

5量窘、查看配置的相關(guān)信息。



配置slave服務(wù)器:

1氢拥、安裝插件:

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

2蚌铜、確認(rèn)插件安裝是否成功:


3锨侯、編輯配置文件,啟動(dòng)半同步服務(wù):停止mysqld服務(wù)厘线,編輯/etc/my.cnf文件识腿,添加如下內(nèi)容:

rpl_semi_sync_slave_enabled = 1

同樣也可以在命令進(jìn)行設(shè)置:

set global rpl_semi_sync_master_enabled =1;

4出革、啟動(dòng)mysqld服務(wù)造壮,從服務(wù)器配置完成。

5骂束、相看配置的相關(guān)信息



6耳璧、完成配置后,重啟同步進(jìn)程展箱,查看同步狀態(tài)信息旨枯。

在主服務(wù)器執(zhí)行show global status like 'rpl_semi%';可以看到有兩個(gè)從服務(wù)器連接上來


1)監(jiān)控半同步狀態(tài):可以使用以下命令查看半同步的狀態(tài)信息:

在master上:

mysql> show global status like 'rpl_semi%';


Rpl_semi_sync_master_clients表示啟用半同步的slave的數(shù)目

Rpl_semi_sync_master_status表示主服務(wù)器半同步服務(wù)的狀態(tài)

從服務(wù)器上:

mysql> show global status like 'rpl_semi%';


Rpl_semi_sync_slave_statu:表示從服務(wù)器上半同步的狀態(tài)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末混驰,一起剝皮案震驚了整個(gè)濱河市攀隔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栖榨,老刑警劉巖昆汹,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婴栽,居然都是意外死亡满粗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門愚争,熙熙樓的掌柜王于貴愁眉苦臉地迎上來映皆,“玉大人,你說我怎么就攤上這事轰枝⊥背梗” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鞍陨,是天一觀的道長沟饥。 經(jīng)常有香客問我,道長湾戳,這世上最難降的妖魔是什么贤旷? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮砾脑,結(jié)果婚禮上幼驶,老公的妹妹穿的比我還像新娘。我一直安慰自己韧衣,他們只是感情好盅藻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布购桑。 她就那樣靜靜地躺著,像睡著了一般氏淑。 火紅的嫁衣襯著肌膚如雪勃蜘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天假残,我揣著相機(jī)與錄音缭贡,去河邊找鬼。 笑死辉懒,一個(gè)胖子當(dāng)著我的面吹牛阳惹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播眶俩,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼莹汤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了颠印?” 一聲冷哼從身側(cè)響起纲岭,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎线罕,沒想到半個(gè)月后止潮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闻坚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年沽翔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窿凤。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仅偎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雳殊,到底是詐尸還是另有隱情橘沥,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布夯秃,位于F島的核電站座咆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏仓洼。R本人自食惡果不足惜介陶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望色建。 院中可真熱鬧哺呜,春花似錦、人聲如沸箕戳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玻墅,卻和暖如春介牙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澳厢。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國打工环础, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赏酥。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓喳整,卻偏偏與公主長得像谆构,于是被迫代替她去往敵國和親裸扶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一搬素、什么是Mysql主從復(fù)制 MySQL主從復(fù)制是其最重要的功能之一呵晨。主從復(fù)制是指一臺(tái)服務(wù)器充當(dāng)主數(shù)據(jù)庫服務(wù)器,另...
    人在碼途閱讀 2,753評(píng)論 0 23
  • mysql主從復(fù)制 主從復(fù)制慨述 構(gòu)建大型熬尺,高性能應(yīng)用程序的基礎(chǔ)主服務(wù)器復(fù)制負(fù)責(zé)更新摸屠,且將更新寫入二進(jìn)制日志文件,...
    肖金光xjg閱讀 889評(píng)論 0 1
  • 你那時(shí)還是個(gè)孩子粱哼, 在原野里季二, 跟著蝴蝶翩翩而舞。 我記得你的頑劣揭措, 卻不曾想到若干年后胯舷, 你會(huì)以優(yōu)雅的姿態(tài)走進(jìn)我...
    悅者閱讀 368評(píng)論 5 14
  • 我是喜歡上你了嗎 為什莫自己這么激動(dòng)了 又是一廂情愿罷了 醒醒吧 有些事情不可說
    AABM閱讀 145評(píng)論 0 0
  • 下班回到家,突然想喝一杯绊含,于是弄了兩個(gè)小菜桑嘶,重溫《飲食男女》,聽影片里的對(duì)白~~ “要不要來杯茶躬充?” “不逃顶,要酒。...
    七月紫蘇閱讀 305評(píng)論 0 0