記錄一次開發環境問題 MySQL trx_mysql_thread_id=0事務導致表死鎖(未解決)

###現象
1.服務出現jdbc鏈接池沒有可用鏈接(獲取連接等待超時)
2.show full processlist 發現存在該服務大量select 某表的query全部watting flush tables 一條請求flush table 一條請求open table
3.kill 掉flush table 請求後,在processlist中不再找到該請求,但是後續請求繼續阻塞,kill 掉open table請求後,open table無限期處於killed狀態,依舊獲取不到鎖
4.使用select 查詢該表,無限期死鎖
5.查詢information_schema.INNODB_TRX;發現有一條三天前的事務,事務trx_mysql_thread_id=0 隔離級別read_uncommit 狀態running 事務開啓時間爲9:03
6.解析binlog 該事務啓動後,無任何9:03左右該事務的記錄
7.xa recover; 無任何事務信息
8.查詢INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 無任何記錄
9.查詢INFORMATION_SCHEMA.INNODB_LOCKS; 無任何記錄
10.重啓mysql,無法啓動。
11.查看mysql啓動日誌, 處理事務文件ib_logfile0 ib_logfile1 ibdata1異常
12.查看網上方法,刪除了事務文件及事務日誌ib_logfile0 ib_logfile1
13.啓動mysql 成功。

待後續深入學習mysql 回顧該問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章