Greenplum数据库配置管理-参数配置管理和常用参数优化建议

GPDB 的系统配置

服务器配置文件包含着配置服务器行为的参数。Greenplum数据库的配置文件postgresql.conf 位于数据库实例的数据目录之下。

Master和每一个Segment实例都有自己的postgresql.conf文件。 一些参数是本地的:每个Segment实例检查它的postgresql.conf文件来得到这类 参数的值。在Master和每一个Segment实例上都要设置本地参数。

其他参数是用户要在Master实例上设置的master参数。其值会在查询运行时被向下传递到Segment实例 (或者在某些情况中会被忽略)。

Master Parameters - 仅仅在master instance上设置,查询时候这些值被传递至segment或被忽略。 Local Parameters - 每个segment从自己的配置文件中读取参数。必须在每个instance设置local参数(master+segments)

 

 

配置参数的级别

很多参数的修改是受限的,如某些参数需要GP的超级用户、某些仅仅设置在系统级或需要重启数据库才能生效。 许多配置参数是session参数。该参数能够被设置在system级、database级、role级、session级的四个不同级别。 大部分的session参数能够被在自己的session中修改。 ————————————————

删除配置 gpconfig -r <parameter name>

配置和查看本地参数

 

 

要在多个Segment中改变一个本地配置参数,在每一个目标Segment的postgresql.conf文件中更新该参数,包括主要的和镜像的Segment。使用gpconfig工具可以在所有的Greenplum postgresql.conf 文件中设置一个参数。例如:

 $ gpconfig -c max_connections -v 770
 [gpadmin@mdw ~]$ gpconfig -c max_connections -v 770
 20200427:23:01:48:030547 gpconfig:mdw:gpadmin-[CRITICAL]:-new GUC value failed validation: the value of max_connections must be greater on the segments than on the master
 new GUC value failed validation: the value of max_connections must be greater on the segments than on the master
 ​
 说明max_connections segment要比master大
 gpconfig -c max_connection -v 750 -m 150
  
 -c 指定要参数, -v 指定segment 参数的设置值,如果没有-m参数,它也指定master上参数的设置,-m 如果希望master参数不同于segment,那么通过该参数独立指定master的参数值。
 还有一个指令可以查询参数:gpconfig -s max_connections 
 gpconfig只能在系统启动的情况下调用,所以如果参数修改不合适,导致系统无法启动时,我们可以用下列方法处理
  
 1、先把master的参数修改成正常的值
 2、gpstart -m 仅启动master进入管理模式
 3、gpconfig -r <参数>   -- 把参数重置成默认值
 4、gpstop -a -r -M fast
 ​
 gpconfig -s gp_vmem_protect_limit
 gpconfig -c gp_vmem_protect_limit -v 16384

