本文介紹了由于數據文件過多導致存儲空間被占滿的問題描述、解決方案以及后續維護等內容。
問題描述
PolarDB MySQL版集群可能會由于數據文件長時間未整理導致占用過多存儲空間,且在集群的空間分析頁面的空間變化趨勢區域中確認數據空間使用量較高。如下圖所示:
解決方案
刪除冗余數據,操作步驟如下:
說明
刪除表前請確保數據已備份,以免造成數據丟失。
DELETE命令無法釋放空間,推薦使用DROP或TRUNCATE命令釋放空間。
OPTIMIZE操作將會鎖表,建議在業務低峰期進行操作。
清理數據文件有時間延遲,請耐心等待集群已使用空間的下降
若根據以下步驟仍不能通過清理數據文件釋放足夠的存儲空間,您可以清理其他類型的文件來降低存儲空間的使用率,詳情請參見由于日志文件過多導致集群存儲空間被占滿的解決辦法。
在SQL Console頁,執行如下命令查看數據庫的文件大小,確認其中可以刪除的歷史數據或無用數據。
SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC
使用DROP或TRUNCATE命令清理數據。實際使用過程中,需要替換命令行中的數據庫名和表名。
DROP TABLE <數據庫名>.<表名> TRUNCATE TABLE <數據庫名>.<表名>
后續維護
擴展存儲空間,PolarDB MySQL版采用存儲與計算分離的架構,您可以選擇手動擴縮存儲空間或自動擴展存儲空間兩種方式中的任意一種來擴展當前的存儲空間容量。
對于經常執行DELETE操作的表,容易產生表空間碎片,建議在業務低峰期執行
OPTIMIZE TABLE <數據庫名>.<表名>
語句回收表空間,具體操作詳情請參見通過OPTIMIZE TABLE命令回收表空間。
文檔內容是否對您有幫助?