postgresql参数的分类和修改

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: postgresql参数配置是在$PGDATA下的postgresql.conf文件中,有时候也会在postgresql.auto.conf文件中,后者优先级更高。

postgresql参数配置是在$PGDATA下的postgresql.conf文件中,有时候也会在postgresql.auto.conf文件中,后者优先级更高。


backend:可以在postgresql.conf中对这些设置进行更改,而无需重新启动服务器。但新的配置值只会出现在这之后的连接中,在已有的连接中,这些值不会改变。只需要向postmaster进程发送一个SIGHUP信号,让其重新读取配置文件即可(该分类有点类似于Oracle里面的动态参数)。$ pg_ctl reload -D $PGDATA(DATA目录)

user:该类参数表示,普通用户可以通过set命令来更改参数的配置值。

internal:该类参数是内部参数,也就是说,不可以进行修改,除非重新initdb。

postmaster:该类参数更改配置项后,需要重启PostgreSQL实例才能生效。类似于Oracle里面的静态参数。

superuser:该类参数可以由超级用户来改变,改变时,只会影响到自身的session,不会影响到其他的用户。

sighup:在postgresql.conf配置文件中更改这种类型的参数无须重启实例,只需要向postmaster进程发送一个SIGHUP信号,让其重新读取配置文件即可。postmaster进程收到信号后,也会向其他子进程发送SIGHUP信号,让新的参数值在其他子进程中也生效。该类参数区别于backend类参数。

superuser-backend:该类参数可以由超级用户来改变,可以在postgresql.conf中对这些设置进行更改,而无需重新启动服务器。但新的配置值只会出现在这之后的连接中,在已有的连接中,这些值不会改变。

查看参数

postgres=# SELECT name, setting, unit,context FROM pg_settings WHERE name like '%buffer%';
      name      | setting | unit |  context   
----------------+---------+------+------------
 shared_buffers | 16384   | 8kB  | postmaster
 temp_buffers   | 1024    | 8kB  | user
 wal_buffers    | 512     | 8kB  | postmaster
postgres=# show shared_buffers;
 shared_buffers 
----------------
 128MB
(1 row)

修改user类型的参数


postgres=# set temp_buffers='12MB';
SET
postgres=# SELECT name, setting, unit,context FROM pg_settings WHERE name like '%buffer%';
      name      | setting | unit |  context   
----------------+---------+------+------------
 shared_buffers | 16384   | 8kB  | postmaster
 temp_buffers   | 1536    | 8kB  | user
 wal_buffers    | 512     | 8kB  | postmaster
(3 rows)


修改sighup类型的参数


postgres=# alter system set log_checkpoints = on;
ALTER SYSTEM
postgres=# SELECT name, setting, unit,context FROM pg_settings WHERE name like 'log_checkpoints';
      name       | setting | unit | context 
-----------------+---------+------+---------
 log_checkpoints | off     |      | sighup
(1 row)
postgres=# SELECT pg_reload_conf();
 pg_reload_conf 
----------------
 t
(1 row)
postgres=# SELECT name, setting, unit,context FROM pg_settings WHERE name like 'log_checkpoints';
      name       | setting | unit | context 
-----------------+---------+------+---------
 log_checkpoints | on      |      | sighup
root@scutech:/var/lib/postgresql/12/main# cat postgresql.auto.conf 
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
log_checkpoints = 'on'



可以看到修改了参数在postgresql.auto.conf 中保存

另外两种reload的方式是:


用UNIX的kill手动发起HUP信号 $kill -HUP PID

用pg_ctl命令触发SIGHUP信号 $pg_ctl reload

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
11月前
|
缓存 关系型数据库 数据库
PostgreSQL技术大讲堂 - 第32讲:数据库参数调整
从零开始学PostgreSQL技术大讲堂 - 第32讲:数据库参数调整
597 2
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 12: Recovery.conf 文件参数合并到 postgresql.conf
PostgreSQL 12 的一个重要变化是 recovery.conf 配置文件中的参数合并到 postgresql.conf,recovery.conf 不再使用,我们看看手册的说明,如下: 发行说明 Move recovery.
4762 0
|
2月前
|
开发框架 关系型数据库 数据库
在 PostgreSQL 中,解决图片二进制数据,由于bytea_output参数问题导致显示不正常的问题。
在 PostgreSQL 中,解决图片二进制数据,由于bytea_output参数问题导致显示不正常的问题。
|
5月前
|
SQL 关系型数据库 数据库
postgresql数据库修改参数的方式
在PostgreSQL数据库中,你可以通过多种方式修改数据库参数,以更改其行为。以下是一些常见的修改数据库参数的方式: 1. **通过配置文件修改(postgresql.conf):** PostgreSQL的配置文件是 `postgresql.conf`。你可以直接编辑该文件,找到要修改的参数,修改其值,然后重新启动PostgreSQL服务以使更改生效。 通常,`postgresql.conf` 文件位于 PostgreSQL 数据目录下。修改完毕后,确保重新启动 PostgreSQL 服务。 2. **使用 ALTER SYSTEM 命令:** PostgreSQL
357 1
|
5月前
|
关系型数据库 Java 分布式数据库
PolarDB for PostgreSQL参数问题之参数删除失败如何解决
PolarDB for PostgreSQL是基于PostgreSQL开发的一款云原生关系型数据库服务,它提供了高性能、高可用性和弹性扩展的特性;本合集将围绕PolarDB(pg)的部署、管理和优化提供指导,以及常见问题的排查和解决办法。
|
5月前
|
关系型数据库 PostgreSQL
PostgreSQL 的哪些参数不能通过ALTER SYSTEM SET 修改
在 PostgreSQL 中,有一些参数是不能通过 `ALTER SYSTEM SET` 语句进行动态修改的,这些参数通常需要在 PostgreSQL 的配置文件中进行手动修改。以下是一些不能通过 `ALTER SYSTEM SET` 修改的常见参数: 1. **track_activities** 2. **track_counts** 3. **track_io_timing** 4. **track_functions** 5. **track_activity_query_size** 6. **track_commit_timestamp** 7. **shared_preload
111 0
|
关系型数据库 Java 数据库连接
PostgreSQL 14中连接参数target_session_attrs增强
PostgreSQL 14中连接参数target_session_attrs增强
131 0
|
SQL 关系型数据库 Linux
【PostgreSQL】入门学习笔记(包括安装、环境与参数配置、故障排查以及备份还原等)
以下内容为前几天在备考PostgreSQL入门考试时候做的笔记,经过了全职的两天的奋战与实验,并最终顺利通过了PCA初级认证考试。现在把我学习的笔记分享给大家,文中有对应的思维导图图片可供查看,内容与后面正文文本一致。另外,由于SQL语句部分比较基础,基本上会一门数据库就都会,所以此处部分省略掉不做过多记录了。
359 0
【PostgreSQL】入门学习笔记(包括安装、环境与参数配置、故障排查以及备份还原等)
|
存储 算法 关系型数据库
PostgreSQL 垃圾回收参数优化之 - maintenance_work_mem , autovacuum_work_mem
PostgreSQL 垃圾回收参数优化之 - maintenance_work_mem , autovacuum_work_mem
3494 1
|
Oracle 算法 搜索推荐
C/C++/Linux/PostgreSQL 高性能服务器开发技术博文分类汇总(持续更新...)
C/C++/Linux/PostgreSQL 高性能服务器开发技术博文分类汇总(持续更新...)
236 0
C/C++/Linux/PostgreSQL 高性能服务器开发技术博文分类汇总(持续更新...)