Postgres - 配置更改为真空需要重启?

时间:2014-11-17 15:32:09

标签: postgresql

在postgressql.conf文件中,我想打开autovacuum并将阈值更改为100.因为更改max_workers线程明确指出它需要重启,我推断启用authvacuum并更改其门槛没有。有人可以证实吗?

autovacuum = on         # Enable autovacuum subprocess?  'on'
                    # requires track_counts to also be on.
#log_autovacuum_min_duration = -1   # -1 disables, 0 logs all actions and
                # their durations, > 0 logs only
                # actions running at least this number
                # of milliseconds.
#autovacuum_max_workers = 3     # max number of autovacuum subprocesses
                # **(change requires restart)**
#autovacuum_naptime = 1min      # time between autovacuum runs
autovacuum_vacuum_threshold = 100   # min number of row updates before
                # vacuum

然而,在下面的帖子中,我找到了相反推论的证据;请注意,effective_cache_size显式声明在autovacuum未提及重新启动时不需要重新启动: https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

1 个答案:

答案 0 :(得分:3)

当注释掉postgresql.conf中的值时,表示使用默认值。

autovacuum默认为on

执行命令

SHOW autovacuum;

查看当前值。

有关参数的更多详细信息,请使用pg_settings

postgres=> \x
Expanded display is on.

postgres=> select * from pg_settings where name = 'autovacuum';
-[ RECORD 1 ]---------------------------------
name       | autovacuum
setting    | on
unit       | 
category   | Autovacuum
short_desc | Starts the autovacuum subprocess.
extra_desc | 
context    | sighup
vartype    | bool
source     | default
min_val    | 
max_val    | 
enumvals   | 
boot_val   | on
reset_val  | on
sourcefile | 
sourceline | 

请参阅context条目?这肯定告诉你什么时候可以改变它。在这种情况下,它可以在sighup时更改,这是postmaster重新加载。因此,邮件管理员kill -HUPpg_ctl reloadSELECT pg_reload_conf();会更新设置,从而导致postgresql.conf中的新值生效。

autovacuum_vacuum_threshold也是如此。

一般情况下,如果文档没有提及您需要重新启动,那么您通常需要重新配置配置才能使配置文件中的更改生效。