合 Greenplum的参数配置
- 关于Greenplum数据库的Master参数和本地参数
- 查看服务器配置参数设置
- 设置配置参数
- 设置本地配置参数
- 设置Master配置参数
- 设置系统级别参数
- 设置数据库级别参数
- 设置角色级别参数
- 设置会话级别参数
- 配置参数种类
- 服务器配置参数
- 参数类型和值
- 设置参数
- 参数类别
- 连接和验证参数
- Connection Parameters
- 安全和身份验证参数
- 系统资源消耗参数
- 内存消耗参数
- OS资源参数
- 基于成本的清理延迟参数
- 事务ID管理参数
- GPORCA参数
- 查询调优参数
- Postgres查询优化器运算符控制参数
- Postgres查询优化器成本计算参数
- 数据库统计采样参数
- 排序运算符配置参数
- 聚合运算符配置参数
- 连接运算符配置参数
- 其他Postgres查询优化器配置参数
- 查询计划执行
- 错误报告和日志参数
- 日志轮换
- 何时记录
- 记录什么
- 系统监控参数
- Greenplum性能数据库
- 查询指标收集参数
- 运行时统计信息收集参数
- 自动统计收集参数
- 客户端连接默认参数
- 语句行为参数
- 区域设置和格式化参数
- 其他客户端默认参数
- 锁管理参数
- 资源管理参数(资源队列)
- 资源管理参数(资源组)
- 外部表参数
- 数据库表参数
- 追加优化表参数
- 历史版本兼容性参数
- PostgreSQL
- Greenplum数据库
- Greenplum数据库阵列配置参数
- 互连配置参数
- 调度配置参数
- 故障操作参数
- 分布式事务管理参数
- 只读参数
- master和segment的Greenplum镜像参数
- Greenplum数据库扩展参数
- XML数据参数
- gpconfig使用示例
- 修改参数
- 查询参数
- 注意事项(重要)
- 参考
服务器配置参数会影响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允许用户查看当前的服务器配置参数设置。例如,要查看所有参数的设置:
1 | $ psql -c 'SHOW ALL;' |
SHOW只列出Master实例的设置。要查看整个系统(Master和所有的Segment) 中一个特定参数的值,使用gpconfig工具。例如:
1 | $ gpconfig --show max_connections |
例如:
1 2 3 4 5 | [gpadmin@lhrgp40 ~]$ gpconfig --show max_connections Values on all segments are consistent GUC : max_connections Master value: 250 Segment value: 750 |
设置配置参数
很多配置参数限制了谁能改变它们以及何时何处它们可以被设置。例如,要改变特定的参数,用户必须是一个Greenplum数据库超级用户。 其他参数只能从postgresql.conf文件中在系统级别上被设置,或者还要求系统重启让设置生效。
很多配置参数是会话参数。用户可以在系统级别、数据库级别、角色级别或者会话级别设置会话参数。数据库用户可以在他们的 会话中改变大部分会话参数,但是某些要求超级用户权限。
设置本地配置参数
要在多个Segment中改变一个本地配置参数,在每一个目标Segment的postgresql.conf文件中更新该参数, 包括主要的和镜像的Segment。使用gpconfig工具可以在所有的Greenplum postgresql.conf 文件中设置一个参数。例如:
1 | $ gpconfig -c gp_vmem_protect_limit -v 4096 |
重启Greenplum数据库让配置改变生效:
1 | gpstop -r |
设置Master配置参数
要设置Master配置参数,请在Greenplum数据库的Master实例上设置它。如果它也是一个session参数, 用户可以为一个特定数据库、角色或者会话设置该桉树。如果一个参数在多个级别上都被设置,最细粒度级别上的 设置会优先。例如,会话覆盖角色,角色覆盖数据库,而数据库覆盖系统。
设置系统级别参数
Master的postgresql.conf文件中的Master参数设置是系统范围默认的。 要设置一个Master参数:
编辑$MASTER_DATA_DIRECTORY/postgresql.conf文件。
找到要设置的参数,取消它的注释(移除前面的#字符),并且输入想要的值。
保存并且关闭该文件。
对于不需要重新启动服务器的session参数,按如下上传postgresql.conf的改变:
1$ gpstop -u对于要求服务器重启的参数更改,按如下重启Greenplum数据库:
1$ gpstop -r
关于服务器配置参数的细节,请见 Greenplum数据库参考指南.
设置数据库级别参数
使用ALTER DATABASE在数据库级别设置参数。例如:
1 | =# ALTER DATABASE mydatabase SET search_path TO myschema; |
当用户在数据库级别设置一个会话参数时,每一个连接到该数据库的会话都使用该参数设置。 数据库级别的设置覆盖系统级别的设置。
设置角色级别参数
使用ALTER ROLE在角色级别设置参数。例如:
1 | =# ALTER ROLE bob SET search_path TO bobschema; |
当用户在角色级别设置一个会话参数时,每一个由该角色启动的会话都使用该参数设置。 角色级别的设置覆盖数据库级别的设置。
设置会话级别参数
任何会话参数都可以在一个活动数据库会话中用SET命令设置。例如:
1 | SET statement_mem TO '200MB'; |
该参数设置对于这个会话的剩余时间都有效,直到发出一个RESET命令。例如:
1 | RESET statement_mem; |
会话级别的设置覆盖角色级别的设置。
配置参数种类
配置参数影响着多种服务器行为,例如资源消耗、查询调节以及认证。
服务器配置参数
有很多Greenplum服务器配置参数能够影响 Greenplum数据库系统的行为。 如同常规的PostgreSQL数据库系统一样,许多配置参数有相同的名称、设置以及行为。
参数类型和值
所有的参数不区分大小写。 每个参数取值为四种类型之一:布尔, 整数, 浮点, 或 字符串。
布尔值可能被写成ON, OFF, TRUE, FALSE, YES, NO, 1, 0(所有都是不区分大小写)。
枚举类型参数的指定方式与字符串参数相同,但仅限于一组有限的值。 枚举参数值不区分大小写。
某些设置指定内存或者时间值。 每个都有一个隐式单位, 它是千字节,块(通常为8千字节),毫秒,秒,或者分钟。 有效内存单位是kB(千字节),MB(兆字节),和GB(千兆字节)。 有效的时间单位是ms(毫秒),s(秒),min(分钟),h(小时),和d(天)。 注意 内存单元的乘数为1024,而不是1000。有效的时间表达式包含数字和单位。 当指定内存和时间单位时使用SET命令,将值括在引号中。 例如:
1 | SET statement_mem TO '200MB'; |
Note: 值和单位名字之间没有空格。
设置参数
许多配置参数对谁可以更改它们,何处改变它们以及何时改变他们都做了限制,例如,用户必须是Greenplum 数据库的超级用户。 其他参数需要重启系统才能更改生效。 分类为session级别的参数可以在系统层级设置(在postgresql.conf文件中), 在数据库层级设置( 使用ALTER DATABASE), 在角色层级设置(使用ALTER ROLE), 在数据库角色级设置(ALTER ROLE…IN DATABASE…SET), 或者在会话层级设置(使用using SET)。 系统参数只能在postgresql.conf文件中设置。