設定自動調整型自動回收

為回收更新或刪除資料列所釋出的儲存空間、更新資料表統計資料,以及避免交易 ID 循環,AlloyDB for PostgreSQL 預設會啟用自動清理功能。自動調整清理功能會依據資料庫流量變化,自動調整清理工作負載、移除無效元組,並維持一致的交易效能和高可用性。

清理是重要的 PostgreSQL 維護作業,可防止資料表或索引膨脹,並凍結交易 ID,避免交易 ID 環繞。詳情請參閱「例行清理」。

您可以在 AlloyDB 中使用資料庫旗標,停用或修改自動調整式 autovacuum。

優點

自動調整 autovacuum 有下列優點:

  • 自動調整資源。AlloyDB 會根據工作負載的即時狀態和可用資源,自動調整 CPU、I/O、清理程序數量和清理程序的記憶體等資源,不會影響系統效能。

  • 防範交易 ID 環繞。AlloyDB 會監控清理進度和交易 ID 消耗速度。必要時,AlloyDB 會清理資料庫中的每個資料表,藉此限制交易 ID 消耗量,避免發生交易 ID 環繞錯誤。

  • 定期清理資料表。AlloyDB 會根據無效元組數量和需要掃描的頁面,觸發自動清理作業。及時移除無效元組,避免資料表或索引膨脹。

  • 自動偵測阻礙項目。AlloyDB 會自動偵測阻礙因素,例如長時間執行的交易、孤立的預備交易、孤立的複製槽,並在 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.
    

設定自動調整 autovacuum

AlloyDB 預設會啟用自動調整 autovacuum。如要停用自動調整清理功能,請將執行個體的 enable_google_adaptive_autovacuum 資料庫旗標設為 off。

如要進一步瞭解如何設定資料庫旗標,請參閱「設定執行個體的資料庫旗標」。

AlloyDB 支援多個與 vacuum 和 autovacuum 相關的標準 PostgreSQL 資料庫旗標,例如 vacuum_cost_delay 和 autovacuum_vacuum_cost_delay。您不需要在這些旗標中設定值,可調整的自動清理功能就會運作,因為這項功能會根據實際工作負載調整及最佳化行為。如果您在這些旗標中設定值,自動調整自動清理功能會調整行為,將您的偏好設定納入考量。

如要查看與 vacuum 和 autovacuum 相關、支援的 PostgreSQL 資料庫旗標完整清單,請參閱「vacuum 旗標」和「autovacuum 旗標」。