PostgreSQL(五)系统参数配置

本文介绍了PostgreSQL中配置文件的使用方法及如何通过不同命令来设置系统、数据库和角色级别的参数。此外,还提供了如何查看和修改配置参数的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数名称大小写不敏感,参数主要有5种类型: boolean, string, integer, floating point,enumerated (enum). 


配置文件路径:
/usr/local/pgsql/data/postgresql.conf
/usr/local/pgsql/data/postgresql.auto.conf

服务器启动时默认读取的配置文件为 postgresql.conf。

【ALTER SYSTEM】
ALTER SYSTEM 可动态修改参数,修改记录文件为 postgresql.auto.conf ,该文件不可手动编辑,且会覆盖 postgresql.conf 中的参数值,即系统首选postgresql.auto.conf中的设置。

#动态配置命令
ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }
ALTER SYSTEM RESET configuration_parameter
ALTER SYSTEM RESET ALL

ALTER SYSTEM 将参数设置为 DEFAULT 或 RESET 时,参数将被移除。重新设置后需重载(pg_ctl reload 或 pg_reload_conf())配置文件才生效,或重启系统服务。

#重新加载配置文件
[postgres@hzc ~]$ pg_ctl reload -D /usr/local/pgsql/data
postgres=# pg_reload_conf()


【ALTER DATABASE】数据库级别的配置影响单个数据库。重新连接或刷新会话时生效。
ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name SET configuration_parameter FROM CURRENT
ALTER DATABASE name RESET configuration_parameter
ALTER DATABASE name RESET ALL

【ALTER ROLE】角色或数据库级别配置。重新连接或刷新会话时生效。
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
ALTER ROLE { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL

【SHOW / SET】影响当前会话级别。可查看当前连接的参数和重新设置参数。

SHOW name
SHOW ALL

SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }


#查看当前参数值
SELECT name,setting,vartype,boot_val,min_val,max_val,reset_val FROM pg_settings;
 
 
示例:
SHOW DateStyle;
SHOW ALL;

SELECT * FROM pg_timezone_names WHERE abbrev='+08';
SET TIME ZONE 'Europe/Rome';
SET TIME ZONE 'Etc/GMT-8';
SELECT NOW();

SELECT name,setting,vartype,boot_val,min_val,max_val,reset_val FROM pg_settings where name='enable_sort';
UPDATE pg_settings SET setting = 'off' WHERE name = 'enable_sort';
SELECT set_config('enable_sort', 'on', true); --true:当前事务级别
SELECT set_config('enable_sort', 'off', false);--false:当前会话级别
SET enable_sort TO DEFAULT;

其他参数特殊设置方法参考: https://www.postgresql.org/docs/10/static/config-setting.html


PostgreSQL 像其他数据库一样,如果不限制使用系统资源,系统资源可能将被耗尽。PostgreSQL 要求操作系统提供进程间通信(IPC)的特性,尤其共享内存和信号。Unix派生系统都会有提供“System V”或“POSIX” IPC。PostgreSQL 启动时,一般会分配比较小的共享内存和大量的POSIX(mmap)共享内存。PostgreSQL 运行受操作系统System V IPC 限制,如果超出/低于系统的限制,则服务将拒绝启动,输出相关错误信息。


Managing Kernel Resources :https://www.postgresql.org/docs/10/static/kernel-resources.html

管理内核资源 :http://www.yiibai.com/manual/postgresql/kernel-resources.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值