跳转至

配置

一、初始化参数

参数类型:

  1. 显示:在文件中对参数进行设置
  2. 隐式:文件中没有设置,使用postgres默认值

可以存在多个初始化参数文件

  1. 静态参数文件:postgresql.conf
    1. 默认在PGDATA下
    2. 更改将在下次启动时生效
    3. 仅在实例启动期间读取
    4. 手动修改
  2. 动态参数文件:postgresql.auto.conf
    1. 默认在PGDATA下
    2. 由postgres进程维护
    3. ALTER SYSTEM命令修改的参数保存在该文件
    4. 能够在关闭和启动期间持续进行更改
    5. 可以实现自我调整参数值

读取顺序:postgresql.conf->postgresql.auto.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[postgres@pg1 data]$ psql
psql (12.13)
Type "help" for help.
                 ^
postgres=# alter system set archive_mode=on;
ALTER SYSTEM
postgres=# \q
[postgres@pg1 data]$ cat postgresql.auto.conf 
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
archive_mode = 'on'

二、参数生效条件

  1. sighup:表示需要超级管理员修改,reload就能够生效
  2. superuser:表示使用超级管理员可以为普通用户、数据库、或者超级管理员自己修改(有些参数是可以针对用户、数据库实例)。
  3. postmaster:表示需要超级管理员修改,需要重启才能够生效。
  4. user:表示普通用户可以修改该参数值,立即生效。
1
2
3
4
5
6
7
8
postgres=# select name,setting,context from pg_settings where name in ('port', 'work_mem', 'log_statement', 'log_checkpoints');
      name       | setting |  context   
-----------------+---------+------------
 log_checkpoints | off     | sighup
 log_statement   | none    | superuser
 port            | 5432    | postmaster
 work_mem        | 4096    | user
(4 rows)