关于Greenplum数据库的Master参数和本地参数
服务器配置文件包含了配置服务器行为的参数。Greenplum数据库配置文件postgresql.conf位于在数据库实例的数据目录下。
master和每个segment实例都有自己的postgresql.conf 文件。一些参数是本地的:每个Segment实例检查它的postgresql.conf文件来得到这类参数的值。在Master和每个Segment实例上都要设置本地参数。
其他参数是您在Master实例上设置的master参数。其值会在查询运行时被向下传递到Segment实例 (或者在某些情况中会被忽略)。
有关本地和master服务器配置参数的信息,请参阅《Greenplum数据库参考指南》。
设置配置参数
很多配置参数限制了谁能改变它们以及何时何处它们可以被设置。例如,要更改某些参数,您必须是Greenplum数据库的超级用户。其他参数只能从postgresql.conf文件中在系统级别上被设置,或者需要重新启动系统才能生效。
很多配置参数是会话参数。您可以在系统级别、数据库级别、角色级别或会话级别设置会话参数。数据库用户可以在他们的会话中改变大部分会话参数,但是某些要求超级用户权限。
有关设置服务器配置参数的信息,请参阅《Greenplum数据库参考指南》。
设置本地配置参数
要在多个Segment中改变一个本地配置参数,请在每一个目标Segment的postgresql.conf文件中更新该参数, 包括主Segment的和镜像Segment。使用gpconfig工具可以在所有的Greenplum postgresql.conf 文件中设置一个参数。例如:
$ gpconfig -c gp_vmem_protect_limit -v 4096
重启Greenplum数据库让配置改变生效:
$ gpstop -r
设置Master配置参数
要设置Master配置参数,请在Greenplum数据库Master实例上进行设置。如果它也是一个session参数,则您可以设置该参数用于一个特定的数据库、角色或会话。如果一个参数在多个级别上都被设置,则最精细级别的设置会优先。例如,会话覆盖角色,角色覆盖数据库,数据库覆盖系统。
-
在系统级别设置参数
Master主机上postgresql.conf文件中的Master参数设置是系统范围默认的。 要设置一个Master参数:
- 编辑 $MASTER_DATA_DIRECTORY/postgresql.conf 文件。
- 找到要设置的参数,取消它的注释(移除前面的#字符),并且输入想要的值。
- 保存并关闭文件。
- 对于不需要重启服务器的session参数,按如下方式上传postgresql.conf的更改:
gpstop -u
- 对于需要重新启动服务器的参数更改,请按如下所示重启Greenplum数据库:
$ gpstop -r
有关服务器配置参数的详细信息,请参阅《 Greenplum数据库参考指南》。
-
在数据库级别设置参数
使用ALTER DATABASE在数据库级别设置参数。例如:
=# ALTER DATABASE mydatabase SET search_path TO myschema;
当您在数据库级别设置一个会话参数时,每一个连接到该数据库的会话都使用该参数设置。 数据库级别的设置将覆盖系统级别的设置。
-
在角色级别设置参数
使用ALTER ROLE在角色级别设置参数。例如:
=# ALTER ROLE bob SET search_path TO bobschema;
在您在角色级别设置一个会话参数时,该角色发起的每个会话都使用该参数设置。角色级别的设置将覆盖数据库级别的设置。
-
在会话中设置参数
任何会话参数都可以在一个活动数据库会话中用SET命令设置。例如
=#SET statement_mem TO'200MB';
该参数设置对于这个会话的剩余时间都有效,直到发出一个RESET命令。例如:
=#SET statement_mem TO'200MB';
会话级别的设置将覆盖角色级别的设置。
查看服务器配置参数设置
SQL命令SHOW允许您查看当前的服务器配置参数设置。例如,要查看所有参数的设置:
$ psql -c 'SHOW ALL;'
SHOW只列出Master实例的设置。要查看整个系统(Master和所有的Segment) 中一个特定参数的值,请使用gpconfig工具。例如:
$ gpconfig --show max_connections
配置参数类别
配置参数影响服务器行为的类别,例如资源消耗、查询调节和授权认证。请参阅《Greenplum数据库参考指南》中参数类别部分。