Greenplum的参数配置
服务器配置参数会影响Greenplum数据库的行为。 它们是PostgreSQL的“大统一配置”系统的一部分,因此它们有时 也被称为“GUC”。大部分的Greenplum数据库服务器配置参数和PostgreSQL的配置参数相同,但是也有一些是 Greenplum所特有的。
关于Greenplum数据库的Master参数和本地参数
服务器配置文件包含着配置服务器行为的参数。Greenplum数据库的配置文件postgresql.conf 位于数据库实例的数据目录之下。
Master和每一个Segment实例都有自己的postgresql.conf文件。 一些参数是本地的:每个Segment实例检查它的postgresql.conf文件来得到这类 参数的值。在Master和每一个Segment实例上都要设置本地参数。
其他参数是用户要在Master实例上设置的master参数。其值会在查询运行时被向下传递到Segment实例 (或者在某些情况中会被忽略)。
查看服务器配置参数设置
SQL命令SHOW允许用户查看当前的服务器配置参数设置。例如,要查看所有参数的设置:
1 | $ psql -c 'SHOW ALL;' |
SHOW只列出Master实例的设置。要查看整个系统(Master和所有的Segment) 中一个特定参数的值,使用gpconfig工具。例如:
1 | $ gpconfig --show max_connections |
例如:
1 2 3 4 5 | [gpadmin@lhrgp40 ~]$ gpconfig --show max_connections Values on all segments are consistent GUC : max_connections Master value: 250 Segment value: 750 |
设置配置参数
很多配置参数限制了谁能改变它们以及何时何处它们可以被设置。例如,要改变特定的参数,用户必须是一个Greenplum数据库超级用户。 其他参数只能从postgresql.conf文件中在系统级别上被设置,或者还要求系统重启让设置生效。
很多配置参数是会话参数。用户可以在系统级别、数据库级别、角色级别或者会话级别设置会话参数。数据库用户可以在他们的 会话中改变大部分会话参数,但是某些要求超级用户权限。
设置本地配置参数
要在多个Segment中改变一个本地配置参数,在每一个目标Segment的postgresql.conf文件中更新该参数, 包括主要的和镜像的Segment。使用gpconfig工具可以在所有的Greenplum postgresql.conf 文件中设置一个参数。例如:
1 | $ gpconfig -c gp_vmem_protect_limit -v 4096 |
重启Greenplum数据库让配置改变生效:
1 | gpstop -r |
设置Master配置参数
要设置Master配置参数,请在Greenplum数据库的Master实例上设置它。如果它也是一个session参数, 用户可以为一个特定数据库、角色或者会话设置该桉树。如果一个参数在多个级别上都被设置,最细粒度级别上的 设置会优先。例如,会话覆盖角色,角色覆盖数据库,而数据库覆盖系统。
设置系统级别参数
Master的postgresql.conf文件中的Master参数设置是系统范围默认的。 要设置一个Master参数:
编辑$MASTER_DATA_DIRECTORY/postgresql.conf文件。
找到要设置的参数,取消它的注释(移除前面的#字符),并且输入想要的值。
保存并且关闭该文件。
对于不需要重新启动服务器的session参数,按如下上传postgresql.conf的改变:
1$ gpstop -u对于要求服务器重启的参数更改,按如下重启Greenplum数据库:
1$ gpstop -r
关于服务器配置参数的细节,请见 Greenplum数据库参考指南.
设置数据库级别参数
使用ALTER DATABASE在数据库级别设置参数。例如:
1 | =# ALTER DATABASE mydatabase SET search_path TO myschema; |
当用户在数据库级别设置一个会话参数时,每一个连接到该数据库的会话都使用该参数设置。 数据库级别的设置覆盖系统级别的设置。
设置角色级别参数
使用ALTER ROLE在角色级别设置参数。例如:
1 | =# ALTER ROLE bob SET search_path TO bobschema; |
当用户在角色级别设置一个会话参数时,每一个由该角色启动的会话都使用该参数设置。 角色级别的设置覆盖数据库级别的设置。
设置会话级别参数
任何会话参数都可以在一个活动数据库会话中用SET命令设置。例如:
1 | SET statement_mem TO '200MB'; |
该参数设置对于这个会话的剩余时间都有效,直到发出一个RESET命令。例如:
1 | RESET statement_mem; |
会话级别的设置覆盖角色级别的设置。
配置参数种类
配置参数影响着多种服务器行为,例如资源消耗、查询调节以及认证。
服务器配置参数
有很多Greenplum服务器配置参数能够影响 Greenplum数据库系统的行为。 如同常规的PostgreSQL数据库系统一样,许多配置参数有相同的名称、设置以及行为。
参数类型和值
所有的参数不区分大小写。 每个参数取值为四种类型之一:布尔, 整数, 浮点, 或 字符串。
布尔值可能被写成ON, OFF, TRUE, FALSE, YES, NO, 1, 0(所有都是不区分大小写)。
枚举类型参数的指定方式与字符串参数相同,但仅限于一组有限的值。 枚举参数值不区分大小写。
某些设置指定内存或者时间值。 每个都有一个隐式单位, 它是千字节,块(通常为8千字节),毫秒,秒,或者分钟。 有效内存单位是kB(千字节),MB(兆字节),和GB(千兆字节)。 有效的时间单位是ms(毫秒),s(秒),min(分钟),h(小时),和d(天)。 注意 内存单元的乘数为1024,而不是1000。有效的时间表达式包含数字和单位。 当指定内存和时间单位时使用SET命令,将值括在引号中。 例如:
1 | SET statement_mem TO '200MB'; |
Note: 值和单位名字之间没有空格。
设置参数
许多配置参数对谁可以更改它们,何处改变它们以及何时改变他们都做了限制,例如,用户必须是Greenplum 数据库的超级用户。 其他参数需要重启系统才能更改生效。 分类为session级别的参数可以在系统层级设置(在postgresql.conf文件中), 在数据库层级设置( 使用ALTER DATABASE), 在角色层级设置(使用ALTER ROLE), 在数据库角色级设置(ALTER ROLE…IN DATABASE…SET), 或者在会话层级设置(使用using SET)。 系统参数只能在postgresql.conf文件中设置。
在Greenplum数据库中,Master实例和Segment实例都有它自己的postgresql.conf文件(位于各自的数据目录中)。 一些参数被认为是local参数,意味着每个Segment实例都查看自己的postgresql.conf文件来获取该参数的值。 用户必须在系统上的每个实例中都设置local参数(Master实例和Segment实例)。 其他参数被认为是master参数。 master参数只能在Master实例上设置。
这个表描述了服务器配置参数描述中“可设置分类”列中的值。
设置分类 | 描述 |
---|---|
master或local | master参数只能在Greenplum的Master实例的postgresql.conf文件中设置。 然后,该参数的值在运行时被传递到(或者忽略)到Segment实例。local参数必须在Master实例和每个Segment实例的postgresql.conf文件中设置。 每个Segment实例会在其自己的配置文件中去获得参数。 local参数设置总是需要系统重启才能生效。 |
session或system | Session参数可以在数据库会话中即时更改,并且可以具有以下设置的层次结构: 在系统层级(postgresql.conf)、 在数据库层级(ALTER DATABASE…SET)、 在角色层级(ALTER ROLE…SET)、 在数据库和角色层级或者会话层级(SET)。 如果参数设置为多个级别,则最细度的设置优先(例如,会话覆盖数据库和角色,数据库和角色覆盖角色,角色覆盖数据库,数据库覆盖系统)。system参数只能通过postgresql.conf文件修改。 |
restart或reload | 当更改postgresql.conf文件中的参数值时,有些需要重启Greenplum数据库才能生效。 其他参数只需要重新加载服务器配置文件就能刷新(使用gpstop -u),不需要停止系统。 |
superuser | 这些会话参数只能通过数据库超级用户才能设置,常规用户不能设置这个参数。 |
read only | 这些参数不能被数据库用户和超级用户设置,当前的参数值可以显示但是不会更改。 |
参数类别
配置参数会影响服务器行为的类别,例如资源消耗,查询调整和身份验证。 以下主题描述了Greenplum配置参数类别。
- 连接和验证参数
- 系统资源消耗参数
- GPORCA参数
- 查询调优参数
- 错误报告和日志参数
- 系统监控参数
- 运行时统计信息收集参数
- 自动统计收集参数
- 客户端连接默认参数
- 锁管理参数
- 资源管理参数(资源队列)
- 资源管理参数(资源组)
- 外部表参数
- 数据库表参数
- 历史版本兼容性参数
- Greenplum数据库阵列配置参数
- master和segment的Greenplum镜像参数
- Greenplum数据库扩展参数
参考
https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/48dc01c94cd1f79d.md
https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/8618fe5efcd3ee4d.md
https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/27985e397e5e819a.md