修改测试测试

 ​
 [gpadmin@mdw ~]$ gpconfig -s gp_vmem_protect_limit
 Values on all segments are consistent
 GUC          : gp_vmem_protect_limit
 Master  value: 8192
 Segment value: 8192
 ​
 修改到16384,显示修改成功
 [gpadmin@mdw ~]$ gpconfig -c gp_vmem_protect_limit -v 16384
 20200427:23:06:16:030687 gpconfig:mdw:gpadmin-[INFO]:-completed successfully with parameters '-c gp_vmem_protect_limit -v 16384'
 ​
 但是现在还没有生效
 [gpadmin@mdw ~]$ gpconfig -s gp_vmem_protect_limit         
 Values on all segments are consistent
 GUC          : gp_vmem_protect_limit
 Master  value: 8192
 Segment value: 8192
 ​
 重启GP,但是显示有连接,需要使用gpstop -fast来进行关闭,然后启动
 [gpadmin@mdw ~]$ gpstop -r
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: -r
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment...
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 5.10.2 build commit:b3c02f3acd880e2d676dacea36be015e4a3826d4'
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Master instance parameters
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Master Greenplum instance process active PID   = 24248
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Database                                       = template1
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Master port                                    = 5432
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Master directory                               = /greenplum/gpdata/master/gpseg-1
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Shutdown mode                                  = smart
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Timeout                                        = 120
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Shutdown Master standby host                   = On
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-Segment instances that will be shutdown:
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   Host   Datadir                             Port    Status
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/primary1/gpseg0   40000   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/mirror1/gpseg0    50000   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/primary2/gpseg1   40001   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/mirror2/gpseg1    50001   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/primary1/gpseg2   40000   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/mirror1/gpseg2    50000   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/primary2/gpseg3   40001   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/mirror2/gpseg3    50001   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/primary1/gpseg4   40000   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/mirror1/gpseg4    50000   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/primary2/gpseg5   40001   u
 20200427:23:06:33:030782 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/mirror2/gpseg5    50001   u
 ​
 Continue with Greenplum instance shutdown Yy|Nn (default=N):
 > y
 20200427:23:06:35:030782 gpstop:mdw:gpadmin-[INFO]:-There are 1 connections to the database
 20200427:23:06:35:030782 gpstop:mdw:gpadmin-[WARNING]:-There are other connections to this instance, shutdown mode smart aborted
 20200427:23:06:35:030782 gpstop:mdw:gpadmin-[WARNING]:-Either remove connections, or use 'gpstop -M fast' or 'gpstop -M immediate'
 20200427:23:06:35:030782 gpstop:mdw:gpadmin-[WARNING]:-See gpstop -? for all options
 20200427:23:06:35:030782 gpstop:mdw:gpadmin-[ERROR]:-gpstop error: Active connections. Aborting shutdown...
 [gpadmin@mdw ~]$ gpstop -M fast
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: -M fast
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment...
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 5.10.2 build commit:b3c02f3acd880e2d676dacea36be015e4a3826d4'
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Master instance parameters
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Master Greenplum instance process active PID   = 24248
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Database                                       = template1
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Master port                                    = 5432
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Master directory                               = /greenplum/gpdata/master/gpseg-1
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Shutdown mode                                  = fast
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Timeout                                        = 120
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Shutdown Master standby host                   = On
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-Segment instances that will be shutdown:
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:---------------------------------------------
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   Host   Datadir                             Port    Status
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/primary1/gpseg0   40000   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/mirror1/gpseg0    50000   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/primary2/gpseg1   40001   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/mirror2/gpseg1    50001   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/primary1/gpseg2   40000   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/mirror1/gpseg2    50000   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/primary2/gpseg3   40001   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/mirror2/gpseg3    50001   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/primary1/gpseg4   40000   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/mirror1/gpseg4    50000   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/primary2/gpseg5   40001   u
 20200427:23:07:06:030819 gpstop:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/mirror2/gpseg5    50001   u
 ​
 Continue with Greenplum instance shutdown Yy|Nn (default=N):
 > y
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-There are 1 connections to the database
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='fast'
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Master host=mdw
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Detected 1 connections to database
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Switching to WAIT mode
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Will wait for shutdown to complete, this may take some time if
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-there are a large number of active complex transactions, please wait...
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Commencing Master instance shutdown with mode=fast
 20200427:23:07:08:030819 gpstop:mdw:gpadmin-[INFO]:-Master segment instance directory=/greenplum/gpdata/master/gpseg-1
 20200427:23:07:09:030819 gpstop:mdw:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
 20200427:23:07:09:030819 gpstop:mdw:gpadmin-[INFO]:-Terminating processes for segment /greenplum/gpdata/master/gpseg-1
 20200427:23:07:09:030819 gpstop:mdw:gpadmin-[INFO]:-Stopping master standby host smdw mode=fast
 20200427:23:07:11:030819 gpstop:mdw:gpadmin-[INFO]:-Successfully shutdown standby process on smdw
 20200427:23:07:11:030819 gpstop:mdw:gpadmin-[INFO]:-Targeting dbid [2, 8, 3, 9, 4, 10, 5, 11, 6, 12, 7, 13] for shutdown
 20200427:23:07:11:030819 gpstop:mdw:gpadmin-[INFO]:-Commencing parallel primary segment instance shutdown, please wait...
 20200427:23:07:11:030819 gpstop:mdw:gpadmin-[INFO]:-0.00% of jobs completed
 20200427:23:07:12:030819 gpstop:mdw:gpadmin-[INFO]:-100.00% of jobs completed
 20200427:23:07:12:030819 gpstop:mdw:gpadmin-[INFO]:-Commencing parallel mirror segment instance shutdown, please wait...
 20200427:23:07:12:030819 gpstop:mdw:gpadmin-[INFO]:-0.00% of jobs completed
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-100.00% of jobs completed
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-----------------------------------------------------
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-   Segments stopped successfully      = 12
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-   Segments with errors during stop   = 0
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-----------------------------------------------------
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-Successfully shutdown 12 of 12 segment instances 
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-Database successfully shutdown with no errors reported
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-Cleaning up leftover gpmmon process
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-No leftover gpmmon process found
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-Cleaning up leftover gpsmon processes
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-No leftover gpsmon processes on some hosts. not attempting forceful termination on these hosts
 20200427:23:07:14:030819 gpstop:mdw:gpadmin-[INFO]:-Cleaning up leftover shared memory
 [gpadmin@mdw ~]$ gpstart 
 20200427:23:07:27:030970 gpstart:mdw:gpadmin-[INFO]:-Starting gpstart with args: 
 20200427:23:07:27:030970 gpstart:mdw:gpadmin-[INFO]:-Gathering information and validating the environment...
 20200427:23:07:27:030970 gpstart:mdw:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 5.10.2 build commit:b3c02f3acd880e2d676dacea36be015e4a3826d4'
 20200427:23:07:27:030970 gpstart:mdw:gpadmin-[INFO]:-Greenplum Catalog Version: '301705051'
 20200427:23:07:27:030970 gpstart:mdw:gpadmin-[INFO]:-Starting Master instance in admin mode
 20200427:23:07:28:030970 gpstart:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
 20200427:23:07:28:030970 gpstart:mdw:gpadmin-[INFO]:-Obtaining Segment details from master...
 20200427:23:07:28:030970 gpstart:mdw:gpadmin-[INFO]:-Setting new master era
 20200427:23:07:28:030970 gpstart:mdw:gpadmin-[INFO]:-Master Started...
 20200427:23:07:28:030970 gpstart:mdw:gpadmin-[INFO]:-Shutting down master
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:---------------------------
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Master instance parameters
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:---------------------------
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Database                 = template1
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Master Port              = 5432
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Master directory         = /greenplum/gpdata/master/gpseg-1
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Timeout                  = 600 seconds
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Master standby start     = On
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:---------------------------------------
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-Segment instances that will be started
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:---------------------------------------
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   Host   Datadir                             Port    Role
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/primary1/gpseg0   40000   Primary
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/mirror1/gpseg0    50000   Mirror
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/primary2/gpseg1   40001   Primary
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/mirror2/gpseg1    50001   Mirror
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/primary1/gpseg2   40000   Primary
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/mirror1/gpseg2    50000   Mirror
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw2   /greenplum/gpdata/primary2/gpseg3   40001   Primary
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/mirror2/gpseg3    50001   Mirror
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/primary1/gpseg4   40000   Primary
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/mirror1/gpseg4    50000   Mirror
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw3   /greenplum/gpdata/primary2/gpseg5   40001   Primary
 20200427:23:07:29:030970 gpstart:mdw:gpadmin-[INFO]:-   sdw1   /greenplum/gpdata/mirror2/gpseg5    50001   Mirror
 ​
 Continue with Greenplum instance startup Yy|Nn (default=N):
 > y
 20200427:23:07:31:030970 gpstart:mdw:gpadmin-[INFO]:-Commencing parallel primary and mirror segment instance startup, please wait...
 .. 
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-Process results...
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-----------------------------------------------------
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-   Successful segment starts                                            = 12
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-   Failed segment starts                                                = 0
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-   Skipped segment starts (segments are marked down in configuration)   = 0
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-----------------------------------------------------
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-Successfully started 12 of 12 segment instances 
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-----------------------------------------------------
 20200427:23:07:33:030970 gpstart:mdw:gpadmin-[INFO]:-Starting Master instance mdw directory /greenplum/gpdata/master/gpseg-1 
 20200427:23:07:34:030970 gpstart:mdw:gpadmin-[INFO]:-Command pg_ctl reports Master mdw instance active
 20200427:23:07:34:030970 gpstart:mdw:gpadmin-[INFO]:-Starting standby master
 20200427:23:07:34:030970 gpstart:mdw:gpadmin-[INFO]:-Checking if standby master is running on host: smdw  in directory: /greenplum/gpdata/master/gpseg-1
 20200427:23:07:36:030970 gpstart:mdw:gpadmin-[INFO]:-Database successfully started
 ​
 重启之后再次查看
 [gpadmin@mdw ~]$ gpconfig -s gp_vmem_protect_limit         
 Values on all segments are consistent
 GUC          : gp_vmem_protect_limit
 Master  value: 16384
 Segment value: 16384
 [gpadmin@mdw ~]$ 

 

