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 ……
打赏作者以资鼓励: