PostgreSQL配置参数很多,有时为了排查问题,需要找出哪些配置参数被修改过。 # 系统表 记录PG所有参数的系统表为pg\_settings。 详见 [PG文档说明](http://postgres.cn/docs/12/view-pg-settings.html)。 | 名字 | 类型 | 描述 | | ---------------- | ------- | ------------------------------------------------------------ | | 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。 | # 方法 ```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 …… ```