暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GreenPlum的系统配置和参数

DB宝 2023-11-13
773

1.GPDB 的系统配置

服务器配置文件包含着配置服务器行为的参数。Greenplum数据库的配置文件postgresql.conf 位于数据库实例的数据目录之下。

Master和每一个Segment实例都有自己的postgresql.conf文件。

Master Parameters - 仅仅在master instance上设置,查询时候这些值被传递至segment或被忽略。
Local Parameters - 每个segment从自己的配置文件中读取参数。必须在每个instance设置local参数(master+segments)

2.配置参数的级别

很多参数的修改是受限的,如某些参数需要GP的超级用户、某些仅仅设置在系统级或需要重启数据库才能生效。 许多配置参数是session参数。该参数能够被设置在system级、database级、role级、session级的四个不同级别。 大部分的session参数能够被在自己的session中修改。

3.查看配置参数设置

使用SHOW命令查看GPDB系统使用的服务器配置参数的设置
查看所有参数:

$ psql –c ‘SHOW ALL’;

使用gpconfig查看整个系统(Master和Segment)的特定参数的设置

$ gpconfig –show max_connections;

4.配置和查看本地参数(系统级)

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

设置本地化配置参数,必须修改所有的postgresql.conf文件才能生效

# 查看参数配置
gpconfig -s gp_vmem_protect_limit

# 修改参数
gpconfig -c gp_vmem_protect_limit -v 4096MB

重启Greenplum数据库使得修改的配置生效:
$ gpstop -r

5.配置和查看master参数(session)

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

PostgreSQL 系统所有的系统参数配置项对大小都不敏感,主要有Bool、Int、浮点数、字符串、枚举值

参数的修改,有些需要重启数据库、有些普通用户直接修改、有些需要超级用户才能修改生效,分下面几类:

  1. internal:只读参数,已经写死了,不能在修改

  2. postmaster:需要重启数据库才能生效

  3. sighup:不需要重启数据库,给postmaster进程发送sighup信号即可生效

  4. backend:不需要重启数据库,给postmaster进程发送sighup信号即可生效,但是对于已经连接着的客户端,需要断开重连才能生效

  5. superuser:不需要重启数据库,超级用户通过set 命令即可设置

  6. user:不需要重启数据库,通过set命令既可以设置

通过查询pg_setting表,可以查看对于的参数的描述和类型

test=# select name,context,vartype,min_val,max_val from pg_settings where name='max_connections';
name | context | vartype | min_val | max_val
-----------------+------------+---------+---------+---------
max_connections | postmaster | integer | 10 | 65535
(1 row)

test=#

说明max_connections是需要重启服务器生效的。

system级参数

需要在GP Master实例设置系统级别设置参数
step 1. 编辑$MASTER_DATA_DIRECTORY/postgresql.conf文件
step 2. 对需要修改的参数,去掉注释,设置新的值
step 3. 保存并关闭文件
step 4. 对于会话级别的参数,不需要重启,执行如下命令生效:

$ gpstop –u

step 5. 对于需要重启的参数,重启DB:

$ gpstop -r

database级参数

当session参数设置在database级别,每个session连接到数据库时都要使用这个参数。 设置的database参数会覆盖system级的参数。 设置database级参数,使用ALTER DATABASE命令

=# ALTER DATABASE mydatabase SET search_path TO myschema;

role级参数

当session参数设置在role级别,每个session通过role初始化时将使用此参数。 设置的role参数会覆盖database级的参数。

=# ALTER ROLE bob SET search_path TO bobschema;

session级参数

任何session参数都能在活跃的session中设置,使用 SET 命令。 设置的session参数会覆盖role级的参数。

=# SET work_mem TO '200MB'; 

=# RESET work_mem;

6.参数分类

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

  • 连接和验证参数

  • 系统资源消耗参数

  • GPORCA参数

  • 查询调优参数

  • 错误报告和日志参数

  • 系统监控参数

  • 运行时统计信息收集参数

  • 自动统计收集参数

  • 客户端连接默认参数

  • 锁管理参数

  • 资源管理参数(资源队列)

  • 资源管理参数(资源组)

  • 外部表参数

  • 数据库表参数

  • 历史版本兼容性参数

  • Greenplum数据库阵列配置参数

  • master和segment的Greenplum镜像参数

  • Greenplum数据库扩展参数


文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论