国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

處理常見異常MySQL?table?xxx?is?full?不常見原因一例

IT那活兒 / 4139人閱讀
處理常見異常MySQL?table?xxx?is?full?不常見原因一例
 背 景

在某日常愛崗敬業過程中,忽然收到某業務不可用,數據無法插入修改的消息,迅速打開錯誤日志發現大量業務表報table XXX is full的錯誤:

看到此報錯心里有數,mysql出現"the table is full"的問題,一般有兩個常見原因:

  • 一個是使用MEMORY 存儲引擎時臨時表大小設置太小導致,一般調整MySQL的配置文件兩個參數重啟即可:
    tmp_table_size
    max_heap_table_size

    但是看報錯日志中顯然很多業務表都不是memory存儲引擎而是innodb存儲引擎的,故排除此原因。

  • 另一種原因便是硬盤空間滿了,清理硬盤即可。但是檢查數據目錄空間發現還有大量磁盤空間可用:


 處 理

兩個常見原因皆排除后,感受到時間緊迫,迅速查閱官方文檔檢索是否有其他原因可能性:

可以看出除了 ①磁盤空間滿;②超過文件系統限制;③超過innodb單表表空間限制之外,其余全是關于MyISAM存儲引擎和memory存儲引擎引起的原因。顯然這些都不符合我們現場的情況。

氣氛變得緊張起來,懷疑有更深的原因和bug,迅速上MOS查詢相關問題,終于發現類似問題的doc:

文檔提示當磁盤空間還有較大盈余的時候,可能是ibdata1系統表空間文件無法繼續擴展導致,此時無論是因為設置原因還是文件系統限制原因都會在SQL層拋出the table XXX is full的異常,遂馬上檢查ibdata1文件:

發現系統表空間文件ibdata2 已經5G  ,達到最大限制了,迅速另行添加一個新的共享表空間文件,使數據庫恢復正常。


 總 結

Ibdata1系統表空間在設置了innodb_file_per_table(建議設置)的情況下會儲存innodb表的元數據、change buffer、doublewrite buffer和undo log,如果多帶帶設置undo表空間的話,存儲內容會更少,出現問題的頻率也很低,所以平時運維極易忽略ibdata1,在巡檢時也應添加上對該表空間的檢查,自動擴展的值也應依據業務進行合理設置。

參考文檔:

  • https://dev.mysql.com/doc/refman/5.7/en/full-table.html
  • https://dev.mysql.com/doc/refman/5.7/en/table-size-limit.html
  • mysqld is showing a "table foo is full" error but there is plenty of available disk space (Doc ID 1458445.1)
  • Table is Full Error for InnoDB Tables (Doc ID 1356573.1)
  • https://dev.mysql.com/doc/refman/5.7/en/innodb-system-tablespace.html


END


更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129893.html

相關文章

  • MySQL常見錯誤分析與解決方法總結

    摘要:常見錯誤分析與解決方法總結一翻譯不能連接到上的分析這說明計算機是存在的,但在這臺機器上卻沒提供服務。解決同樣對癥下藥,不同的原因不同的處理方法。九翻譯有一個語法錯誤在你的中分析論壇標準的程序是沒有語法錯誤的。表名,可以暫時解決問題。MySQL常見錯誤分析與解決方法總結 一、Cant connect to MySQL server on localhost (10061)翻譯:不能連接到 ...

    番茄西紅柿 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<