




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在MySQL中使用GTIDs復(fù)制協(xié)議和中斷協(xié)議的教程安鋼協(xié)議中斷
MySQL5.6有許多新的特性,其中許多人都感興趣的一條就是全局事務(wù)序號(hào)功能(GTIDs)。而大家都對(duì)這一特性很感興趣的緣由也很好理解,即:原來(lái)重新連接從效勞器和一個(gè)新的主效勞器始終是件很麻煩的事,然而在啟用GTIDs功能之后就變得簡(jiǎn)潔易行。可是,GTIDs的使用不單單是用單獨(dú)的標(biāo)識(shí)符替換舊的二進(jìn)制日志文件/位置,它也采納了新的復(fù)制協(xié)議。假設(shè)你還不太明白這些,那你可以在這篇文章里學(xué)點(diǎn)什么。
復(fù)制協(xié)議:新的VS舊的
舊的協(xié)議往往簡(jiǎn)潔直接即:首先從效勞器上在一個(gè)特定的偏移量那里連接到一個(gè)給定的二進(jìn)制日志文件,然后主效勞器在從那里發(fā)送全部的事務(wù)。
新協(xié)議稍有不同:slave首先會(huì)發(fā)送它已經(jīng)執(zhí)行過的GTID的范圍,然后master發(fā)送每一個(gè)喪失的事務(wù).它也確保了一個(gè)給定的GTID只可以在一個(gè)特定的slave中執(zhí)行一次.
實(shí)踐中,這會(huì)轉(zhuǎn)變?nèi)魏螙|西嗎?使得,它會(huì)轉(zhuǎn)變?cè)S多東西.想象一下下面的場(chǎng)景:你想要從trx4開頭復(fù)制,但是trx2在slave上由于某種原因喪失了.
使用老協(xié)議的話,trx2再也不會(huì)被執(zhí)行一次,而使用新協(xié)議,它就會(huì)被自動(dòng)的再執(zhí)行一次.
下面是兩個(gè)你可以在實(shí)踐中看到新協(xié)議的通用場(chǎng)景.
跳過事務(wù)
眾所周知老的SETGLOBALsql_slave_skip_counter=N在你想要跳過一個(gè)事務(wù)時(shí)不再供應(yīng)支持,而GTID就可以被啟用了.換用GTIDXXX:N來(lái)跳過事務(wù),你須得注入一個(gè)空的事務(wù):
mysqlSETgtid_next=“XXX:N“;
mysqlBEGIN;COMMIT;
mysqlSETgtid_next=“AUTOMATIC“;
為什么我們不能使用sql_slave_skip_counter?就是由于新的復(fù)制協(xié)議!
想象一下我們擁有如下列圖所示的三臺(tái)效勞器:
讓我們假設(shè)sql_slave_skip_counter可以用并且已經(jīng)被用在S2上用于跳過trx2.假如你吧S2設(shè)置成S1的一個(gè)slave將會(huì)發(fā)生什么呢?
兩個(gè)效勞器會(huì)相互交換被執(zhí)行了GTID的范圍,并且S1將會(huì)意識(shí)到其必需將trx2發(fā)送給S2.然后會(huì)發(fā)生的事情有兩種可能:
假如trx2仍舊在S1的二進(jìn)制日志中,它將會(huì)被發(fā)送給S2,而事務(wù)在也不會(huì)被跳過了.
假如trx2不再存在于S1的二進(jìn)制日志中,你將會(huì)得到一個(gè)復(fù)制錯(cuò)誤.
很明顯這擔(dān)心全,這就是為什么sql_slave_skip_counter在使用GTID時(shí)是不能用的.要想跳過一個(gè)事務(wù),唯一安全的選擇就是去執(zhí)行一個(gè)虛擬的事務(wù),而不是一個(gè)真實(shí)的事務(wù).
錯(cuò)誤的事務(wù)
假如你在一個(gè)slave上本地執(zhí)行了一個(gè)事務(wù)(在MySQL文檔中被稱為錯(cuò)誤事務(wù)),假如你被這個(gè)事務(wù)推送到新的master上時(shí)會(huì)發(fā)生什么呢?
使用老協(xié)議,根本上沒啥事(精確點(diǎn)說,新的master和其slave之間的數(shù)據(jù)將會(huì)消失不全都,但那在稍后就可能會(huì)被修復(fù)).
使用新協(xié)議,錯(cuò)誤的事務(wù)將會(huì)被識(shí)別成為在每個(gè)地方都喪失了,并且將會(huì)自動(dòng)在容錯(cuò)備份上被執(zhí)行,這樣就將會(huì)導(dǎo)致打斷復(fù)制的隱患.
比方說,你擁有一個(gè)master(M)和兩個(gè)slave(S1和S2).這里有兩種將slave重連到新的master將會(huì)發(fā)生(帶有不同復(fù)制錯(cuò)誤的)失敗的場(chǎng)景:
#場(chǎng)景1
#S1
mysqlCREATEDATABASEmydb;
#M
mysqlCREATEDATABASEIFNOTEXISTSmydb;
#Thanksto“IFNOTEXITS“,replicationdoesn“tbreakonS1.NowmoveS2toS1:
#S2
mysqlSTOPSLAVE;CHANGEMASTERTOMASTER_HOST=“S1“;STARTSLAVE;
#Thiscreatesaconflictwithexistingdata!
mysqlSHOWSLAVESTATUSG
[...]
Last_SQL_Errno:1007
Last_SQL_Error:Error“Can“tcreatedatabase“mydb“;databaseexists“onquery.Defaultdatabase:“mydb“.Query:“CREATEDATABASEmydb“
[...]
#場(chǎng)景2
#S1
mysqlCREATEDATABASEmydb;
#Now,we“l(fā)lremovethistransactionfromthebinarylogs
#S1
mysqlFLUSHLOGS;
mysqlPURGEBINARYLOGSTO“mysql-bin.000008“;
#M
mysqlCREATEDATABASEIFNOTEXISTSmydb;
#S2
mysqlSTOPSLAVE;CHANGEMASTERTOMASTER_HOST=“S1“;STARTSLAVE;
#Themissingtransactionisnolongeravailableinthemaster“sbinarylogs!
mysqlSHOWSLAVESTATUSG
[...]
Last_IO_Errno:1236
Last_IO_Error:Gotfatalerror1236frommasterwhenreadingdatafrombinarylog:“TheslaveisconnectingusingCHANGEMASTERTOMASTER_AUTO_POSITION=1,butthemasterhaspurgedbinarylogscontainingGTIDsthattheslaverequires.“
[...]
你可以這樣理解,錯(cuò)誤的事務(wù)應(yīng)當(dāng)借助基于GTID的效勞得以避開.假如你需要運(yùn)行一個(gè)本地事務(wù),最好的選擇是針對(duì)那條特定的語(yǔ)句禁用二進(jìn)制日志:
mysqlSETSQL_LOG_BIN=0;
my
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全球化時(shí)代下的中國(guó)藝術(shù)市場(chǎng)發(fā)展趨勢(shì)
- 初中物理實(shí)驗(yàn)室學(xué)科交叉計(jì)劃
- 城市建設(shè)進(jìn)度控制措施
- 中醫(yī)產(chǎn)后康復(fù)師的職責(zé)與技能
- 傳統(tǒng)文化中的生活哲學(xué)及其現(xiàn)代應(yīng)用探索
- 中藥對(duì)兒童視力的保護(hù)
- 企業(yè)管理者師德修養(yǎng)心得體會(huì)
- AI在互聯(lián)網(wǎng)金融行業(yè)的應(yīng)用與發(fā)展前景
- 以人為本的創(chuàng)新理念在企業(yè)中的實(shí)踐
- 體育組織財(cái)務(wù)管理制度與流程
- 經(jīng)濟(jì)學(xué)的研究方法和工具課件
- Word 2016的應(yīng)用課件完整
- 會(huì)務(wù)安排流程
- PDCA降低I類切口感染發(fā)生率
- 特洛伊戰(zhàn)爭(zhēng)(英文版)
- 2023河南專升本英語(yǔ)真題及答案
- DBJ04-T 410-2021城市停車場(chǎng)(庫(kù))設(shè)施配置標(biāo)準(zhǔn)
- 保潔崗位培訓(xùn)
- 碎石石灰土墊層施工方案完整
- 安全風(fēng)險(xiǎn)辨識(shí)表
- meta分析范文展示
評(píng)論
0/150
提交評(píng)論