本页面简要介绍了 AlloyDB for PostgreSQL 自适应自动执行 Vacuum 功能,并介绍了如何对其进行配置。
吸尘是一项重要的 PostgreSQL 数据库维护操作。它用于回收已更新或已删除的行占用的存储空间,以避免表或索引膨胀。它还用于冻结事务 ID 以防止事务 ID 回卷,以及更新表统计信息。
如需详细了解吸尘,请参阅例程吸尘。
为了自动执行吸尘和集体更新表统计信息的过程,AlloyDB 支持自适应自动吸尘。自适应 autovacuum 可在工作负载发生变化时自动调整清理工作负载,移除死元组并更新表统计信息。
Autovacuum 通过防止事务 ID 回卷,确保应用事务性能可靠且一致,并保持系统的高可用性。
默认情况下,AlloyDB 会启用自适应自动执行 Vacuum 操作。您可以通过使用数据库标志在 AlloyDB 上停用或修改自适应自动执行整理。
优势
自适应自动执行 Vacuum 操作具有以下优势:
自动调整资源。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.
配置自适应自动执行 VACUUM 操作
默认情况下,AlloyDB 上启用了自适应自动执行 Vacuum 操作。您可以通过将实例的 enable_google_adaptive_autovacuum
数据库标志设置为 off
来停用自适应 autovacuum。
如需详细了解如何设置数据库标志,请参阅配置实例的数据库标志。
AlloyDB 支持与真空处理和自动真空处理相关的多个标准 PostgreSQL 数据库标志,例如 vacuum_cost_delay
和 autovacuum_vacuum_cost_delay
。您无需在任何这些标志中设置值,自适应自动整理功能便可正常运行,因为自适应自动整理功能会根据您的实际工作负载调整和优化其行为。如果您在这些标志中设置值,自适应自动清理功能会根据您的偏好设置调整其行为。
如需查看与真空和自动真空相关的受支持 PostgreSQL 数据库标志的完整列表,请参阅真空标志和自动真空标志。