参数文件
-
postgresql.conf :数据库配置文件
-
pg_hba.conf :
-
host-based authentication
-
基于主机的认证配置文件
-
pg_ident.conf:基于身份的认证配置文件
参数的取值有四种类型:
-
boolean :Boolean values may be written as ON, OFF, TRUE, FALSE, YES, NO, 1, 0
-
Integer
-
floating point
-
string
参数的分类
按照参数的设置方式,系统参数可以分为:
-
固定级
系统一旦初始化,固定级参数的值就确定下来,是只读参数,不能对其重新设置,例如case_sensitive 等。
-
系统级
对所有数据库及连接是相同的。
必须重新启动服务器才可以重新取值。
-
全局级
对所有数据库及连接是相同的。
-
会话级
该参数每个会话可以有不同的取值。
修改参数
Alter system set
-
ALTER SYSTEM SET ParameterName { = | TO } {ParameterValue | DEFAULT}
修改系统级和全局级参数并修改系统配置文件 postgresql.conf 的参数设置。
调用该命令的用户必须具有超级用户权限
-
实现原理:
修改系统配置文件postgresql.conf
通过系统信号,重新加载该配置文件
-
对于系统级参数,设置后不会立即生效,必须重新启动服务器才可生效,重启服务器后会对所有数据库及连接均有效。
-
对于全局级参数,设置后不用重新启动服务器,就会对所有数据库及所有连接立即生效。如果设置为 DEFAULT 值,将不会立即生效,必须要重启服务器后才可生效。
Alter database set
-
ALTER DATABASE DatabaseName SET ParameterName { = | TO } { ParameterValue | DEFAULT}
-
修改数据库的默认参数。
-
在该数据库上启动的每个新会话(数据库连接)中,该参数的缺省值使用命令中的设定值并覆盖 postgresql.conf 的设定或启动命令行的设置。
-
调用该命令的用户必须具有超级用户权限或为该数据库的所有者。
在sys_database中记录参数信息
设置参数
set
-
SET [ SESSION | LOCAL ] ParameterName { TO | = } { ParameterValue | 'ParameterValue' | DEFAULT }
-
使用SET命令设置的系统参数只对当前连接有效
-
SESSION :表示本次会话有效,当事务提交后,该设置生效,如果事务回滚,则退回到原来的值。
-
LOCAL:表示本次提交之前有效。当事务结束都回退成设置前的值。缺省为 SESSION。
查看当前session参数的取值
Show
显示配置参数的当前会话的取值。
SHOW ALL
SELECT
从 sys_settings 视图获取所需要的参数设置信息。
(责任编辑:IT) |