Postgresql服务器配置-设置参数

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: Postgresql服务器配置-设置参数 1、Parameter Names and Values 每个参数都有一个值。所有参数名称都不区分大小写。每个参数值都采用五种类型之一: 布尔、字符串、整数、浮点或枚举 (枚举) Boolean:值可以是off, true, false, yes, no, 1, 0 (区分大小写)或其中一个值的任何明确前缀。

Postgresql服务配置-设置参数

1、Parameter Names and Values

每个参数都有一个值。所有参数名称都不区分大小写。每个参数值都采用五种类型之一: 布尔、字符串、整数、浮点或枚举 (枚举)

  • Boolean:值可以是off, true, false, yes, no, 1, 0 (区分大小写)或其中一个值的任何明确前缀。
  • String:通常用单引号括起来,数字和标识符可以忽略单引号
  • Numeric:允许整数和浮点型
  • Numeric with Unit:带单位的数字,某些数字参数具有隐式单位,为方便起见, 可以使用显式指定的单位给出设置, 例如时间值的 "120 ms", 它们将转换为参数的实际单位。请注意, 该值必须以字符串 (带引号) 的形式写入才能使用此功能。单位名称区分大小写, 数值和单位之间可以有空白。
  • Enumerated:枚举不区分大小写。

2、Parameter Interaction via the Configuration File

通过参数文件配置

  • 通过更改文件postgresql.conf配置参数
  • 通过这种方式设置的参数,提供的是默认值
  • pg_ctl reload可使服务器重新读取配置文件
  • pg_file_settings查看参数文件配置的参数
查看参数在参数文件中的配置
postgres=# select * from pg_FILE_settings where name='max_connections';
sourcefile | sourceline | seqno | name | setting | applied | error 
-----------------------------------------+------------+-------+-----------------+---------+---------+-------
/opt/postgres/data/postgresql.conf | 66 | 3 | max_connections | 100 | f | 
/opt/postgres/data/postgresql.auto.conf | 9 | 30 | max_connections | 200 | t | 
(2 rows)

3、Parameter Interaction via SQL

pg提供三种SQL命令用于配置参数

  • alter system命令更改全局(global/cluster)配置
  • alter database命令针对每个数据库更改设置,覆盖全局设置
  • alter role命令允许配置特定用户的参数值,覆盖全局和数据库设置

    注意:alter database和alter role仅对新的会话生效,且有些参数无法修改,使之永久生效,只能修改动态参数
postgres=# alter database postgres set max_connections=300;
ERROR: parameter "max_connections" cannot be changed without restarting the server
  • pg_settings查看当前参数配置

    注意:通过查询系统表pg_settings,可以了解更改配置后使参数生效是通过重新载入配置文件还是重启数据库服务。如果context显示postmaster需要重启数据库服务,执行pg_ctl restart;如果context显示sighup,重新加载pg_ctl即执行pg_ctl reload命令。
