选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 17 / 16 / 15 / 14
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.1 已于 2016 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页

18.10. 自动清理 #

这些设置控制autovacuum特性的行为。更多信息见第 23.1.5 节

autovacuum (boolean) #

控制服务器是否运行自动清理启动器后台进程。默认为开启, 不过要自动清理正常工作还需要启用track_counts。 该参数只能在postgresql.conf文件或服务器命令行中设置, 不过,通过更改表存储参数可以为表禁用自动清理。

注意即使该参数被禁用,系统也会在需要防止事务ID回卷时发起自动清理进程。详情请见第 23.1.4 节

log_autovacuum_min_duration (integer) #

当自动清理执行的操作运行时间至少达到指定毫秒数时,就会记录该操作。将此设置为零会记录所有自动清理操作。 负一(默认值)会禁用记录自动清理操作。 例如,如果将其设置为250ms,则所有运行时间为250ms或更长的自动清理和分析都将被记录。 此外,当此参数设置为任何非-1值时,如果由于冲突锁而跳过自动清理操作,则会记录消息。 启用此参数可帮助跟踪自动清理活动。 此参数只能在postgresql.conf文件或服务器命令行中设置;但可以通过更改表存储参数来覆盖对单个表的设置。

autovacuum_max_workers (integer) #

指定任一时刻可能运行的自动清理进程(自动清理启动器除外)的最大数量。默认值为三个。 这个参数只能在服务器启动时设置。

autovacuum_naptime (integer) #

指定自动清理在任意给定数据库上各次运行之间的最小间隔。在每一轮中后台进程检查数据库并根据需要为数据库中的表发出VACUUMANALYZE命令。 延迟以秒为单位。默认值为1分钟(1min)。该参数只能在postgresql.conf文件或在服务器命令行上设置。

autovacuum_vacuum_threshold (integer) #

指定能在一个表上触发VACUUM的被更新或被删除元组的最小数量。默认值为50个元组。该参数只能在postgresql.conf文件或在服务器命令中设置。但是对个别表可以通过修改表存储参数来覆盖该设置。

autovacuum_analyze_threshold (integer) #

指定能在一个表上触发ANALYZE的被插入、被更新或被删除元组的最小数量。默认值为50个元组。该参数只能在postgresql.conf文件或在服务器命令中设置。但是对个别表可以通过修改表存储参数来覆盖该设置。

autovacuum_vacuum_scale_factor (floating point) #

指定一个表尺寸的分数,在决定是否触发VACUUM时将它加到autovacuum_vacuum_threshold上。默认值为0.2(表尺寸的20%)。该参数只能在postgresql.conf文件或在服务器命令中设置。但是对个别表可以通过修改表存储参数来覆盖该设置。

autovacuum_analyze_scale_factor (floating point) #

指定一个表尺寸的分数,在决定是否触发ANALYZE时将它加到autovacuum_analyze_threshold上。默认值为0.1(表尺寸的10%)。该参数只能在postgresql.conf文件或在服务器命令中设置。但是对个别表可以通过修改表存储参数来覆盖该设置。

autovacuum_freeze_max_age (integer) #

指定在一个VACUUM操作被强制执行来防止表中事务ID回卷之前,一个表的pg_class.relfrozenxid域能保持的最大年龄(事务的)。注意即便自动清理被禁用,系统也将发起自动清理进程来阻止回卷。

清理也允许从pg_clog子目录中移除旧文件,这也是为什么默认值被设置为较低的2亿事务。该参数只能在服务器启动时设置,但是对于个别表可以通过修改表存储参数来降低该设置。详见第 23.1.4 节

autovacuum_vacuum_cost_delay (integer) #

指定用于自动VACUUM操作中的代价延迟值。如果指定-1,则使用vacuum_cost_delay值。 默认值为20毫秒。该参数只能在postgresql.conf文件或在服务器命令中设置。但是对个别表可以通过修改表存储参数来覆盖该设置。

autovacuum_vacuum_cost_limit (integer) #

指定用于自动VACUUM操作中的代价限制值。如果指定-1(默认值),则使用vacuum_cost_limit值。注意该值被按比例地分配到运行中的自动清理工作进程上(如果有多个),因此每一个工作进程的限制值之和不会超过这个变量中的值。该参数只能在postgresql.conf文件或在服务器命令中设置。但是对个别表可以通过修改表存储参数来覆盖该设置。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。