MySql資料庫ibtmp1檔案增長問題處理記錄

你的Annie發表於2024-06-05

背景:正式環境磁碟滿了,排查後發現是mysql中data目錄下的ibtmp1檔案增長超過1TB,網上查,發現ibtmp1檔案是InnoDB儲存引擎的臨時表空間檔案。用於儲存臨時表、排序等操作的臨時資料檔案。

解決方法:1.重啟mysql例項釋放ibtmp1檔案;2.限制ibtmp1檔案大小:innodb_temp_data_file _path = ibtmp1:12M:autoextend:max:5G

操作示例:

1. 重啟mysql例項釋放ibtmp1檔案

  1.1 重啟mysql服務(建議先備份,由於我的檔案1TB太大了所以沒備份)

  

  1.2 重啟後發現確實小了,有用

  

2.限制ibtmp1檔案大小

  2.1 找到my.ini檔案,新增以下程式碼(預設初始大小12M,設定最大增長5G),建議先備份:

    innodb_temp_data_file _path = ibtmp1:12M:autoextend:max:5G

  Tips:一切正常後就結束了,後面是操作時遇到的異常,發出來供參考

  2.2 遇到的異常1:儲存後重啟服務,出現以下提示,還原始碼後再重啟也是一樣(當時忘記備份,只是程式碼還原),找了很多方案,差點重灌mysql,後發現是這個原因:

    用文字文件開啟後儲存會自動編碼UTF-8,後再儲存一次編碼選擇ANS再重啟服務就可以正常了。

    

    

    

  2.3 遇到的問題2:上面的操作改了my.ini檔案重啟服務後一直顯示啟動中,後還原my.ini檔案想重啟,MySQL服務處的啟動按鈕是灰的不能操作,需強制停止程序:

    • 以管理員身份開啟命令列視窗
    • 查詢mysql殘留程序:tasklist | findstr "mysql"
    • 將程序全部殺死:taskkill/f /t /im mysqld.exe
    • 殺死後啟動按鈕就變正常可操作了(如不能再查殘留直到殺死所有程序為止)

  2.4 參考連結:https://zhuanlan.zhihu.com/p/499521079

相關文章