postgresql.conf

postgresql.conf 文件包含一些通用设置。

比如内存分配、新建比如内存分配、新建 database 的默认存储位置、PostgreSQL服务器的IP地址、日志的位置等。


如何查看配置:
查询pg_settings系统表:
SELECT name, setting FROM pg_settings where name  = 'xxx';
SELECT current_setting(name);

也可以通过 show (show all)命令查看



PostgreSQL 9.4 版本之后,可以使用 ALTER SYSTEM 修改 postgresql.conf 中配置项的值。
例如:
ALTER SYSTEM SET work_mem = '500MB';

该命令不会直接修改postgresql.conf 文件,而是会去修改 postgresql.auto.conf 文件。

如果是不需要重启的参数,reload一次就可以生效:
SELECT pg_reload_conf();

也可以使用pg_ctl命令reload配置,命令如下所示
/opt/pgsql/bin/pg_ctl -D /pgdata/10/data reload


设置和重置Database级别的配置,例如:
ALTER DATABASE name SET configparameter { TO | = } { value | DEFAULT }
ALTER DATABASE name RESET configuration



设置和重置Session级别的配置
1、通过SET命令设置当前Session的配置,例如:
SET configparameter { TO | = } { value | 'value' | DEFAULT }
SET configparameter TO DEFAULT;

2、更新pg_settings视图,例如:
UPDATE `pg_settings` SET setting = new_value WHERE name = 'configparameter';
UPDATE `pg_settings` SET setting = reset_val WHERE name = 'configparameter';

3、使用set_config函数更新会话配置,例如:
SELECT set_config('configparameter', new_value, false);

4、设置和重置Role级别的配置,例如:
ALTER ROLE name IN DATABASE database_name SET configparameter { TO |= } { value  | DEFAULT }
ALTER ROLE name IN DATABASE database_name RESET configparameter

 

posted @ 2025-06-17 15:21  屠魔的少年  阅读(82)  评论(0)    收藏  举报