pg_hba.conf:客户端认证配置文件,主要用于控制连接数据库的相关信息,比如主机类型、数据库名、用户名、IP地址等信息。
pg_ident.conf: ident认证配置文件,在pg_hba.conf里面的ident认证方式,就是在pg_ident.conf中配置。
postgresql.conf :数据库相关配置,该文件包含内存分配、日志文件未知、监听端口、监听地址、数据库数据目录等一些数据库通用配置。也通过pg_setting查看参数的值:
select name, context, unit, setting, boot_val, reset_val from pg_settings where name in ('listen_address','max_connetctons','shared_buffers','effective_cache_size','work_mem','maintenance_work_mem') order by context, name;
name | context | unit | setting | boot_val | reset_val
----------------------+------------+------+---------+----------+-----------
shared_buffers | postmaster | 8kB | 16384 | 16384 | 16384
effective_cache_size | user | 8kB | 524288 | 524288 | 524288
maintenance_work_mem | user | kB | 65536 | 65536 | 65536
work_mem | user | kB | 4096 | 4096 | 4096
(4 rows)
字段说明:
context: 设置为postmaster,更改此形参后需要重启PostgreSQL服务才能生效;设置为user,那么只需要执行一次重新加载即可全局生效。重启数据库服务会终止活动连接,但重新加载不会。
unit : 字段表示这些设置的单位;
setting:是指当前设置;
boot_val:是指默认设置;
reset_val:是指重新启动服务器或重新加载设置之后的新设置;
在postgresql.conf中修改了设置后,一定记得查看一下setting和reset_val并确保二者是一致,否则说明设置并未生效,需要重新启动服务器或者重新加载设置。
查看参数文件
show config_file;
show hba_file;
show ident_file;
查看某个参数值,比如参数work_mem
show work_mem
修改某个参数值,比如参数work_mem
alter system set work_mem='8MB'
使用alter system命令将修改postgresql.auto.conf文件,而不是postgresql.conf,这样可以很好的保护postgresql.conf文件,加入你使用很多alter system命令后搞的一团糟,那么你只需要删除postgresql.auto.conf,再执行pg_ctl reload加载postgresql.conf文件即可实现参数的重新加载。
查看当前参数配置情况
postgres=# show shared_buffers;
shared_buffers
----------------
150MB
(1 row)
postgres=# select current_setting('shared_buffers');
current_setting
-----------------
150MB
(1 row)
修改当前session的参数配置
postgres=# set maintenance_work_mem to '128MB';
SET
postgres=# SELECT set_config('maintenance_work_mem', '150MB', false);
set_config
------------
150MB
(1 row)