版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)潔易行??墒牵珿TIDs的使用不單單是用單獨(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)說(shuō),新的master和其slave之間的數(shù)據(jù)將會(huì)消失不全都,但那在稍后就可能會(huì)被修復(fù)).
使用新協(xié)議,錯(cuò)誤的事務(wù)將會(huì)被識(shí)別成為在每個(gè)地方都喪失了,并且將會(huì)自動(dòng)在容錯(cuò)備份上被執(zhí)行,這樣就將會(huì)導(dǎo)致打斷復(fù)制的隱患.
比方說(shuō),你擁有一個(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ú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考地理一輪復(fù)習(xí)第五章第1講自然地理環(huán)境的整體性教案含解析新人教版
- 校長(zhǎng)在寒假散學(xué)典禮上講話:擁抱寒假開啟多元成長(zhǎng)之旅
- 小學(xué)一年級(jí)美術(shù)教學(xué)計(jì)劃
- 《在細(xì)雨中呼喊》
- 施工防火安全控制措施
- 2024年湄洲灣職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 二零二五年度施工單位與監(jiān)理人員勞動(dòng)合同范本3篇
- 二零二五版二手汽車買賣合同附帶保險(xiǎn)及保養(yǎng)服務(wù)樣本3篇
- 《科幻小說(shuō)賞析與寫作》 課件 第5、6章 “反烏托邦”的警示與預(yù)言-《一九八四》;“外星文明”的善意與惡行-《安德的游戲》
- 二零二五年度船員勞動(dòng)合同與船舶航行安全應(yīng)急演練服務(wù)合同3篇
- JJG 1149-2022電動(dòng)汽車非車載充電機(jī)(試行)
- 工程款支付報(bào)審表
- 《項(xiàng)目施工組織設(shè)計(jì)開題報(bào)告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評(píng)審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 新課程理念下的班主任工作藝術(shù)
評(píng)論
0/150
提交評(píng)論