資料庫自治服務DAS(Database Autonomy Service)為RDS MySQL提供空間片段自動回收功能,是空間自動最佳化的一種方式,開啟該功能後,主執行個體會自動執行Optimize Table或Alter Table命令來回收資料表空間片段,協助您整理物理空間片段。
前提條件
執行個體為如下版本,且已成功建立14天或以上:
RDS MySQL 8.0 高可用版、三節點企業版
RDS MySQL 5.7 高可用版、三節點企業版
RDS MySQL 5.6 高可用版
執行個體CPU規格不小於4核。
執行個體物理表必須是InnoDB引擎。
執行個體已開啟DAS企業版,詳情請參見DAS企業版。
背景資訊
產生資料表空間片段的常見原因:
記錄被Delete,且原空間無法複用。
記錄被Update(通常出現在變長欄位中),原空間無法複用。
記錄插入導致頁分裂,頁的填充率降低。
最佳化前的檢查項
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執行個體的資料表空間。
操作步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
進入自治功能管理頁面。
在左側導覽列中,選擇
。在自治中心頁,單擊自治功能開關。在左側導覽列中,選擇
。在效能趨勢頁,單擊自治功能開關。
在 頁簽中,開啟自治功能開關,並在最佳化和限流頁簽勾選空間片段自動回收。
開啟空間片段自動回收後,設定以下參數,單擊確定。
重要當資料庫執行個體空間狀態達到設定的閾值時,DAS將在資料庫執行個體的可維護時間段內進行空間片段自動回收。
參數
說明
資料表空間大於
觸發空間片段自動回收單個物理表的最小空間,取值範圍:5 GB~100 GB,預設為10 GB。
單資料表空間過大會導致回收時間長,請根據實際業務情況選擇合適的數值。
說明如果資料庫執行個體上所有的資料表空間均小於5 GB,或者所有的資料表空間均大於100 GB,那麼系統不會進行空間片段回收。
片段率大於
觸發空間片段自動回收單個物理表的片段率,取值範圍:10%~99%,預設為20%。
片段率過大會降低空間最佳化頻率,請根據實際業務情況選擇合適的數值。
說明如果資料庫執行個體上所有表的片段率均低於10%,那麼系統不會進行空間片段回收。
說明例如資料表空間取值為5 GB,片段率取值為10%時,所有資料表空間大於等於5 GB,小於等於100 GB,且片段率大於等於10%的表,都會觸發空間片段自動回收。
(可選)配置警示模板進行警示訂閱,以便及時瞭解資料庫執行個體的空間片段自動回收情況。
系統會推薦警示模板並添加對應自治事件的警示規則,您可以依照系統提示進行配置。
選擇需要警示通知的警示聯絡組。
單擊新增連絡人...,添加新的警示連絡人。
單擊新增聯絡組,添加新的警示聯絡組。
單擊目標連絡人後的修改或移除,修改或刪除已有連絡人的資訊。
詳細操作請參見管理警示連絡人。
確認關聯資源。
單擊提交配置,並在彈出的對話方塊中確認警示配置。