重启Greenplum数据库让配置改变生效:

 $ gpstop -r

SQL命令SHOW允许用户查看当前的服务器配置参数设置。例如,要查看所有参数的设置:

 $ psql -c 'SHOW ALL;'
 [gpadmin@mdw ~]$ psql -c 'SHOW max_connections;'
  max_connections 
 -----------------
  250
 (1 row)
 ​
 [gpadmin@mdw ~]$ 

SHOW只列出Master实例的设置。要查看整个系统(Master和所有的Segment) 中一个特定参数的值,使用gpconfig工具。例如:

 $ gpconfig --show max_connections
 [gpadmin@mdw ~]$ gpconfig --show max_connections
 Values on all segments are consistent
 GUC          : max_connections
 Master  value: 250
 Segment value: 750
 [gpadmin@mdw ~]$ 

 

配置和查看master参数

Master参数只能在GP的master节点中设置。 要设置Master配置参数,请在Greenplum数据库的Master实例上设置它。如果它也是一个session参数, 用户可以为一个特定数据库、角色或者会话设置该桉树。如果一个参数在多个级别上都被设置,最细粒度级别上的 设置会优先。例如,会话覆盖角色,角色覆盖数据库,而数据库覆盖系统。一句话就是以听最小的话。

参数的分类讲解

