事故描述:
6月1日,10點40分,出現general error: 1114 The table 'xxx' is full異常報錯。
11:05定位問題,發現由於xxx表數據量過大,磁盤對應的ibd文件大小達到2T。
由於文件系統使用的是ext2格式(單個文件大小不能超過2T),所以導致該表對應的文件不能擴展,該表數據無法正常插入。
11:30開始刪除該表歷史數據,但刪除速度趕不上插入速度。
13:10更換處理方式,創建臨時表插入xxx最近數據,將原xxx rename為xxx_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的歷史數據庫。