FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
PostgreSQL找出被修改过的配置参数

PostgreSQL配置参数很多,有时为了排查问题,需要找出哪些配置参数被修改过。

系统表

记录PG所有参数的系统表为pg_settings。

详见 PG文档说明

名字 类型 描述
—————- ——- ————————————————————
name text 运行时配置参数名
setting text 参数的当前值
unit text 参数的隐式单元
category text 参数的逻辑组
short_desc text 参数的简短描述
extra_desc text 附加的参数的详细描述
context text 要求设置此参数值的上下文
vartype text 参数类型(bool、enum、 integer、real或string)
source text 当前参数值的来源
min_val text 参数的最小允许值(对非数字值为空)
max_val text 参数的最大允许值(对非数字值为空)
enumvals text[] 一个枚举参数的允许值(对非数字值为空)
boot_val text 如果参数没有被别的其他设置,此列为在服务器启动时设定的参数值
reset_val text 在当前会话中,RESET将会设置的参数值
sourcefile text 当前值被设置的配置文件(空值表示从非配置文件的其他来源设置,由不是超级用户也不是pg_read_all_settings成员的用户检查时也为空值),在配置文件中使用include指令时有用
sourceline integer 当前值被设置的配置文件中的行号(空值表示从非配置文件的其他来源设置,由不是超级用户也不是pg_read_all_settings成员的用户检查时也为空值)。
pending_restart boolean 如果配置文件中修改了该值但需要重启,则为true, 否则为false。

方法

snippet.sql
seaboxsql=# SELECT name,setting,boot_val,reset_val FROM pg_settings WHERE setting != boot_val;
            name            |            setting            | boot_val  |            reset_val                                       
----------------------------+-------------------------------+-----------+-------------------------------
 application_name           | ssql                          |           | ssql
 archive_command            | (disabled)                    |           | 
 client_encoding            | UTF8                          | SQL_ASCII | UTF8
 data_checksums             | ON                            | off       | ON
 data_directory_mode        | 0700                          | 448       | 448
 enable_runtime_filter      | ON                            | off       | ON
 ……


打赏作者以资鼓励:
移动端扫码阅读:
目录: