PostgreSQL 配置文件概述
1. postgresql.conf
该文件包含一些通用设置。
比如内存分配、新建比如内存分配、新建 database 的默认存储位置、PostgreSQL服务器的IP地址、日志的位置等。
PostgreSQL 9.4 版本之后,可以使用 ALTER SYSTEM 修改 postgresql.conf 中配置项的值。
例如:
ALTER SYSTEM SET work_mem = '500MB';
该命令不会直接修改postgresql.conf 文件,而是会去修改 postgresql.auto.conf 文件。
然后执行下面命令实现重新加载:
SELECT pg_reload_conf();
2. pg_hba.conf
该文件用于控制PostgreSQL服务器的访问权限。
具体包括:允许哪些用户连接到哪个数据库,允许哪些IP地址连接到本服务器,
以及指定连接时使用的身份验证模式。
3. pg_ident.conf
如果该文件存在,则系统会基于文件内容将当前登陆的操作系统用户映射为一个PostgreSQL数据库内部用户的身份来登陆。
查看配置文件的位置
postgres=# select name,setting,context from pg_settings where category='File Locations'; name | setting | context -------------------+----------------------------------+------------ config_file | /data/pgsql_data/postgresql.conf | postmaster data_directory | /data/pgsql_data | postmaster external_pid_file | | postmaster hba_file | /data/pgsql_data/pg_hba.conf | postmaster ident_file | /data/pgsql_data/pg_ident.conf | postmaster (5 rows)
说明:
context 字段代表作用范围。
(1) superuser 表示超级用户级配置项,只能由超级用户来修改。
修改并且重新加载后会在所有用户会话中生效。非超级用户不能在自己的会话中修改覆盖这个值。
(2) postmaster 更改后需要重启PostgreSQL服务才能生效。
(3) user 表示用户级配置项,可以被每个用户单独修改。该配置项针对每个用户都可以有不同的值。
用户修改后会在自己的所有会话中生效。
9. 5 版中引入了一个新的 pg_file_settings 视图,通过该视图也可以进行配置信息查询。
查询该视图会列出每个配置项所属的配置文件。其中 applied 字段表示该配置项是否已经生效,如果值为 f,表示需要重启服务器或者重加载配置文件。
如果 postgresql.conf 和 postgresql.auto.conf 中存在同名配置,那么后者会覆盖前者,前者在 pg_file_settings 中对应的条目会显示 applied 字段为 f。
postgres=# SELECT name, sourcefile, sourceline, setting, applied FROM pg_file_settings WHERE name IN ('listen_addresses','shared_buffers') ORDER BY name; name | sourcefile | sourceline | setting | applied ------------------+----------------------------------+------------+---------+--------- listen_addresses | /data/pgsql_data/postgresql.conf | 58 | * | t shared_buffers | /data/pgsql_data/postgresql.conf | 113 | 128MB | t
浙公网安备 33010602011771号