從庫(kù)mysqldump會(huì)導(dǎo)致復(fù)制中斷_第1頁(yè)
從庫(kù)mysqldump會(huì)導(dǎo)致復(fù)制中斷_第2頁(yè)
從庫(kù)mysqldump會(huì)導(dǎo)致復(fù)制中斷_第3頁(yè)
從庫(kù)mysqldump會(huì)導(dǎo)致復(fù)制中斷_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、從庫(kù)my sq Idum p會(huì)導(dǎo)致復(fù)制中斷環(huán)境數(shù)據(jù)庫(kù)版本:主從架構(gòu):一主兩從搭配mha操作步驟,開(kāi)發(fā)要求truncate一張表,在刪除之前需要備份下數(shù)據(jù); .在從庫(kù)上使用mysqldump命令做邏輯備份,備份sql :mysqldump -uXXX -p osdc osdc_XXX /tmp/osdc_info.sql;.這臺(tái)從庫(kù)與主庫(kù)的同步出現(xiàn)中斷,報(bào)錯(cuò)為:SlAve_IO_Running: Yes SlAve_SQL_Running: No Last_Errno: 1756Last_Error: . . . The slAve coordinAtor And worker thrAds A

2、re stoppdERROR NO 是1756,而且只是 Slave_SQL_Running 停了。處理方式.停止同步:stop slAve;.翻開(kāi)同步:stArt sIav;重新啟停同步服務(wù)后,恢復(fù)正常。分析_之前形形色色的主從問(wèn)題遇到過(guò)很多,但是1756這個(gè)錯(cuò)誤還是第一次遇到,所以事后還是很 有興趣去深入分析下這個(gè)問(wèn)題。.詳細(xì)報(bào)錯(cuò)查看數(shù)據(jù)庫(kù)的error log,這個(gè)報(bào)錯(cuò)的具體輸出如下:2020-08-18 22:04:19 208840 WArning SlAve SQL: Worker 2 fAiled executin ; Could not execute UpdAte_rows e

3、vent on tAble osdc.osdc_XXX; Lock wAit mAstr log mysql-bin.003536, end_log_pos 861741231r Error_code: 12052020-08-18 22:04:19 208840 Note Worker 2 is exiting: killd 0, error 12020-08-18 22:04:19 208840 ERROR SlAve SQL: . The slAve coordinAtoromAticAlly, Although using non-trAnsActionAl storAge for d

4、Ata or info ta s). Error code: 1756錯(cuò)誤日志里有個(gè)Lock wait timeout exceeded,這個(gè)我們先記下,稍后再說(shuō)。先找至master事務(wù)的gtid,直接去主庫(kù)的binlog里找下這個(gè)gtid所對(duì)應(yīng)的sql :SET SESSION.GTID_NEXT= 1fe0ed3ca-cacc-11e9-8d49-6c92bfcf73b6:137762972# At 861740635#200818 21:58:42 server id 31 end_log_pos 861740715 CRC32 0 xA9Ab0dd2 SET TIMESTAMP=15

5、97 7 5 9122/* ! * / ;BEGIN/*!*/;# At 861740715#200818 21:58:42 server id 31 end_log_pos 861740840 CRC32 0 xbd8bA613updAte osdc_XXXset modif y_time=now () ,stAtus= *04*where id=92 98XXXXX And stAtus=1011可以看到,這時(shí)候主庫(kù)對(duì)osdc_XXX表進(jìn)行了 update操作。2 .問(wèn)題分析,首先,mysqldump不加任何參數(shù)去執(zhí)行,會(huì)對(duì)備份的表加表級(jí)鎖。.這時(shí)候從庫(kù)需要執(zhí)行從主庫(kù)同步過(guò)來(lái)的update

