《MYSQL數(shù)據(jù)庫(kù)MySQL半同步復(fù)制》要點(diǎn):
本文介紹了MYSQL數(shù)據(jù)庫(kù)MySQL半同步復(fù)制,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
MYSQL入門 何為半同步復(fù)制模式呢?在此我們先了解異步復(fù)制模式,這是MySQL的默認(rèn)復(fù)制選項(xiàng).異步復(fù)制即是master數(shù)據(jù)庫(kù)把binlog日志發(fā)送給slave數(shù)據(jù)庫(kù),然后就沒(méi)有了然后了.在此暴露一個(gè)問(wèn)題,當(dāng)slave服務(wù)器發(fā)生故障了,那么肯定會(huì)導(dǎo)致主從數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)不一致.
MYSQL入門 為了解決上面的問(wèn)題,MySQL5.5引入一種叫做半同步復(fù)制模式.開(kāi)啟這種模式,可以保證slave數(shù)據(jù)庫(kù)接收完master數(shù)據(jù)庫(kù)發(fā)送過(guò)來(lái)的binlog日志并寫(xiě)入自己的中繼日志中,然后反饋給master數(shù)據(jù)庫(kù),告知已經(jīng)復(fù)制完畢.
MYSQL入門 開(kāi)啟這種模式后,當(dāng)出現(xiàn)超時(shí),主數(shù)據(jù)庫(kù)將會(huì)自動(dòng)轉(zhuǎn)為異步復(fù)制模式,直到至少有一臺(tái)從服務(wù)器接受到主數(shù)據(jù)庫(kù)的binlog,并且反饋給主數(shù)據(jù)庫(kù).這時(shí)主數(shù)據(jù)庫(kù)才會(huì)切換回半同步復(fù)制模式.
MYSQL入門注意:
MYSQL入門半同步復(fù)制模式必須在主服務(wù)器和從服務(wù)器同時(shí)中開(kāi)啟,否則將會(huì)默認(rèn)為異步復(fù)制模式.
MYSQL入門 兩臺(tái)linux虛擬主機(jī)
MYSQL入門 Linux版本CentOS6.6、MySQL 5.5
MYSQL入門 ip:192.168.95.11(主)、192.168.95.12(從)
MYSQL入門 1、必須是MySQL5.5或者以上
MYSQL入門 2、MySQL必須有自動(dòng)加載功能,即have_dynamic_loading變量為YES(因?yàn)槲覀兪窃贛ySQL里面來(lái)加載安裝這個(gè)功能插件)
MYSQL入門 ?show variables like 'have_dynamic_loading';? #檢查是否具有自動(dòng)加載功能
MYSQL入門
MYSQL入門 3、主從復(fù)制已經(jīng)配置好,并且已經(jīng)ing工作著的.
MYSQL入門 ?主從復(fù)制配置教程:http://www.cnblogs.com/phpstudy2015-6/p/6485819.html
?
MYSQL入門?
MYSQL入門 192.168.95.11加載安裝:
?
- ?mysql>install?plugin?rpl_semi_sync_master?soname?'semisync_master.so';?
- 2??
- 3?mysql>show?plugins;???#查看是否加載成功?
- 4??
- 5?mysql>SET?GLOBAL?rpl_semi_sync_master_enabled?=?1;??#開(kāi)啟半同步復(fù)制,默認(rèn)是關(guān)閉的?
MYSQL入門
192.168.95.12加載安裝
?
- mysql>INSTALL?PLUGIN?rpl_semi_sync_slave?SONAME?'semisync_slave.so';?
- ??
- ?mysql>show?plugins;???#查看是否加載成功?
- ??
- ?mysql>SET?GLOBAL?rpl_semi_sync_slave_enabled?=?1;??#開(kāi)啟半同步復(fù)制,默認(rèn)是關(guān)閉的?
- ?
- ?#重啟從服務(wù)器IO線程,手動(dòng)將異步模式切換為半同步模式?
- ??
- ?mysql>STOP?SLAVE?IO_THREAD;?
- ?
- mysql>START?SLAVE?IO_THREAD;?
MYSQL入門?
- rpl_semi_sync_master_enabled=1??#主庫(kù)配置文件添加,表示以后啟動(dòng)MySQL將會(huì)自動(dòng)開(kāi)啟半同步復(fù)制?
- ?
- ?rpl_semi_sync_slave_enabled=1??#從庫(kù)配置文件添加,同上?
MYSQL入門 1、主從執(zhí)行命令show variables like '%semi%';
MYSQL入門 master:
MYSQL入門
MYSQL入門 Rpl_semi_sync_master_enabled=ON表示開(kāi)啟半同步復(fù)制
MYSQL入門 Rpl_semi_sync_master_timeout=1000默認(rèn)1000毫秒,即10秒超時(shí),將切換為異步復(fù)制
MYSQL入門 Rpl_semi_sync_master_wait_no_slave表示是否允許master每個(gè)事物都要等待slave接收確認(rèn),默認(rèn)為ON
MYSQL入門 Rpl_semi_sync_master_trace_level=32表示用于開(kāi)啟半同步復(fù)制時(shí)的調(diào)試級(jí)別,默認(rèn)32
MYSQL入門 slave:
MYSQL入門
MYSQL入門 Rpl_semi_sync_slave_enabled=ON表示在slave已經(jīng)開(kāi)始半同步復(fù)制模式
MYSQL入門 Rpl_semi_sync_slave_trace_level=32表示用于開(kāi)啟半同步復(fù)制時(shí)的調(diào)試級(jí)別,默認(rèn)32
MYSQL入門 2、主從執(zhí)行命令show status like '%semi%';
MYSQL入門 master
MYSQL入門
MYSQL入門 Rpl_semi_sync_master_status表示主服務(wù)器使用是異步還是半同步復(fù)制
MYSQL入門 Rpl_semi_sync_master_client表示從服務(wù)器有多少個(gè)配置成半同步復(fù)制
MYSQL入門 Rpl_semi_sync_master_yes_tx表示從服務(wù)器確認(rèn)成功提交的數(shù)量
MYSQL入門 Rpl_semi_sync_master_no_tx表示從服務(wù)器確認(rèn)失敗提交的數(shù)量
MYSQL入門 slave:
MYSQL入門
MYSQL入門?
MYSQL入門 Rpl_semi_sync_slave_status表示從服務(wù)器開(kāi)啟半同步復(fù)制
MYSQL入門 模擬slave掛掉,master等待10s仍沒(méi)接收到反饋信號(hào),則轉(zhuǎn)為異步復(fù)制模式,繼續(xù)執(zhí)行
MYSQL入門 首先同步創(chuàng)建數(shù)據(jù)庫(kù)aa
MYSQL入門 1、slave執(zhí)行stop slave;關(guān)閉主從復(fù)制
MYSQL入門 2、master在aa數(shù)據(jù)庫(kù)中創(chuàng)建表tab1,沒(méi)接收到反饋信號(hào),等待十秒后(Rpl_semi_sync_master_timeout=1000等待超時(shí)),繼續(xù)執(zhí)行
MYSQL入門 master:
MYSQL入門
MYSQL入門 slave:
MYSQL入門
MYSQL入門 3、master在數(shù)據(jù)庫(kù)中再創(chuàng)建tab2,不需要等待反饋,直接執(zhí)行
MYSQL入門 【當(dāng)反饋超時(shí)時(shí),master將切換到異步復(fù)制模式.此時(shí)是異步模式,不需要等待】
MYSQL入門 ?
MYSQL入門 4、slave執(zhí)行start slave,數(shù)據(jù)開(kāi)始同步,建立tab1、tab2,反饋給master,并切換為半同步復(fù)制
MYSQL入門
MYSQL入門 5、slave執(zhí)行stop slave;關(guān)閉主從復(fù)制
MYSQL入門 6、master在數(shù)據(jù)庫(kù)中創(chuàng)建表tab3,此時(shí)需要等待10s,接收slave反饋信號(hào);等待超時(shí),切換為異步復(fù)制模式,繼續(xù)執(zhí)行
MYSQL入門 【步驟4時(shí),數(shù)據(jù)同步已經(jīng)反饋給master,此時(shí)master已經(jīng)是半同步復(fù)制模式】
MYSQL入門
?
MYSQL入門 半同步復(fù)制模式的性能和并發(fā)比異步復(fù)制模式低的,因?yàn)槊看螐?fù)制都要進(jìn)行反饋,相比之下多了一個(gè)步驟.
MYSQL入門 說(shuō)實(shí)話我還是不太明白為什么半同步復(fù)制就可以保持?jǐn)?shù)據(jù)的完整性呢?若是slave掛了,master還不是變回異步復(fù)制.和之前的全異步?jīng)]什么區(qū)別.還有就是即使多了個(gè)信息反饋,但是反饋回來(lái)除了讓master確認(rèn)還有什么作用?假若slave掛了,沒(méi)有反饋信息,那master還是沒(méi)什么進(jìn)一步的處理方法呀.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/5751.html