pg_settings 视图

本文介绍了PostgreSQL中的参数配置方式及各类参数的含义与修改限制。包括如何通过postgresql.conf和postgresql.auto.conf文件配置参数,以及如何使用pg_settings视图查看参数详情。详细解释了不同context类型参数的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:瀚高PG实验室 (Highgo PG Lab)- 天蝎座
我们知道postgresql参数配置是在$PGDATA下的postgresql.conf文件中,当然有时候也会在postgresql.auto.conf文件中,后者优先级更高。
除此以外,在数据库中可以通过视图pg_settings查看。

mydb=# \x
Expanded display is on.
mydb=# select * from pg_settings ;
-[ RECORD 1 ]---+--------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------
name            | allow_system_table_mods
setting         | off
unit            | 
category        | Developer Options
short_desc      | Allows modifications of the structure of system tables.
extra_desc      | 
context         | postmaster
vartype         | bool
source          | default
min_val         | 
max_val         | 
enumvals        | 
boot_val        | off
reset_val       | off
sourcefile      | 
sourceline      | 
pending_restart | f
--More--

该视图有一列context来标识参数的修改有何限制。
mydb=# select distinct context from pg_settings ;
      context      
-------------------
 backend
 user
 internal
 postmaster
 superuser
 sighup
 superuser-backend
(7 rows)

backend:可以在postgresql.conf中对这些设置进行更改,而无需重新启动服务器。
但新的配置值只会出现在这之后的连接中,在已有的连接中,这些值不会改变。

user:该类参数表示,普通用户可以通过set命令来更改参数的配置值。

internal:该类参数是内部参数,也就是说,不可以进行修改,除非重新initdb。

postmaster:该类参数更改配置项后,需要重启PostgreSQL实例才能生效。

superuser:该类参数可以由超级用户来改变,改变时,只会影响到自身的session,不会影响到其他的用户。

sighup:在postgresql.conf配置文件中更改这种类型的参数无须重启实例,只需要向postmaster进程发送一
个SIGHUP信号,让其重新读取配置文件即可。postmaster进程收到信号后,也会向其他子进程发送SIGHUP信号,
让新的参数值在其他子进程中也生效。该类参数区别于backend类参数。

superuser-backend:该类参数可以由超级用户来改变,可以在postgresql.conf中对这些设置进行更改,而无需
重新启动服务器。但新的配置值只会出现在这之后的连接中,在已有的连接中,这些值不会改变。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值