参数文件
- 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 视图获取所需要的参数设置信息。
发现更多宝藏
我在喜马拉雅上分享声音
《PostgreSQL数据库内核分析》,点开链接可以听听,有点意思。
《数据库系统概论(第4版)》,点开链接可以听听,有点意思。
其他相关文章分享列表:
第 23 课 PostgreSQL 创建自己的数据库、模式、用户
第 22 课 PostgreSQL 控制文件
第 21 课 PostgreSQL 日志系统
第 16 课 查询过程源码分析
第 15 课 PostgreSQL 系统参数配置
第 14 课 PostgreSQL 数据存储结构
第 13 课 PostgreSQL 存储之Page(页面)源码分析
第 12 课 PostgreSQL 认证方式
第 11 课 PostgreSQL 增加一个内核C函数
第 10 课 PostgreSQL 在内核增加一个配置参数
第 09 课 PostgreSQL 4种进程启动方式
第 08 课 PostgreSQL 事务介绍
第 07 课 PostgreSQL 数据库、模式、表、空间、用户间的关系
第 06 课 PostgreSQL 系统表介绍
第 05 课 PostgreSQL 编译源代码进行开发
第 04 课 PostgreSQL 安装最新的版本
第 03 课 PostgreSQL 代码结构
第 02 课 PostgreSQL 的特性、应用、安装
第 01 课 PostgreSQL 简介及发展历程
上面文章都在专辑中:PostgreSQL专辑链接,点我查看
如果有用,可以收藏这篇文件,随时在更新....
更多交流加群: PostgreSQL内核开发群 876673220
亲,记得点赞、留言、打赏额!!!
网友评论