6、語(yǔ)句,因?yàn)閙ysqldump表鎖的存在,該 語(yǔ)句會(huì)處理等待狀態(tài)。.update等待超時(shí),這個(gè)錯(cuò)誤我們?cè)谏厦娴膃rror log里可以看到(Lock wait timeout exceeded)。.因?yàn)樵诎姹鞠略谑褂肕TS的情況下,slave_transaction_retries是不生效的。 所以當(dāng)update語(yǔ)句超時(shí)后,它沒(méi)有重試機(jī)制,導(dǎo)致整個(gè)SQL threads都停掉了(這也 就是為什么 Slave_IO_Running 顯示YES,而 Slave_SQL_Running 顯示NO )。在rpl_slave.cc里可以看到:/* MTS tchnicAl 1imitAtion no su

7、pport of trAns rtry */i f (mi-rli-opt_slAve_pArAllel_workers != 0 & & slAve_trAns_retries != 0這個(gè) bug 很早就由 Yoshinori Matsunobu 提在 ? id=68465 了 官方也采納了,并于修復(fù)掉了該問(wèn)題。Yoshinori Matsunobu就是大名鼎鼎的MHA的作者!.問(wèn)題復(fù)現(xiàn)相關(guān)參數(shù)slave_parallel_workers : 3 TOC o 1-5 h z rootlocAlhost(nona) show vAriAbles like 1_pArAllel_work +I

8、 VAriAble_nAme| VAlue |+-f-| slAvepArAllel workers| 5|+innodb_lock_wait_timeout : 50rootlocAlhost (none) show vAriAbles like , %innodb_lock_wAit_tim TOC o 1-5 h z +I VAriAbl_nAmI VaIu |+ HYPERLINK l bookmark26 o Current Document I innodb_lock_wAit_timeout | 50|+slave_transaction_retries : 10rootlocA

9、lhostnone show vAriAbles like 1%slAve_trAnsAction_retr+4-|VAriAble_nAme|VAlue |+ HYPERLINK l bookmark28 o Current Document IsIavrAnsAction_rtries |10|+測(cè)試數(shù)據(jù):rootlocAlhost bug select * from rpl_tst;+I id|info|+I1 | tom |I2 | j erry |+從庫(kù)加鎖操作從庫(kù):rootlocAlhost bug begin;updAte repl_test st info=1 Al1 ,;Qu

10、ery OK, 0 rows Affected(0.00 sec)(0.01 sec)Rows mAtched: 2ChAnged: 2 WArnings: 0Query OK, 2 rows Affected顯性開(kāi)啟事務(wù),讓它持續(xù)持有InnoDB lock主庫(kù)更新操作主庫(kù):rootlocAlhost bugupdAte repl test set info=1 All * where id=l;commitQuery OK, 1 row Affected (0.00 sec)Rows mAtched: 1 ChAnged: 1 WArnings: 0Query OK, 0 rows Affe

11、cted (0.00 sec)手工更新repl_test表的一條數(shù)據(jù),此時(shí)從庫(kù)的復(fù)制線程會(huì)等待這條sql的應(yīng)用,并處于 system lock 狀態(tài): 從庫(kù):rootIocaIhost (none) show processlist;+-1JId1, 4-User+1+Host_i_+db|_1_+CommAnd |_1_一+Time | _1.StAt 1161vnt_.scheduler |locAlhostNULL |DAemon |545 |WAiting on191root1locAlhostbug |Sleep|10 |1151systemuser1NULL |Connect I4

12、4 |WAiting for1161systemuser1NULL |Connect |5 |SlAve hAs r1171systemuser1NULL |Connect I44 |WAiting for1181systemuser1NULL |Connect I44 |WAiting for1191systemuser1NULL |Connect |5 |System lock1201root1locAlhostNULL |Query|0 |init+8 rows in set (0.04 sec)errorlog錯(cuò)誤日志開(kāi)始打印錯(cuò)誤信息:2020-08-20 11: 01:00 2239

13、12020-08-20 11:01:00 223912020-08-20 11:01:0022391WArning SlAve SQL: ERROR SlAVe SQL:. Note Error rAdingWorker 2 fAild xcuting , The slAve coordinAtor a rlAy log vnt: sIav SQ報(bào)的錯(cuò)與當(dāng)時(shí)的內(nèi)容一致。.總結(jié).mysqldump即使在從庫(kù)中執(zhí)行,也必須加上-single-transcation等參數(shù),直接執(zhí)行會(huì)上 表鎖,本錢(qián)大大。.局部mysql工具,如navicat直接使用它自帶的導(dǎo)出功能,也會(huì)鎖住全表。所以盡量不要 使用I具去處理導(dǎo)出工作。mysql show open tAbles where in_use 0 ; TOC o 1-5 h

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論