服务器配置参数
有很多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实例上设置。
这个表描述了服务器配置参数描述中“可设置分类”列中的值。
设置分类 | 描述 |
---|---|
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 | 这些参数不能被数据库用户和超级用户设置,当前的参数值可以显示但是不会更改。 |