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