gpconfig

1. 描述

gpconfig工具允许用户在MatrixDB集群所有实例 (Master、Segment和镜像)的postgresql.conf文件中设置、复原或查看配置参数。设置参数时,如果需要,还可以为Master指定一个不同的值。例如,max_connections参数要求Master的设置不同于Segment的设置。如果要设置或复原全局参数或仅可对Master设置的参数,请使用--masteronly选项。

不是所有参数都可以使用gpconfig来配置。例如,用户不能使用它来设置port参数,这个参数每个Segment实例都不同。-l选项可以查看gpconfig支持的配置参数完整列表。

使用gpconfig设置配置参数后,参数值会出现在postgresql.conf文件的底部。使用gpconfig移除配置参数时,配置参数会在postgresql.conf文件中注释掉,从而恢复默认设置。如果使用gpconfig删除一个参数,并且稍后把它又添加回来(设置新值),则该参数会有两个实例,一个被注释掉,另一个被启用并添加到postgresql.conf文件的底部。

设置参数之后,用户可能需要重启集群,或者重新加载postgresql.conf文件以使更改生效。是否需要重新启动取决于被设置的参数。

要显示系统中当前参数的设置值,请使用-s选项。

gpconfig使用以下环境变量连接到MatrixDB集群的Master实例并获取系统配置信息:

  • PGHOST
  • PGPORT
  • PGUSER
  • PGPASSWORD
  • PGDATABASE

2. 参数选项

参数名 描述
-c param_name 或 --change param_name 通过在postgresql.conf文件的底部添加新的设置来改变配置参数的设置。
-v value 或 --value value 用于由-c选项指定的配置参数的值。默认情况下,此值将应用于所有 Segment及其镜像、Master和Standby。
非单个字符或数字的参数值必须用单引号包裹(')。例如,包括空格或特殊字符的字符串。如果要在字符串参数中嵌入单引号,需要用2个单引号或反斜杠进行转移(''或\')。
-m master_value 或 --mastervalue master_value 用于在设置参数时,单独设置Master和Standby节点的配置,使其与Segment节点的配置不同。
--masteronly 当被指定时,gpconfig将仅编辑Master的postgresql.conf文件。
-r param_name 或 --remove param_name 通过注释掉postgresql.conf文件中的配置项来删除配置参数。
-l 或 --list 列出所有可用gpconfig工具修改的配置参数。
-s param_name 或 --show param_name 显示MatrixDB集群中所有实例(Master和Segment)上使用的配置参数值。 显示的值为集群当前生效的值,如果修改后还未重启,则看到的仍然是旧值。
--file 显示MatrixDB集群中所有实例(Master和Segment)的postgresql.conf配置文件中的值。配置文件中的值可能会因为集群未重启还未生效。
不能与--file-compare选项一起使用。
--file-compare 对于配置参数,将当前MatrixDB集群(Master和Segment)中生效值与配置文件postgresql.conf中的值进行比较。
如果值不一样,显示来自所有主机的值;如果值一样,则显示摘要报告。
不能与--file选项一起使用。
--skipvalidation 在设置参数时跳过有效性检查。
使用此选项设置配置参数时要格外小心。
--verbose 在命令执行期间显示额外的日志信息。
--debug 设置日志输出级别为调试级别。
? 或 -h 或 --help 显示帮助信息。

3. 示例

查看shared_buffers配置信息:

gpconfig -s shared_buffers

设置gp_resource_managerqueue

gpconfig -c gp_resource_manager -v queue

设置segment节点max_connections值为180,master节点值为60

gpconfig -c max_connections -v 180 -m 60