DBAtlas · 数据库运维图谱

显示待重启的参数和配置文件错误

PostgreSQL参数

命令

-- Parameters changed but not effective until a restart
SELECT name, setting, unit, context, source, sourcefile, pending_restart
FROM pg_settings
WHERE pending_restart;

-- Lines in configuration files that were not applied or have errors
SELECT sourcefile, sourceline, seqno, name, setting, applied, error
FROM pg_file_settings
WHERE NOT applied OR error IS NOT NULL
ORDER BY sourcefile, sourceline;

-- Where does a parameter's effective value come from?
SELECT name, setting, source, sourcefile, sourceline
FROM pg_settings
WHERE name = 'work_mem';

作用

显示已在文件中修改但等待重启的参数、未生效或有错误的配置文件行,以及参数的生效值来自哪个文件/行。

适用场景

用于在 ALTER SYSTEM 或修改 postgresql.conf 后验证 reload 是否达到预期效果,以及在计划内重启前列出待生效的变更。

注意

pg_file_settings 读取的是文件当前的内容;如果一个参数在多处定义,只有最后一处的 applied = true(postgresql.auto.conf 最后读取,因此 ALTER SYSTEM 总是优先)。applied = false 且 error 为空的行被另一个定义覆盖;这不是错误。需要重启的参数会显示 error 'setting could not be applied'。有错误的文件在 reload 时可能被部分应用;修改后请运行 pg_reload_conf(),然后检查这些查询和服务器日志。不要手工编辑 postgresql.auto.conf;请使用 ALTER SYSTEM RESET。

在 DBAtlas 中打开 →

相关内容