postgresql参数配置文件解析

     对于一个数据库服务器,参数配置文件对于数据库的影响是非常巨大的,了解参数配置文件的基本使用是很有必要的。

一、配置文件位置
    1:
    配置文件名称为postgresql.conf

[postgres@oracle11g data]$ ls -l postgresql*.conf
-rw------- 1 postgres postgres    88 Aug  1 20:44 postgresql.auto.conf
-rw------- 1 postgres postgres 22869 Aug  1 20:44 postgresql.conf
[postgres@oracle11g data]$ pwd
/postgre/pgsql/data


    配置文件默认位置为数据目录中(如/postgre/pgsql/data)


    2:
    配置文件postgresql.auto.conf

[postgres@oracle11g data]$ cat postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.


    它具有和postgresql.conf相同的格式(不应该被手动编辑),这个文件保存了通过alter system命令提供的设置。


    每当postgresql.conf被读 取时这个文件会被自动读取,并且它的设置会以同样的方式生效。 postgresql.auto.conf中的设置会覆盖postgresql.conf 中的设置。
    
二、通过sql影响参数
    alter system改变全局默认值,功效上等同于修改postgresql.conf
    alter database命令允许针对一个数据库覆盖其全局设置.
    ALTER ROLE命令允许用用户指定的值来覆盖全局设置和数据库设置.


    只有当开始一个新的数据库会话时,用ALTER DATABASE和 ALTER ROLE设置的值才会被应用。它们会覆盖从配置文件或服务器命令行 获得的值,并且作为该会话后续的默认值.
    
三、命令
    SHOW命令允许察看所有参数的当前值。对应的函数是 current_setting(setting_name text);
    show ssl; 等同于select current_setting('ssl');

[postgres@oracle11g data]$ psql
psql (10.9)
Type "help" for help.

postgres=# show ssl
postgres-# ;
 ssl 
-----
 off
(1 row)

postgres=# select current_setting('ssl');
 current_setting 
-----------------
 off
(1 row)


    
    SET命令允许修改对于一个会话可以本地设置的参数的当前值, 它对其他会话没有影响。对应的函数是 set_config(setting_name, new_value, is_local);
    
    也可以通过查看视图进行查看:
    select * from pg_catalog.pg_settings;

postgres=# select * from pg_catalog.pg_settings where name='ssl';
 name | setting | unit |                           category                           |        short_desc        | extra_desc | context | vartype | source  |
 min_val | max_val | enumvals | boot_val | reset_val | sourcefile | sourceline | pending_restart 
------+---------+------+--------------------------------------------------------------+--------------------------+------------+---------+---------+---------+
---------+---------+----------+----------+-----------+------------+------------+-----------------
 ssl  | off     |      | Connections and Authentication / Security and Authentication | Enables SSL connections. |            | sighup  | bool    | default |
         |         |          | off      | off       |            |            | f
(1 row)


    set命令:set ssh off;(等效于update pg_catalog.pg_setting set setting='off' where name='ssl';)
    
四、shell修改
    1,服务器启动期间
    postgres -c log_connection=yes -c ssl=on


    这种方式提供的设置会覆盖通过postgresql.conf或者 ALTER SYSTEM提供的设置,因此除了重启服务器之外无法从全局上改变它们。
    
    2:
    libpq启动一个客户端会话时,可以使用PGOPTIONS 环境变量指定参数设置。这种方式建立的设置构成了会话生存期间的默认值,但是不会影响 其他的会话。
    env PGOPTIONS="-c ssl=off -c statement_timeout=5min" psql
    
五、管理配置文件
    1:
    分解配置文件方式1:
    include 'filename'

[postgres@oracle11g data]$ ls
buffer.conf  client.conf  shared.conf


    可以通过包含多个文件的方式,各个文件分别配置不同的参数,便于管理。
    
    2:
    分解配置文件方式2:
    include_dir 'directory'
    
    注意:配置文件中,末尾的配置文件参数会覆盖前面的配置文件参数。对于目录配置,读取配置文件顺序以参数文件字母顺序为主。
    

                                                欢迎大家关注以下公众号进行数据库方面知识探讨:

                                                                  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值