Mysql 單個ibd文件過大


事故描述:

61日,1040分,出現general error: 1114 The table 'xxx' is full異常報錯。

11:05定位問題,發現由於xxx表數據量過大,磁盤對應的ibd文件大小達到2T

由於文件系統使用的是ext2格式(單個文件大小不能超過2T),所以導致該表對應的文件不能擴展,該表數據無法正常插入。

11:30開始刪除該表歷史數據,但刪除速度趕不上插入速度。

13:10更換處理方式,創建臨時表插入xxx最近數據,將原xxx renamexxx_old,臨時表調整為新xxx表。

13:40業務恢復正常.

 

事故原因

該表作為記錄訂單促銷商品明細表,xxx字段保留json格式數據,導致磁盤大小增長快。

xxx表磁盤文件達到文件系統單個文件大小最大值。

 

解決方案:

創建新表保留xxx近期數據,原表改為歷史表xxx_old;

Create table xxx_tmp as selet * from xxx where id>48087708;

Alter table xxx rename to xxx_old;

Alter table xxx_tmp rename to xxx;

創建索引。

后期經業務確認刪除xxx_old表,釋放磁盤2T空間。

 

避免措施:

目前觀察新xxx表磁盤大小日增長30G。為保證618期間數據庫正常運行,定期刪除xxx的歷史數據庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM