示例参数max_connections
select * from pg_settings where name='max_connections';
-[ RECORD 1 ]---+-----------------------------------------------------
name | max_connections
setting | 14
unit |
category | Connections and Authentication / Connection Settings
short_desc | Sets the maximum number of concurrent connections.
extra_desc |
context | postmaster
vartype | integer
source | configuration file
min_val | 1
max_val | 262143
enumvals |
boot_val | 100
reset_val | 14
sourcefile | /data/xxxxxx/postgresql.conf
sourceline | 696
pending_restart | f
name:参数名称,此处为max_connections
settings:设置的值为14,即最大连接数为14
category:参数的逻辑组,此处为连接类参数,如下可以查看连接验证类参数有哪些
select name from pg_settings where category like '%Connections and Authentication%' and category like '%Connection Settings%';
name
--------------------------------
bonjour
bonjour_name
listen_addresses
max_connections
port
superuser_reserved_connections
unix_socket_directories
unix_socket_group
unix_socket_permissions
(9 rows)
short_desc:参数简单的解释
extr_desc:附加的参数详细解释
context:记录参数的类型,可以根据该值进行判断参数是否需要重启生效,此处为postmaster,所以需要重启生效
select distinct context from pg_settings ;
context
-------------------
postmaster
superuser-backend
user
internal
backend
sighup
superuser
internal:这些参数是只读参数,其中有的参数是postgres写死的,或者使用不同编辑选项确定的,有的参数是初始化时就确定了的,之后就不能再改变该参数值,这类参数不能配置在postgresql.conf文件中,因为这些参数是由postgres程序和在初始化实例时写死的
postmaster:改变这些参数需要重启postgresql实例。改变这类参数需要重启实例才能生效
sighup:可以在配置文件中修改这些值,不需要重启数据库,只需要发送sighup信号,也就是reload一下。postmaster进程收到sighup信号后,也会向他的子进程发送该信号,让新的参数值在所有的进程中都生效
backend:在配置文件中更改这些值无需重启服务器,只需要postmaster 发送一个 SIGHUP 信号,让它重新读取 postgresql.conf 中新的配置值即可,但新的配置值只会出现在这之后的新连接中,在已有的连接中,这些参数的值不会改变。这些参数的值也可以在新连接时,由连接的一些参数改变。
superuser:这类参数可以由超级用户使用 set 来改变。而超级用户改变参数值时,只会影响自身的 session 配置,不会影响其他用户。向 postmaster 进程发送 SIGHUP 信号,也只会影响后续建的连接,不会影响现有的连接。
user:普通用户可使用 set 命令通过此类参数来改变本连接中的配置值。除了普通用户都可以改变外,这类参数与 superuser 类参数没有区别。
superuser-backend:与backend类似,需要超级用户权限
vartype:参数类型,max_connections参数可以看到是整型
source:当前参数的来源值,可以看到是来自postgresql.conf参数文件
min_val:参数允许的最小值,此处为1(对非数字值为空)
max_val:参数允许的最大值,此处为262143(对非数字值为空)
enumvals:一个枚举参数的允许值(对非数字值为空)
boot_val:如果参数没有被别的其他设置,此列为在服务器启动时设定的参数值
reset_val:在当前会话中, RESET 将会设置的参数值
sourcefile:当前值被设置的配置文件(空值表示从非配置文件的其他来源设置,由不是超级用户也不是 pg_read_all_settings 成员的用户检查时也为空值),在配置文件中使用 include 指令时有用
sourceline:当前值被设置的配置文件中的行号(空值表示从非配置文件的其他来源设置,由不是超级用户也不是 pg_read_all_settings 成员的用户检查时也为空值)。
pending_restart:如果配置文件中修改了该值但需要重启,则为 true , 否则为 false