PostgreSQL 系统所有的系统参数配置项对大小都不敏感,主要有Bool、Int、浮点数、字符串、枚举值

参数的修改,有些需要重启数据库、有些普通用户直接修改、有些需要超级用户才能修改生效,分下面几类:

1、internal:只读参数,已经写死了,不能在修改 2、postmaster:需要重启数据库才能生效 3、sighup:不需要重启数据库,给postmaster进程发送sighup信号即可生效 4、backend:不需要重启数据库,给postmaster进程发送sighup信号即可生效,但是对于已经连接着的客户端,需要断开重连才能生效 5、superuser:不需要重启数据库,超级用户通过set 命令即可设置 6、user:不需要重启数据库,通过set命令既可以设置

通过查询pg_setting表,可以查看对于的参数的描述和类型

 archdata=# select name,context,vartype,min_val,max_val from pg_settings where name='max_connections';
       name       |  context   | vartype | min_val | max_val 
 -----------------+------------+---------+---------+---------
  max_connections | postmaster | integer | 10      | 65535
 (1 row)
 ​
 archdata=#
 ​
 说明max_connections是需要重启服务器生效的。

 

[system级参数]

步骤如下: 1.编辑 $MASTER_DATA_DIRECTORY/postgresql.conf 文件 2.找到你要修改的参数,去掉注释(删掉前面的#),并且设置你想要的值 3.保存并关闭文件 4.对于session参数不需要重启服务,执行如下: $ gpstop -u 5.对于需要重启服务的参数修改,执行如下: $ gpstop -r

[database级参数]

当session参数设置在database级别,每个session连接到数据库时都要使用这个参数。 设置的database参数会覆盖system级的参数。 设置database级参数,使用ALTER DATABASE命令 如: =# ALTER DATABASE mydatabase SET search_path TO myschema;

 

[role级参数]

当session参数设置在role级别,每个session通过role初始化时将使用此参数。 设置的role参数会覆盖database级的参数。 如: =# ALTER ROLE bob SET search_path TO bobschema;

 

[session级参数]

任何session参数都能在活跃的session中设置,使用 SET 命令。 设置的session参数会覆盖role级的参数。 如: =# SET work_mem TO '200MB'; =# RESET work_mem;

 

 

参数分类

 

配置参数会影响服务器行为的类别,例如资源消耗,查询调整和身份验证。 以下主题描述了Greenplum配置参数类别。

 

常用的优化参数

 

work_mem

work_mem(,global,物理内存的2%-4%),segment用作sort,hash操作的内存大小 当PostgreSQL对大表进行排序时,数据库会按照此参数指定大小进行分片排序,将中间结果存放在临时文件中,这些中间结果的临时文件最终会再次合并排序,所以增加此参数可以减少临时文件个数进而提升排序效率。当然如果设置过大,会导致swap的发生,所以设置此参数时仍需谨慎。

 [gpadmin@mdw ~]$ gpconfig -s  maintenance_work_mem
 Values on all segments are consistent
 GUC          : maintenance_work_mem
 Master  value: 64MB
 Segment value: 64MB
 [gpadmin@mdw ~]$ 

 

max_statement_mem

设置每个查询最大使用的内存量,该参数是防止statement_mem参数设置的内存过大导致的内存溢出.

 

 [gpadmin@mdw ~]$ gpconfig -s max_statement_mem
 Values on all segments are consistent
 GUC          : max_statement_mem
 Master  value: 2000MB
 Segment value: 2000MB
 [gpadmin@mdw ~]$ 

gp_vmem_protect_limit

控制了每个segment数据库为所有运行的查询分配的内存总量。如果查询需要的内存超过此值,则会失败。

 [gpadmin@mdw ~]$ gpconfig -s gp_vmem_protect_limit
 Values on all segments are consistent
 GUC          : gp_vmem_protect_limit
 Master  value: 16384
 Segment value: 16384
 [gpadmin@mdw ~]$ 

gp_workfile_limit_files_per_query

SQL查询分配的内存不足,Greenplum数据库会创建溢出文件(也叫工作文件)。在默认情况下,一个SQL查询最多可以创建 100000 个溢出文件,这足以满足大多数查询。 该参数决定了一个查询最多可以创建多少个溢出文件。0 意味着没有限制。限制溢出文件数据可以防止失控查询破坏整个系统。

 gpconfig -s gp_workfile_limit_files_per_query
 Values on all segments are consistent
 GUC          : gp_workfile_limit_files_per_query
 Master  value: 100000
 Segment value: 100000
 gp_statement_mem

effective_cache_size

(master节点,可以设为物理内存的85%) 这个参数告诉PostgreSQL的优化器有多少内存可以被用来缓存数据,以及帮助决定是否应该使用索引。这个数值越大,优化器使用索引的可能性也越大。因此这个数值应该设置成shared_buffers加上可用操作系统缓存两者的总量。通常这个数值会超过系统内存总量的50%以上。

查看现有配置值:

 gpconfig -s effective_cache_size
 Values on all segments are consistent
 GUC          : effective_cache_size
 Master  value: 512MB
 Segment value: 512MB

max_connections

最大连接数,Segment建议设置成Master的5-10倍。

max_connections = 200 #(master、standby) max_connections = 1200 #(segment)

 

 查看现有配置值:
 gpconfig -s max_connections
 ​
 GUC          : max_connections
 Master  value: 250
 Segment value: 750

max_prepared_transactions

这个参数只有在启动数据库时,才能被设置。它决定能够同时处于prepared状态的事务的最大数目(参考PREPARE TRANSACTION命令)。如果它的值被设为0。则将数据库将关闭prepared事务的特性。它的值通常应该和max_connections的值一样大。每个事务消耗600字节(b)共享内存。

 gpconfig -s max_prepared_transactions
 Values on all segments are consistent
 GUC          : max_prepared_transactions
 Master  value: 250
 Segment value: 250

max_files_per_process

设置每个服务器进程允许同时打开的最大文件数目。缺省是1000。 如果内核强制一个合理的每进程限制,那么你不用操心这个设置。 但是在一些平台上(特别是大多数BSD系统), 内核允许独立进程打开比个系统真正可以支持的数目大得多得文件数。 如果你发现有"Too many open files"这样的失败现像,那么就尝试缩小这个设置。 这个值只能在服务器启动的时候设置。

 查看现有配置值:
 gpconfig -s max_files_per_process
 Values on all segments are consistent
 GUC          : max_files_per_process
 Master  value: 1000
 Segment value: 1000
 修改配置
 gpconfig -c max_files_per_process -v 1000

shared_buffers

只能配置segment节点,用作磁盘读写的内存缓冲区,开始可以设置一个较小的值,比如总内存的15%,然后逐渐增加,过程中监控性能提升和swap的情况。

 gpconfig -s shared_buffers
 Values on all segments are consistent
 GUC          : shared_buffers
 Master  value: 64MB
 Segment value: 125MB
 ​
 修改配置
 gpconfig -c shared_buffers -v 1024MB
 ​
 gpconfig -r shared_buffers -v 1024MB

temp_buffers

 

: 即临时缓冲区,拥有数据库访问临时数据,GP中默认值为1M,在访问比较到大的临时表时,对性能提升有很大帮助。

 查看现有配置值:
 gpconfig -s temp_buffers
 Values on all segments are consistent
 GUC          : temp_buffers
 Master  value: 1024
 Segment value: 1024
 ​
 修改配置
 gpconfig -c temp_buffers -v 4096

gp_fts_probe_threadcount:

设置ftsprobe线程数,此参数建议大于等于每台服务器segments的数目。

 查看现有配置值:
 gpconfig -s gp_fts_probe_threadcount
 Values on all segments are consistent
 GUC          : gp_fts_probe_threadcount
 Master  value: 16
 Segment value: 16
 ​
 ​
 ​
 重启数据库,使参数生效
 gpstop -u 
 重新加载配置文件 postgresql.conf 和 pg_hba.conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值