gpconfig
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
-c | —change param_name
通过在postgresql.conf 文件的底部添加新的设置来改变配置参数的设置。
-v | —value value
用于由-c选项指定的配置参数的值。默认情况下,此值将应用于所有Segment及其镜像、Master和后备Master。
-m | —mastervalue master_value
用于由-c选项指定的配置参数的Master值。如果指定,则该值仅适用于Master和后备Master。该选项只能与-v一起使用。
--masteronly
-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文件中的值表示重新启动Greenplum数据库时的值。
如果值不一样,该工具显示来自所有主机的值,如果所有主机的值一样,则该程序显示摘要报告。
与--file选项一起指定时无效。
覆盖gpconfig的系统验证检查,并允许用户对任何服务器配置参数进行操作,包括隐藏参数和gpconfig无法更改的受限参数。当与-l选项(列表)一起使用时,它显示受限参数的列表。
警告: 使用此选项设置配置参数时要格外小心。
--verbose
在gpconfig命令执行期间显示额外的日志信息。
--debug
设置日志输出级别为调试级别。
-? | -h | —help
显示在线帮助。
仅设置Master主机文件中的gp_snmp_community参数为testenv:
设置所有Segment上的 max_connections 为100,而Master上为10。
设置服务器配置参数gp_email_to和gp_email_from。这些参数需要用单引号把值括起来。在为参数指定值时,请将值用双引号(”)封闭。
在postgresql.conf文件中, 参数必须使用单引号括起来才能正确设置:
注释掉default_statistics_target配置参数的所有实例,并恢复系统默认值:
列出所有gpconfig支持的配置参数: