gpconfig

gpconfig

在Greenplum数据库系统中所有的Segment上设置服务器配置参数。

概要

gpconfig -c param_name -v value [-m master_value | --masteronly]
               | -r param_name [--masteronly | -l
               [--skipvalidation] [--verbose] [--debug]
        
        gpconfig -s param_name [--file | --file-compare] [--verbose] [--debug]
        
        gpconfig --help

描述

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

gpconfig只能用来管理某些参数。例如,用户不能使用它来设置 port等参数,这些参数对每个Segment实例都不同。使用-l (list)选项查看gpconfig支持的配置参数的完整列表。

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

设置参数之后,用户必须重新启动其Greenplum数据库系统,或者重新加载postgresql.conf 文件以使得更改生效。是否需要重新启动或者加载取决于被设置的参数。

有关服务器配置参数的更多信息,请参阅Greenplum数据库参考指南

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

gpconfig使用以下环境变量连接到Greenplum数据库的 Master实例并获取系统配置信息:

  • PGHOST
  • PGPORT
  • PGUSER
  • PGPASSWORD
  • PGDATABASE

选项

-c | --change param_name
通过在postgresql.conf文件的底部添加新的设置来改变配置参数的设置。
-v | --value value
用于由-c选项指定的配置参数的值。默认情况下,此值将应用于所有 Segment及其镜像、Master和后备Master。
非单个字符或数字的参数值必须用单引号包裹(')。例如,包括空格或特殊字符的字符串 必须用单引号包裹。如果要在字符串参数重嵌入单引号,需要用2个单引号或反斜杠进行转移(\')。
工具会在将值写入postgresql.conf时带着单引号。
-m | --mastervalue master_value
用于由-c选项指定的配置参数的Master值。如果指定,则该值仅适用于Master 和后备Master。该选项只能与-v一起使用。
--masteronly
当被指定时,gpconfig将仅编辑Master的postgresql.conf文件。
-r | --remove param_name
通过注释掉postgresql.conf文件中的项删除配置参数。
-l | --list
列出所有被gpconfig工具支持的配置参数。
-s | --show param_name
显示在Greenplum数据库系统中所有实例(Master和Segment)上使用的配置参数的值。 如果实例中参数值存在差异,则工具将显示错误消息。使用-s选项运行 gpconfig将直接从数据库中读取参数值,而不是从postgresql.conf 文件中读取。如果用户使用gpconfig在所有Segment中设置配置参数, 然后运行gpconfig -s来验证更改,用户仍可能会看到以前的(旧)值。 用户必须重新加载配置文件(gpstop -u)或重新启动系统(gpstop -r) 以使更改生效。
--file
对于配置参数,显示在Greenplum数据库系统中的所有Segment(Master和Segment)上的postgresql.conf 文件中的值。如果实例中的参数值存在差异,则工具会显示一个消息。必须与-s选项一起指定。
例如,使用ALTER ROLE为用户设置配置参数statement_mem为64MB, 而postgresql.conf文件中的值为128MB。运行命令gpconfig -s statement_mem --file显示 128MB。用户运行的命令gpconfig -s statement_mem显示64MB。
--file-compare选项一起指定时无效。
--file-compare
对于配置参数,将当前Greenplum数据库值与主机(Master和Segment)上postgresql.conf 文件中的值进行比较。postgresql.conf files文件中的值表示重新启动Greenplum数据库时的值。
如果值不一样,该工具显示来自所有主机的值,如果所有主机的值一样,则该程序显示摘要报告。
--file选项一起指定时无效。
--skipvalidation
覆盖gpconfig的系统验证检查,并允许用户对任何服务器配置参数进行操作, 包括隐藏参数和gpconfig无法更改的受限参数。当与-l选项 (列表)一起使用时,它显示受限参数的列表。
Warning: 使用此选项设置配置参数时要格外小心。
--verbose
gpconfig命令执行期间显示额外的日志信息。
--debug
设置日志输出级别为调试级别。
-? | -h | --help
显示在线帮助。

示例

设置所有Segment上的max_connections为100,而Master上为10。

gpconfig -c max_connections -v 100 -m 10

该示例展示bash shell字符串处理的语法要求。

gpconfig -c search_path -v '"\$user",public'
        gpconfig -c dynamic_library_path -v '\$libdir'

配置参数增加到postgresql.conf文件的格式如下。

search_path='"$user",public'
        dynamic_library_path='$libdir'

注释掉default_statistics_target配置参数的所有实例,并恢复系统默认值:

gpconfig -r default_statistics_target

列出所有gpconfig支持的配置参数:

gpconfig -l

显示系统中一个特定配置参数的值:

gpconfig -s max_connections

另见

gpstop