真空化是重要的 PostgreSQL 資料庫維護作業。這項作業可用於回收更新或刪除資料列所占用的儲存空間,避免表格或索引膨脹。此外,這項服務也用於凍結交易 ID,以防範交易 ID 環繞,以及更新表格統計資料。
如要進一步瞭解吸塵,請參閱「例行吸塵」。
為自動執行清除作業並集體更新資料表統計資料,AlloyDB Omni 支援適應性自動清除作業。可調整的自動清理功能可在工作負載變更時自動調整清理工作負載、移除無效元組,以及更新資料表統計資料。
自動清除可確保應用程式交易效能穩定一致,並防止交易 ID 環繞,維持系統高可用性。
AlloyDB Omni 預設會啟用自適應自動回收功能。您可以使用資料庫標記,在 AlloyDB Omni 上停用或修改適應性自動回收功能。
優點
自動調整式自動清除作業具有下列優點:
自動調整資源。AlloyDB Omni 會根據工作負載的即時狀態和可用資源,自動調整 CPU、I/O、清除程序數量和清除程序記憶體等資源,不會影響系統效能。
防範交易 ID 環繞。AlloyDB Omni 會監控 VACUUM 進度和交易 ID 耗用速度。必要時,AlloyDB Omni 會清除資料庫中的每個表格,藉此節省交易 ID 用量,避免交易 ID 環繞。
定期清除資料表。AlloyDB Omni 會根據無效元組數量和需要掃描的頁面,觸發自動清除作業。及時移除無效的元組,避免資料表或索引膨脹。
自動偵測阻礙項目。AlloyDB Omni 會自動偵測長期執行的交易、孤立的預先準備交易、孤立的複製時段等阻礙,並在
postgres
記錄中顯示類似下列內容的警告訊息:Found a backend process PROCESS_ID with a long running transaction whose transaction id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
設定自動調整型自動回收
根據預設,AlloyDB Omni 會啟用自動調整式自動清除功能。您可以將執行個體的 enable_google_adaptive_autovacuum
資料庫旗標設為 off
,停用可調整的自動清理功能。
AlloyDB Omni 支援多個與 vacuum 和 autovacuum 相關的標準 PostgreSQL 資料庫標記,例如 vacuum_cost_delay
和 autovacuum_vacuum_cost_delay
。您不需要在任何這些標記中設定值,自動調整式自動清除功能就能運作,因為這項功能會根據實際工作負載調整及最佳化行為。如果您在這些標記中設定值,自動調整自動清除功能就會調整行為,將您的偏好設定納入考量。
如要查看與 vacuum 和 autovacuum 相關的 PostgreSQL 資料庫旗標完整清單,請參閱 vacuum 旗標和 autovacuum 旗標。