服务器配置参数

服务器配置参数

有很多Greenplum服务器配置参数能够影响 Greenplum数据库系统的行为。如同常规的PostgreSQL数据库系统一样,许多配置参数有相同的名称、设置以及行为。

参数类型和值

所有的参数不区分大小写。每个参数取值为四种类型之一:Boolean, 整数, 浮点, 或 字符串。Boolean 值可能被写成 ONOFFTRUE, FALSEYESNO10 (所有都是不区分大小写)。

某些设置指定内存或者时间值。每个都有一个隐式单位, 它是千字节,块(通常为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 这些参数不能被数据库用户和超级用户设置,当前的参数值可以显示但是不会更改。