MySQL是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。mysql雖然功能未必很強(qiáng)大,但因?yàn)樗拈_(kāi)源、廣泛傳播,導(dǎo)致很多人都了解到這個(gè)數(shù)據(jù)庫(kù)。故障基本都能通過(guò)社區(qū)和官方文檔獲取解決方案,在應(yīng)用范圍上也是很廣的,互聯(lián)網(wǎng)公司基本都有使用mysql。本章主要針對(duì)mysql5.7.25的鎖表故障進(jìn)行分析處理。
1、首先接到業(yè)務(wù)反饋數(shù)據(jù)庫(kù)完全無(wú)法寫(xiě)入數(shù)據(jù)了,后查看數(shù)據(jù)庫(kù)監(jiān)控發(fā)現(xiàn)指標(biāo)正常;
2、登陸數(shù)據(jù)庫(kù)主機(jī)核實(shí)主機(jī)資源正常:
3、通過(guò)showprocesslist查看當(dāng)前連接,發(fā)現(xiàn)300左右的連接基本全是waitingfor global read lock和少部分waitingfor stored function metadata lock以及FLUSHTABLES WITH READ LOCK,如下所示
4、通過(guò)showOPEN TABLES where In_use > 0查看當(dāng)前被鎖表xx_test,
5、通過(guò)查看當(dāng)前事務(wù)發(fā)現(xiàn)只有兩個(gè)事務(wù);
6、通過(guò)查看當(dāng)前正在鎖事務(wù)和等待鎖事務(wù),發(fā)現(xiàn)并沒(méi)有記錄有正在鎖事務(wù)和等待鎖事務(wù)
7、通過(guò)查看當(dāng)前事務(wù)確認(rèn)到目前只有兩個(gè)事務(wù)在運(yùn)行,其它都是都在等待,且無(wú)等待鎖表及正在鎖表。
8、發(fā)現(xiàn)備份賬號(hào)FLUSHTABLES WITH READ LOCK關(guān)閉所有打開(kāi)的表并使用全局讀鎖鎖定所有數(shù)據(jù)庫(kù)的所有表,所以業(yè)務(wù)查詢沒(méi)有問(wèn)題。
9、猜想應(yīng)該是因?yàn)閤x_test的鎖表阻塞了FLUSHTABLES WITH READ LOCK執(zhí)行,導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)完全無(wú)法修改。
首先通過(guò)processlist輸出看到鎖表xx_test連接有3個(gè)等待該表的鎖,其它并沒(méi)有該表請(qǐng)求連接,先將這三個(gè)等待的select連接kill。
然后將當(dāng)前正在執(zhí)行的兩個(gè)事務(wù)kill。
觀察數(shù)據(jù)庫(kù)發(fā)現(xiàn)FLUSH TABLES WITH READ LOCK結(jié)束,其它等待事務(wù)都開(kāi)始執(zhí)行,數(shù)據(jù)庫(kù)恢復(fù)正常。
數(shù)據(jù)庫(kù)觸發(fā)FLUSHTABLES WITH READLOCK應(yīng)該是有業(yè)務(wù)方在備份,單純的表被鎖了一般情況下也只會(huì)影響鎖表的寫(xiě),但是在鎖表情況的備份觸發(fā)FLUSHTABLES WITH READ LOCK,就可能導(dǎo)致整個(gè)庫(kù)變成只讀,建議備份工作都放在晚上閑時(shí)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130124.html
摘要:肖鵬微博數(shù)據(jù)庫(kù)那些事兒肖鵬,微博研發(fā)中心技術(shù)經(jīng)理,主要負(fù)責(zé)微博數(shù)據(jù)庫(kù)相關(guān)的業(yè)務(wù)保障性能優(yōu)化架構(gòu)設(shè)計(jì),以及周邊的自動(dòng)化系統(tǒng)建設(shè)。經(jīng)歷了微博數(shù)據(jù)庫(kù)各個(gè)階段的架構(gòu)改造,包括服務(wù)保障及體系建設(shè)微博多機(jī)房部署微博平臺(tái)化改造等項(xiàng)目。 showImg(https://segmentfault.com/img/bV24Gs?w=900&h=385); 對(duì)于手握數(shù)據(jù)庫(kù)的開(kāi)發(fā)人員來(lái)說(shuō),沒(méi)有誤刪過(guò)庫(kù)的人生是...
摘要:雙機(jī)熱備和備份的區(qū)別熱備份指的是即高可用,而備份指的是即數(shù)據(jù)備份的一種,這是兩種不同的概念,應(yīng)對(duì)的產(chǎn)品也是兩種功能上完全不同的產(chǎn)品。雙機(jī)熱備分類按工作中的切換方式分為主備方式方式和雙主機(jī)方式方式。 歡迎關(guān)注公眾號(hào):【愛(ài)編碼】如果有需要后臺(tái)回復(fù)2019贈(zèng)送1T的學(xué)習(xí)資料哦!! showImg(https://segmentfault.com/img/remote/146000001900...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20