查看当前参数值
postgres=# select name,setting,unit,context,sourcefile from pg_settings where name='max_connections';
name | setting | unit | context | sourcefile 
-----------------+---------+------+------------+-----------------------------------------
max_connections | 200 | | postmaster | /opt/postgres/data/postgresql.auto.conf
(1 row)
查看是否需要重启
postgres=# select name,context from pg_settings where name in ('max_connections','log_connections','log_temp_files');
name | context 
-----------------+-------------------
log_connections | superuser-backend
log_temp_files | superuser
max_connections | postmaster
(3 rows)
context内容参考:
https://www.postgresql.org/docs/10/view-pg-settings.html
There are several possible values of context. In order of decreasing difficulty of changing the setting, they are:
internal
These settings cannot be changed directly; they reflect internally determined values. Some of them may be adjustable by rebuilding the server with different configuration options, or by changing options supplied to initdb.
postmaster
These settings can only be applied when the server starts, so any change requires restarting the server. Values for these settings are typically stored in the postgresql.conf file, or passed on the command line when starting the server. Of course, settings with any of the lower context types can also be set at server start time.
sighup
Changes to these settings can be made in postgresql.conf without restarting the server. Send a SIGHUP signal to the postmaster to cause it to re-read postgresql.conf and apply the changes. The postmaster will also forward the SIGHUP signal to its child processes so that they all pick up the new value.
superuser-backend
Changes to these settings can be made in postgresql.conf without restarting the server. They can also be set for a particular session in the connection request packet (for example, via libpq's PGOPTIONS environment variable), but only if the connecting user is a superuser. However, these settings never change in a session after it is started. If you change them in postgresql.conf, send a SIGHUP signal to the postmaster to cause it to re-read postgresql.conf. The new values will only affect subsequently-launched sessions.
backend
Changes to these settings can be made in postgresql.conf without restarting the server. They can also be set for a particular session in the connection request packet (for example, via libpq's PGOPTIONS environment variable); any user can make such a change for their session. However, these settings never change in a session after it is started. If you change them in postgresql.conf, send a SIGHUP signal to the postmaster to cause it to re-read postgresql.conf. The new values will only affect subsequently-launched sessions.
superuser
These settings can be set from postgresql.conf, or within a session via the SET command; but only superusers can change them via SET. Changes in postgresql.conf will affect existing sessions only if no session-local value has been established with SET.
user
These settings can be set from postgresql.conf, or within a session via the SET command. Any user is allowed to change their session-local value. Changes in postgresql.conf will affect existing sessions only if no session-local value has been established with SET.
  • pg_settings视图可以查看和修改(只能修改会话级别的值)
    In addition, the system view pg_settings can be used to view and change session-local values
  • 客户端连接后可以使用show和set命令设置当前会话的参数值,不影响其他会话。show调用内部函数current_setting,set调用内部函数set_config(setting_name, new_value, is_local)
查看参数大小
postgres=# show shared_buffers;
shared_buffers 
----------------
128MB
(1 row)
or
postgres=# SELECT name,setting,unit,current_setting(name) FROM pg_settings WHERE name='shared_buffers';
name | setting | unit | current_setting 
----------------+---------+------+-----------------
shared_buffers | 16384 | 8kB | 128MB
(1 row)

注意:set命令只能由superuser执行

4、Parameter Interaction via the Shell

除了在数据库或角色级别设置全局默认值或附加重写外, 还可以通过 shell 工具将设置传递给 PostgreSQL。服务器和客户端库都通过 shell 接受参数值。

  • 在服务器启动过程中, 可以通过-c 命令行参数将参数设置传递给 postgres
postgres -c log_connections=yes -c log_destination='syslog'
  • 通过 libpq 启动客户端会话时, 可以使用 PGOPOPS 环境变量指定参数设置。以这种方式建立的设置构成会话生存期的默认值, 但不会影响其他会话。由于历史原因, POSTGRES 的格式类似于启动 postgres 命令时使用的格式;具体而言, 必须指定-c 标志。例如,
env PGOPTIONS="-c geqo=off -c statement_timeout=5min" psql

5、Managing Configuration File Contents

PostgreSQL 提供了几个功能, 用于将复杂的 poostgresql. conf 文件分解为子文件。在管理具有相关但不相同的配置的多台服务器时, 这些功能特别有用。
除了单个参数设置外, postgresql. conf 文件还可以包含指令, 这些指令指定要读取和处理的另一个文件, 就像此时将其插入到配置文件中一样。此功能允许将配置文件划分为物理上独立的部分。如:

include 'filename'

文件名没有绝对路径时, 则将其视为相对于包含引用配置文件的目录

也可以指定整个目录。如:

include_dir 'directory'

目录名称没有绝对路径时,则将其视为相对于包含引用配置文件的目录。

在指定的目录中, 将只包括名称以后缀. conf 结尾的非目录文件。的开始的文件名。字符也会被忽略, 以防止错误, 因为此类文件隐藏在某些平台上。包含目录中的多个文件按文件名顺序处理

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
1月前
|
缓存 监控 定位技术
|
25天前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
51 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
93 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
98 2
|
1月前
|
监控 Kubernetes 安全
如何设置一个有效的远程管理工具来简化服务器的维护工作?
如何设置一个有效的远程管理工具来简化服务器的维护工作?
|
2月前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
1月前
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
63 0
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器Entry云盘和ESSD Entry云盘区别、性能参数及使用常见问题参考
在我们选择阿里云服务器的时候,有部分云服务器同时支持ESSD Entry云盘和ESSD云盘,有的初次接触阿里云服务器云盘的用户可能还不是很清楚他们之间的区别,因此不知道选择哪种更好更能满足自己场景的需求,本文为大家介绍一下阿里云服务器Entry云盘和ESSD Entry云盘各自的性能参数区别及使用过程中的一些常见问题,以供选择参考。
|
2月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
35 5
ly~
|
2月前
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
168 3