服务器配置参数
有很多Greenplum服务器配置参数能够影响 Greenplum数据库系统的行为。如同常规的PostgreSQL数据库系统一样,许多配置参数有相同的名称、设置以及行为。
参数类型和值
所有的参数不区分大小写。每个参数取值为四种类型之一:Boolean
, 整数
, 浮点
,
或 字符串
。Boolean 值可能被写成 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';
注意: 值和单位名字之间没有空格。
设置参数
许多配置参数对谁可以更改它们,何处改变它们以及何时改变他们都做了限制,例如,用户必须是Greenplum
数据库的超级用户。其他参数需要重启系统才能更改生效。分类为 session 级别的参数可以在系统层级设置(在postgresql.conf
文件中),在数据库层级设置( 使用ALTER
DATABASE
),在角色层级设置(使用 ALTER ROLE
),或者在会话层级设置(使用 SET
)。 系统参数只能在postgresql.conf
文件中设置。
在Greenplum数据库中,Master实例和Segment实例都有它自己的
postgresql.conf
文件(位于各自的数据目录中)。一些参数被认为是 local 参数,意味着每个Segment实例都查看自己的
postgresql.conf
文件来获取该参数的值。用户必须在系统上的每个实例中都设置local参数(Master实例和Segment实例)。其他参数被认为是 master 参数。master参数只能在Master实例上设置。
这个表描述了服务器配置参数描述中“可设置分类”列中的值。
表 1. 可设置分类
设置分类 | 描述 |
---|---|
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 | 这些参数不能被数据库用户和超级用户设置,当前的参数值可以显示但是不会更改。 |