18.10. 自动清理

这些设置控制自动清理的缺省行为。请参阅第 23.1.6 节获取更多信息。

autovacuum (boolean)

控制服务器是否应该启动autovacuum守护进程。缺省是关闭的。然而, track_counts还必须启用自动清理工作。 这个选项只能在postgresql.conf文件里或者是服务器命令行中设置。

请注意,即使禁用该参数,如果有必要避免事务ID重叠,系统仍将启动自动清理进程。 请参阅第 23.1.5 节获取更多详细信息。

log_autovacuum_min_duration (integer)

如果它运行至少毫秒指定数,导致记录自动清理所执行的每个动作。 此设置为零记录所有自动清理操作。减一(默认)禁用日志记录 自动清理动作。例如,如果您将其设置为250ms, 那么将记录运行250ms或更长时间的所有自动清理和分析。 此外,当这个参数设置为除-1外的其他任何值, 如果由于冲突锁的存在而忽略自动清理操作,则记录这条消息。 启用此参数可以有益于跟踪自动清理活动。这个设置只能在postgresql.conf 文件或者服务器命令行上设置。

autovacuum_max_workers (integer)

指定自动清理进程的最大数(除了自动清理发射器),它可以在任一时刻运行。 默认是三。这个参数只能在服务器启动时设置。

autovacuum_naptime (integer)

声明运行在任何给定数据库上的autovacuum之间的最小延迟。在每次运行的周期里, 守护进程都会检查一个数据库, 并根据需要为该数据库的表发出VACUUMANALYZE命令。 这个延迟是以秒计的,缺省为1分钟(1min)。 这个选项只能在postgresql.conf文件里或者服务器命令行中设置。

autovacuum_vacuum_threshold (integer)

声明在任何表里触发VACUUM所需最小的行更新或删除数量。缺省是500。 这个选项只能在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)

指定表的pg_class在事务中的最大寿命。relfrozenxid字段能够在强制 VACUUM操作以防止事务 ID在表内循环重复之前完成。需要注意的是,即使autovacuum被禁止系统也会调用 autovacuum 进程来防止循环重复。

自动清理允许删除来自pg_clog子目录的旧文件, 默认值是相对低于200百万事务。该参数只能在服务器启动时设置, 但是此处的设置可以通过改变存储参数独立表减少。 更多信息请参见第 23.1.5 节

autovacuum_multixact_freeze_max_age (integer)

声明在这个表中的VACUUM操作被强迫阻止multixact ID wraparound 之前,pg_class.relminmxid 字段可以达到的最大寿命(以multixact计)。请注意, 系统将发送自动清理进程阻止wraparound,即使是禁用了自动清理。

清理multixact也允许删除pg_multixact/memberspg_multixact/offsets子目录中的老旧字段, 这也是multixact缺省是相当低的4亿的原因。这个参数只能在服务器启动的时候设置, 但是可以通过更改存储参数降低单个表的设置。更多信息请查阅 第 23.1.5.1 节

autovacuum_vacuum_cost_delay (integer)

声明将在自动VACUUM操作里使用的开销延迟数值。 声明-1将使用普通的vacuum_cost_delay数值。 缺省值是20毫秒。 这个选项只能在postgresql.conf文件里或者在服务器启动的时候设置。 此处的设置可以被改变存储参数的独立表覆盖。

autovacuum_vacuum_cost_limit (integer)

声明将在自动VACUUM操作里使用的开销限制数值。 -1(缺省值)将使用普通的vacuum_cost_limit数值。 要注意的是值将按比例分配给运行autovacuum工作者, 如果有一个以上,这样每个工作者限制总和不会超过此变量的极限。 这个选项只能在postgresql.conf文件里或者在服务器启动的时候设置。 此处的设置可以通过改变存储参数独立表覆盖。