全部產品
Search
文件中心

Database Autonomy Service:空間片段自動回收

更新時間:Oct 25, 2024

刪除或更新資料庫資料時,會使資料在磁碟上的儲存變得不連續,產生空間片段,這導致磁碟空間浪費和資料庫效能下降。DAS支援自動回收MySQL中達到閾值(如資料表空間大小、片段率)的表的空間片段。回收在執行個體可維護時間段執行,且會檢查執行個體負載,以減少對業務影響。

前提條件

  • 執行個體已開啟DAS經濟版企業版,詳情請參見管理DAS經濟版和企業版

  • 執行個體類型為:

    • RDS MySQL高可用系列、三節點企業系列或叢集系列。

    • MyBase MySQL高可用版。

  • 執行個體已成功建立14天或以上。

  • 執行個體CPU規格不小於4核。

背景資訊

產生資料表空間片段的常見原因:

  • 記錄被Delete,且原空間無法複用。

  • 記錄被Update(通常出現在變長欄位中),原空間無法複用。

  • 記錄插入導致頁分裂,頁的填充率降低。

功能限制

  • 僅支援對儲存引擎為InnoDB的表進行空間片段自動回收。

    說明

    您可以使用SHOW TABLE STATUSSHOW TABLE STATUS LIKE 'table_name';語句查看目標表的儲存引擎。其中Engine的值為目標表的儲存引擎。

  • 僅支援對錶空間在[5,100] GB範圍內的表進行空間片段自動回收。

    說明

    如果資料表空間小於5 GB或者大於100 GB,則不會對該表進行空間片段自動回收。

最佳化前的檢查項

DAS在主執行個體上執行Optimize Table或Alter Table命令來回收資料表空間片段。執行空間片段自動回收操作前,為了減少對資料庫效能和空間的影響,DAS會自動對資料庫進行如下檢查。只有在通過檢測後,才會進行空間片段自動回收

  • 如下檢查項如有任何一項未通過,對應表的空間片段自動回收操作將立即停止。

    • 執行個體剩餘可用空間至少是需回收表的物理空間的3倍。

      說明

      例如:需回收的表Table_1,該表的物理空間為30 GB,那麼資料庫需要有90 GB的剩餘可用空間。

    • 表上無全文索引(FULLTEXT)。

  • 如下檢查項如有任何一項未通過,會等待1至5分鐘再進行檢查。如果整個可維護時間段內都未通過檢查,DAS會在下個可維護時間段內繼續進行檢查,直至檢查通過,然後執行空間片段自動回收

    • 執行個體上沒有正在執行的備份任務。

    • 沒有正在執行的表結構變更操作。

    • 查看執行個體的CPU使用率,預估空間片段自動回收需花費的時間,確保前一天和上周同一時間段的CPU使用率低於70%,且執行前的CPU使用率低於80%。

      說明

      例如:表的物理空間為90 GB,預計空間片段回收需花費30分鐘,並且計劃12月10號淩晨3點執行,那麼需確認如下資訊:

      • 2020-12-9 03:00至03:30的CPU使用率需小於70%。

      • 2020-12-3 03:00至03:30的CPU使用率需小於70%。

      • 2020-12-10 03:00的CPU使用率需小於80%。

    • 需片段回收的表上,沒有執行時間超過3秒的SQL。

    • 無懸掛事務(持有鎖但是超過15秒未提交的事務)。

    • 執行個體活躍會話數小於64。

說明

如果未通過檢查,無法使用空間片段自動回收功能,您可以手動執行Optimize Table命令回收資料表空間片段,詳情請參見使用“optimize table”命令釋放MySQL執行個體的資料表空間

開啟空間片段自動回收

  1. 登入DAS控制台

  2. 在左側導覽列中,單擊執行個體監控

  3. 找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。

  4. 在左側導覽列中,單擊自治中心

  5. 自治中心頁,單擊右側自治功能開關

  6. 自治功能管理 > 自治功能設定頁簽中,開啟自治功能開關。

  7. 最佳化和限流頁簽,勾選空間片段自動回收並配置如下參數。

    重要

    當資料庫執行個體空間狀態達到設定的閾值時,DAS將在資料庫執行個體的可維護時間段內進行空間片段自動回收。

    參數

    說明

    資料表空間

    觸發空間片段自動回收單個物理表的最小空間,取值範圍:5 GB~100 GB,預設為10 GB。

    單資料表空間過大會導致回收時間長,請根據實際業務情況選擇合適的數值。

    說明

    如果資料庫執行個體上所有的資料表空間均小於5 GB,或者所有的資料表空間均大於100 GB,那麼系統不會進行空間片段回收。

    片段率

    觸發空間片段自動回收單個物理表的片段率,取值範圍:10%~99%,預設為20%。

    片段率過大會降低空間最佳化頻率,請根據實際業務情況選擇合適的數值。

    說明

    如果資料庫執行個體上所有表的片段率均低於10%,那麼系統不會進行空間片段回收。

    說明

    例如資料表空間取值為5 GB,片段率取值為10%時,所有資料表空間大於等於5 GB,小於等於100 GB,且片段率大於等於10%的表,都會觸發空間片段自動回收。

  8. 單擊確定

  9. 可選:單擊事件訂閱設定,設定空間片段自動回收事件通知。詳情請參見開啟事件訂閱功能

  10. 配置警示模板進行警示訂閱,以便及時瞭解資料庫執行個體的空間片段自動回收情況。

    系統會推薦警示模板並添加對應自治事件的警示規則,您可以依照系統提示進行配置。

    說明
    • 如果您已經為執行個體配置了警示模板,請依照系統提示,在警示模板添加對應自治事件的警示規則。

    • 如果您需要自行設定警示模板和警示規則,請參見配置警示模板配置警示規則

  11. 選擇需要警示通知的警示聯絡組

    • 單擊新增連絡人...,添加新的警示連絡人。

    • 單擊新增聯絡組,添加新的警示聯絡組。

    • 單擊目標連絡人後的修改移除,修改或刪除已有連絡人的資訊。

    詳細操作請參見管理警示連絡人

  12. 單擊提交配置,並在彈出的對話方塊中確認警示配置。

相關文檔

當資料庫執行個體儲存空間不足時:

  • 通過空間分析,查看資料庫執行個體的儲存空間使用方式,確認儲存空間問題。

  • 開啟自動空間擴充,在資料庫執行個體儲存空間不足時自動擴充儲存空間,保障業務穩定運行。

相關API

API

描述

UpdateAutoResourceOptimizeRulesAsync

採用非同步方式,大量設定指定資料庫執行個體空間片段自動回收功能的配置參數。

GetAutoResourceOptimizeRules

擷取指定資料庫執行個體的空間片段自動回收規則。

DisableAutoResourceOptimizeRules

批量關閉指定資料庫執行個體的空間片段自動回收功能。