全部產品
Search
文件中心

PolarDB:由於資料檔案過多導致叢集儲存空間被佔滿的解決辦法

更新時間:Jul 06, 2024

本文介紹了由於資料檔案過多導致儲存空間被佔滿的問題描述、解決方案以及後續維護等內容。

問題描述

PolarDB MySQL版叢集可能會由於資料檔案長時間未整理導致佔用過多儲存空間,且在叢集的空間分析頁面的空間變化趨勢地區中確認資料空間使用量較高。如下圖所示:

image.png

解決方案

刪除冗餘資料,操作步驟如下:

說明
  • 刪除表前請確保資料已備份,以免造成資料丟失。

  • DELETE命令無法釋放空間,推薦使用DROPTRUNCATE命令釋放空間。

  • OPTIMIZE操作將會鎖表,建議在業務低峰期進行操作。

  • 清理資料檔案有時間延遲,請耐心等待叢集已使用空間的下降

  • 若根據以下步驟仍不能通過清理資料檔案釋放足夠的儲存空間,您可以清理其他類型的檔案來降低儲存空間的使用率,詳情請參見由於記錄檔過多導致叢集儲存空間被佔滿的解決辦法

  1. 串連資料庫叢集

  2. SQL Console頁,執行如下命令查看資料庫的檔案大小,確認其中可以刪除的歷史資料或無用資料。

    SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES order by TOTAL_EXTENTS DESC
  3. 使用DROPTRUNCATE命令清理資料。實際使用過程中,需要替換命令列中的資料庫名和表名。

    DROP TABLE <資料庫名>.<表名>
    TRUNCATE TABLE <資料庫名>.<表名>

後續維護

  • 擴充儲存空間,PolarDB MySQL版採用儲存與計算分離的架構,您可以選擇手動擴容/縮容儲存空間來擴充當前的儲存空間容量。

  • 對於經常執行DELETE操作的表,容易產生資料表空間片段,建議在業務低峰期執行OPTIMIZE TABLE <資料庫名>.<表名>語句回收資料表空間,具體操作詳情請參見通過OPTIMIZE TABLE命令回收資料表空間