Greenplum的参数配置

0    177    1

Tags:

👉 本文共约23500个字,系统预计阅读时间或需89分钟。

目录

服务器配置参数会影响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允许用户查看当前的服务器配置参数设置。例如,要查看所有参数的设置:

SHOW只列出Master实例的设置。要查看整个系统(Master和所有的Segment) 中一个特定参数的值,使用gpconfig工具。例如:

例如:

设置配置参数

很多配置参数限制了谁能改变它们以及何时何处它们可以被设置。例如,要改变特定的参数,用户必须是一个Greenplum数据库超级用户。 其他参数只能从postgresql.conf文件中在系统级别上被设置,或者还要求系统重启让设置生效。

很多配置参数是会话参数。用户可以在系统级别、数据库级别、角色级别或者会话级别设置会话参数。数据库用户可以在他们的 会话中改变大部分会话参数,但是某些要求超级用户权限。

设置本地配置参数

要在多个Segment中改变一个本地配置参数,在每一个目标Segment的postgresql.conf文件中更新该参数, 包括主要的和镜像的Segment。使用gpconfig工具可以在所有的Greenplum postgresql.conf 文件中设置一个参数。例如:

重启Greenplum数据库让配置改变生效:

设置Master配置参数

要设置Master配置参数,请在Greenplum数据库的Master实例上设置它。如果它也是一个session参数, 用户可以为一个特定数据库、角色或者会话设置该桉树。如果一个参数在多个级别上都被设置,最细粒度级别上的 设置会优先。例如,会话覆盖角色,角色覆盖数据库,而数据库覆盖系统。

设置系统级别参数

Master的postgresql.conf文件中的Master参数设置是系统范围默认的。 要设置一个Master参数:

  1. 编辑$MASTER_DATA_DIRECTORY/postgresql.conf文件。

  2. 找到要设置的参数,取消它的注释(移除前面的#字符),并且输入想要的值。

  3. 保存并且关闭该文件。

  4. 对于不需要重新启动服务器的session参数,按如下上传postgresql.conf的改变:

  5. 对于要求服务器重启的参数更改,按如下重启Greenplum数据库:

关于服务器配置参数的细节,请见 Greenplum数据库参考指南.

设置数据库级别参数

使用ALTER DATABASE在数据库级别设置参数。例如:

当用户在数据库级别设置一个会话参数时,每一个连接到该数据库的会话都使用该参数设置。 数据库级别的设置覆盖系统级别的设置。

设置角色级别参数

使用ALTER ROLE在角色级别设置参数。例如:

当用户在角色级别设置一个会话参数时,每一个由该角色启动的会话都使用该参数设置。 角色级别的设置覆盖数据库级别的设置。

设置会话级别参数

任何会话参数都可以在一个活动数据库会话中用SET命令设置。例如:

该参数设置对于这个会话的剩余时间都有效,直到发出一个RESET命令。例如:

会话级别的设置覆盖角色级别的设置。

配置参数种类

配置参数影响着多种服务器行为,例如资源消耗、查询调节以及认证。

服务器配置参数

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

参数类型和值

所有的参数不区分大小写。 每个参数取值为四种类型之一:布尔, 整数, 浮点, 或 字符串。

布尔值可能被写成ON, OFF, TRUE, FALSE, YES, NO, 1, 0(所有都是不区分大小写)。

枚举类型参数的指定方式与字符串参数相同,但仅限于一组有限的值。 枚举参数值不区分大小写。

某些设置指定内存或者时间值。 每个都有一个隐式单位, 它是千字节,块(通常为8千字节),毫秒,秒,或者分钟。 有效内存单位是kB(千字节),MB(兆字节),和GB(千兆字节)。 有效的时间单位是ms(毫秒),s(秒),min(分钟),h(小时),和d(天)。 注意 内存单元的乘数为1024,而不是1000。有效的时间表达式包含数字和单位。 当指定内存和时间单位时使用SET命令,将值括在引号中。 例如:

Note: 值和单位名字之间没有空格。

设置参数

许多配置参数对谁可以更改它们,何处改变它们以及何时改变他们都做了限制,例如,用户必须是Greenplum 数据库的超级用户。 其他参数需要重启系统才能更改生效。 分类为session级别的参数可以在系统层级设置(在postgresql.conf文件中), 在数据库层级设置( 使用ALTER DATABASE), 在角色层级设置(使用ALTER ROLE), 在数据库角色级设置(ALTER ROLE…IN DATABASE…SET), 或者在会话层级设置(使用using SET)。 系统参数只能在postgresql.conf文件中设置。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复