記公升級mysql後的一次故障

2022-06-10 11:36:12 字數 1843 閱讀 2409

一、問題背景

接上級要求,某生產資料庫需要實施備份;剛好漏洞掃瞄報告出來,mysql 版本需要公升級到5.7.20,於是就未雨綢繆,先寫指令碼。指令碼在mysql舊版本下完全可用(未公升級前,mysql 為5.7.18)。公升級完後,本著技術人員的一種嚴謹態度,絕對要sh -x 看看指令碼在新環境下有沒有出現異常啦~~~

二、現象(主要有兩個)

1、

mysqldump只能備份表不能備份庫(z庫和s庫),剛好測試時用的是s庫!(這個強調下面是有用的,觀眾慢慢欣賞)。開始非常納悶,兩個庫才不到100m,mysqldump良久不出結果,總不能僅僅1~2天,生產庫上資料量陡增的

2、與此同時,測試人員反饋,專案頁面一直轉圈登不上(前一天剛公升級完資料庫,測試過,頁面開啟沒問題)

三、排查及解決

1、上頭說,可能是因為公升級後 tomcat 沒有重啟,導致應用出問題(ps:資料庫跟應用分別在兩台不同的機器上),於是就重啟 tomcat ~~順帶觀察實時日誌:tail -f catalina.out

(1)圖一

(2)圖二

綜上,可以發現,挺多preparing的。。。然當時其實看不出有什麼異樣(畢竟太年輕,囧)

2、之後,開發人員拿到資料庫賬號密碼,說s庫的某個表,也就是上圖的日誌表:tb_ict_sys_log被鎖了!這就是為什麼mysqldump測試備份s庫的時候一直備份不了,如果測試備份z庫的話,結果估計是可以出來的,因為z庫上的表並沒有被鎖

登陸資料庫查執行緒運**況,終於有眉目了!!!

(1)圖一   (mysqldump不了s庫的執行緒)

(2)圖二    (頁面登陸不上卡住報錯的執行緒)

3、解決:

據查到的程序號, kill 掉資料庫鎖程序

之後,資料庫恢復正常,頁面開啟沒問題

四、結論

1、瀏覽器登陸專案頁面,無論登陸是否成功,都有乙個第三點 1(2)圖二的插入s庫日誌表的操作

2、mysqldump備份資料庫會有鎖表的問題,可能會和插入操作有衝突(開發人員:業務上並沒有其他地方引起鎖表操作),所以這次問題的產生好可能是因為在除錯指令碼的時候引起的。為了不影響業務,建議晚上備份(現在排程已改成凌晨 0 點備份

3、確定tomcat資料庫連線池配置是否準確無誤(.../web-inf/classes/jdbc.properties),雖然跟本次排錯過程無關

這個日誌是tomcat最早時候的資訊(暫時不知道這裡是不是暗藏問題發生的玄機)

記一次manila故障

排查過程 1.檢視manila的日誌,api.log scheduler.log share.log,排程日誌最具參考性,但是顯示建立成功 實際狀態為creating 排到share時出現大量報錯 get all share usage failed 2.檢查後端儲存,節點均正常 排查過程 1.關閉...

記一次MySQL生產環境故障處理

在2020年5月15日 凌晨三點,某台生產環境的mysql程序異常,無法連線到資料庫。早上上班開始排查問題並解決。伺服器是windows環境,設定每2天凌晨自動重啟主機,mysql以及其他應用都設定了自動啟動。注 以下所有步驟需要先關閉使用到資料庫的應用程式。檢視系統的計畫任務,發現剛好15日凌晨3...

記週日一次故障意外

記週日一次故障意外 找了waf工程師問,並且我這裡也在同步測試,tcping 網域名稱沒返回,不得不 ctrl c 中斷退出 說解析異常,222這個位址不通,然後給我們明確回覆說 47.91.170.222不是waf的入口 ip,切別的ip是沒用的 因為解析異常之後,我是有叫他切到別的能用的waf ...