Greenplum的参数配置

0    33    1

Tags:

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

服务器配置参数会影响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工具。例如:

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

例如:

设置配置参数

很多配置参数限制了谁能改变它们以及何时何处它们可以被设置。例如,要改变特定的参数,用户必须是一个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文件中设置。

在Greenplum数据库中,Master实例和Segment实例都有它自己的postgresql.conf文件(位于各自的数据目录中)。 一些参数被认为是local参数,意味着每个Segment实例都查看自己的postgresql.conf文件来获取该参数的值。 用户必须在系统上的每个实例中都设置local参数(Master实例和Segment实例)。 其他参数被认为是master参数。 master参数只能在Master实例上设置。

这个表描述了服务器配置参数描述中“可设置分类”列中的值。

设置分类描述
master或localmaster参数只能在Greenplum的Master实例的postgresql.conf文件中设置。 然后,该参数的值在运行时被传递到(或者忽略)到Segment实例。local参数必须在Master实例和每个Segment实例的postgresql.conf文件中设置。 每个Segment实例会在其自己的配置文件中去获得参数。 local参数设置总是需要系统重启才能生效。
session或systemSession参数可以在数据库会话中即时更改,并且可以具有以下设置的层次结构: 在系统层级(postgresql.conf)、 在数据库层级(ALTER DATABASE…SET)、 在角色层级(ALTER ROLE…SET)、 在数据库和角色层级或者会话层级(SET)。 如果参数设置为多个级别,则最细度的设置优先(例如,会话覆盖数据库和角色,数据库和角色覆盖角色,角色覆盖数据库,数据库覆盖系统)。system参数只能通过postgresql.conf文件修改。
restart或reload当更改postgresql.conf文件中的参数值时,有些需要重启Greenplum数据库才能生效。 其他参数只需要重新加载服务器配置文件就能刷新(使用gpstop -u),不需要停止系统。
superuser这些会话参数只能通过数据库超级用户才能设置,常规用户不能设置这个参数。
read only这些参数不能被数据库用户和超级用户设置,当前的参数值可以显示但是不会更改。

参数类别

配置参数会影响服务器行为的类别,例如资源消耗,查询调整和身份验证。 以下主题描述了Greenplum配置参数类别。

参考

https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/48dc01c94cd1f79d.md
https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/8618fe5efcd3ee4d.md

https://www.bookstack.cn/read/greenplum-admin_guide-6.0-zh/27985e397e5e819a.md

标签:

头像

小麦苗

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

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

12 − 11 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部