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