服务器配置参数
有很多Greenplum服务器配置参数能够影响 Greenplum数据库系统的行为。 如同常规的PostgreSQL数据库系统一样,许多配置参数有相同的名称、设置以及行为。
参数类型和值
所有的参数不区分大小写。 每个参数取值为四种类型之一:布尔, 整数, 浮点, 或 字符串。
布尔值可能被写成ON
,
OFF
, TRUE
, FALSE
, YES
,
NO
, 1
, 0
(所有都是不区分大小写)。
枚举类型参数的指定方式与字符串参数相同,但仅限于一组有限的值。 枚举参数值不区分大小写。
某些设置指定内存或者时间值。
每个都有一个隐式单位,
它是千字节,块(通常为8千字节),毫秒,秒,或者分钟。
有效内存单位是kB
(千字节),MB
(兆字节),和GB
(千兆字节)。
有效的时间单位是ms
(毫秒),s
(秒),min
(分钟),h
(小时),和d
(天)。
注意 内存单元的乘数为1024,而不是1000。有效的时间表达式包含数字和单位。
当指定内存和时间单位时使用SET
命令,将值括在引号中。
例如:
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实例上设置。
这个表描述了服务器配置参数描述中“可设置分类”列中的值。
Table 1. Settable Classifications
设置分类 | 描述 |
---|---|
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 | 这些参数不能被数据库用户和超级用户设置,当前的参数值可以显示但是不会更改。 |