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、浮点数、字符串、枚举值
参数的修改,有些需要重启数据库、有些普通用户直接修改、有些需要超级用户才能修改生效,分下面几类:
internal:只读参数,已经写死了,不能在修改
postmaster:需要重启数据库才能生效
sighup:不需要重启数据库,给postmaster进程发送sighup信号即可生效
backend:不需要重启数据库,给postmaster进程发送sighup信号即可生效,但是对于已经连接着的客户端,需要断开重连才能生效
superuser:不需要重启数据库,超级用户通过set 命令即可设置
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数据库扩展参数




