看到此報錯心里有數,mysql出現"the table is full"的問題,一般有兩個常見原因:
一個是使用MEMORY 存儲引擎時臨時表大小設置太小導致,一般調整MySQL的配置文件兩個參數重啟即可:
tmp_table_size
max_heap_table_size
但是看報錯日志中顯然很多業務表都不是memory存儲引擎而是innodb存儲引擎的,故排除此原因。
另一種原因便是硬盤空間滿了,清理硬盤即可。但是檢查數據目錄空間發現還有大量磁盤空間可用:
可以看出除了 ①磁盤空間滿;②超過文件系統限制;③超過innodb單表表空間限制之外,其余全是關于MyISAM存儲引擎和memory存儲引擎引起的原因。顯然這些都不符合我們現場的情況。
文檔提示當磁盤空間還有較大盈余的時候,可能是ibdata1系統表空間文件無法繼續擴展導致,此時無論是因為設置原因還是文件系統限制原因都會在SQL層拋出the table XXX is full的異常,遂馬上檢查ibdata1文件:
發現系統表空間文件ibdata2 已經5G ,達到最大限制了,迅速另行添加一個新的共享表空間文件,使數據庫恢復正常。
Ibdata1系統表空間在設置了innodb_file_per_table(建議設置)的情況下會儲存innodb表的元數據、change buffer、doublewrite buffer和undo log,如果多帶帶設置undo表空間的話,存儲內容會更少,出現問題的頻率也很低,所以平時運維極易忽略ibdata1,在巡檢時也應添加上對該表空間的檢查,自動擴展的值也應依據業務進行合理設置。
參考文檔:
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129893.html
摘要:常見錯誤分析與解決方法總結一翻譯不能連接到上的分析這說明計算機是存在的,但在這臺機器上卻沒提供服務。解決同樣對癥下藥,不同的原因不同的處理方法。九翻譯有一個語法錯誤在你的中分析論壇標準的程序是沒有語法錯誤的。表名,可以暫時解決問題。MySQL常見錯誤分析與解決方法總結 一、Cant connect to MySQL server on localhost (10061)翻譯:不能連接到 ...
閱讀 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