從庫mysqldump會導致復制中斷_第1頁
從庫mysqldump會導致復制中斷_第2頁
從庫mysqldump會導致復制中斷_第3頁
從庫mysqldump會導致復制中斷_第4頁
免費預覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、從庫my sq Idum p會導致復制中斷環(huán)境數(shù)據(jù)庫版本:主從架構(gòu):一主兩從搭配mha操作步驟,開發(fā)要求truncate一張表,在刪除之前需要備份下數(shù)據(jù); .在從庫上使用mysqldump命令做邏輯備份,備份sql :mysqldump -uXXX -p osdc osdc_XXX /tmp/osdc_info.sql;.這臺從庫與主庫的同步出現(xiàn)中斷,報錯為: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;.翻開同步:stArt sIav;重新啟停同步服務后,恢復正常。分析_之前形形色色的主從問題遇到過很多,但是1756這個錯誤還是第一次遇到,所以事后還是很 有興趣去深入分析下這個問題。.詳細報錯查看數(shù)據(jù)庫的error log,這個報錯的具體輸出如下: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錯誤日志里有個Lock wait timeout exceeded,這個我們先記下,稍后再說。先找至master事務的gtid,直接去主庫的binlog里找下這個gtid所對應的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可以看到,這時候主庫對osdc_XXX表進行了 update操作。2 .問題分析,首先,mysqldump不加任何參數(shù)去執(zhí)行,會對備份的表加表級鎖。.這時候從庫需要執(zhí)行從主庫同步過來的update

6、語句,因為mysqldump表鎖的存在,該 語句會處理等待狀態(tài)。.update等待超時,這個錯誤我們在上面的error log里可以看到(Lock wait timeout exceeded)。.因為在版本下在使用MTS的情況下,slave_transaction_retries是不生效的。 所以當update語句超時后,它沒有重試機制,導致整個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這個 bug 很早就由 Yoshinori Matsunobu 提在 ? id=68465 了 官方也采納了,并于修復掉了該問題。Yoshinori Matsunobu就是大名鼎鼎的MHA的作者!.問題復現(xià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|+測試數(shù)據(jù):rootlocAlhost bug select * from rpl_tst;+I id|info|+I1 | tom |I2 | j erry |+從庫加鎖操作從庫: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顯性開啟事務,讓它持續(xù)持有InnoDB lock主庫更新操作主庫: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ù),此時從庫的復制線程會等待這條sql的應用,并處于 system lock 狀態(tài): 從庫: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錯誤日志開始打印錯誤信息: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報的錯與當時的內(nèi)容一致。.總結(jié).mysqldump即使在從庫中執(zhí)行,也必須加上-single-transcation等參數(shù),直接執(zhí)行會上 表鎖,本錢大大。.局部mysql工具,如navicat直接使用它自帶的導出功能,也會鎖住全表。所以盡量不要 使用I具去處理導出工作。mysql show open tAbles where in_use 0 ; TOC o 1-5 h

溫馨提示

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

評論

0/150

提交評論