配置自适应自动执行 VACUUM 操作

为了自动执行吸尘和集体更新表统计信息的过程,AlloyDB Omni 支持自适应自动吸尘。自适应 autovacuum 可在工作负载发生变化时自动调整清理工作负载,移除死元组并更新表统计信息。

本页简要介绍了 AlloyDB Omni 自适应自动执行 Vacuum 操作,并介绍了如何进行配置。

吸尘是一项重要的 PostgreSQL 数据库维护操作。它用于回收已更新或已删除的行占用的存储空间,以避免表或索引膨胀。它还用于冻结事务 ID 以防止事务 ID 回卷,以及更新表统计信息。

如需详细了解吸尘,请参阅例程清空

为了自动执行吸尘和集体更新表统计信息的过程,AlloyDB Omni 支持自适应自动吸尘。自适应 autovacuum 可在工作负载发生变化时自动调整清理工作负载,移除死元组并更新表统计信息。

Autovacuum 通过防止事务 ID 回卷,确保应用事务性能可靠且一致,并保持系统的高可用性。

默认情况下,AlloyDB Omni 会启用自适应自动执行 Vacuum 操作。您可以通过使用数据库标志在 AlloyDB Omni 上停用或修改自适应自动执行整理。

优势

自适应自动执行 Vacuum 操作具有以下优势:

  • 自动调整资源。AlloyDB Omni 会根据工作负载的实时状态和可用资源自动调整 CPU、I/O、吸空进程数量和吸空进程的内存等资源,而不会影响系统性能。

  • 防止事务 ID 回卷。AlloyDB Omni 会监控整理进度和事务 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.
    

配置自适应自动执行 VACUUM 操作

默认情况下,AlloyDB Omni 上启用了自适应自动执行 Vacuum 操作。您可以通过将实例的 enable_google_adaptive_autovacuum 数据库标志设置为 off 来停用自适应 autovacuum。

AlloyDB Omni 支持与真空处理和自动真空处理相关的多个标准 PostgreSQL 数据库标志,例如 vacuum_cost_delayautovacuum_vacuum_cost_delay。您无需在任何这些标志中设置值,自适应自动执行虚空操作便可正常运行,因为自适应自动执行虚空操作会根据您的实际工作负载调整和优化其行为。如果您在这些标志中设置值,自适应自动清理功能会根据您的偏好设置调整其行为。

如需查看与真空和自动执行真空操作相关的受支持 PostgreSQL 数据库标志的完整列表,请参阅真空标志自动执行真空操作标志