1. gpstate
命令 | 参数 | => 作用 |
gpstate | -b | => 显示简要状态 |
gpstate | -c | => 显示主镜像映射 |
gpstart | -d | => 指定数据目录(默认值:$ MASTER_DATA_DIRECTORY) |
gpstate | -e | => 显示具有镜像状态问题的片段 |
gpstate | -f | => 显示备用主机详细信息 |
gpstate | -i | => 显示GRIPLUM数据库版本 |
gpstate | -m | => 显示镜像实例同步状态 |
gpstate | -p | => 显示使用端口 |
gpstate | -Q | => 快速检查主机状态 |
gpstate | -s | => 显示集群详细信息 |
gpstate | -v | => 显示详细信息 |
2. gpconfig
命令 | 参数 | => 作用 |
gpconfig | -c | => --change param_name 通过在postgresql.conf 文件的底部添加新的设置来改变配置参数的设置。 |
gpconfig | -v | => --value value 用于由-c选项指定的配置参数的值。默认情况下,此值将应用于所有Segment及其镜像、Master和后备Master。 |
gpconfig | -m | => --mastervalue master_value 用于由-c 选项指定的配置参数的Master值。如果指定,则该值仅适用于Master和后备Master。该选项只能与-v一起使用。 |
gpconfig | -masteronly | =>当被指定时,gpconfig 将仅编辑Master的postgresql.conf文件。 |
gpconfig | -r | => --remove param_name 通过注释掉postgresql.conf文件中的项删除配置参数。 |
gpconfig | -l | => --list 列出所有被gpconfig工具支持的配置参数。 |
gpconfig | -s | => --show param_name 显示在Greenplum数据库系统中所有实例(Master和Segment)上使用的配置参数的值。如果实例中参数值存在差异,则工具将显示错误消息。使用-s=>选项运行gpconfig将直接从数据库中读取参数值,而不是从postgresql.conf文件中读取。如果用户使用gpconfig 在所有Segment中设置配置参数,然后运行gpconfig -s来验证更改,用户仍可能会看到以前的(旧)值。用户必须重新加载配置文件(gpstop -u)或重新启动系统(gpstop -r)以使更改生效。 |
gpconfig | --file | => 对于配置参数,显示在Greenplum数据库系统中的所有Segment(Master和Segment)上的postgresql.conf文件中的值。如果实例中的参数值存在差异,则工具会显示一个消息。必须与-s选项一起指定。 |
gpconfig | --file-compare | 对于配置参数,将当前Greenplum数据库值与主机(Master和Segment)上postgresql.conf文件中的值进行比较。 |
gpconfig | --skipvalidation | 覆盖gpconfig的系统验证检查,并允许用户对任何服务器配置参数进行操作,包括隐藏参数和gpconfig无法更改的受限参数。当与-l选项(列表)一起使用时,它显示受限参数的列表。 警告: 使用此选项设置配置参数时要格外小心。 |
gpconfig | --verbose | 在gpconfig命令执行期间显示额外的日志信息。 |
gpconfig | --debug | 设置日志输出级别为调试级别。 |
gpconfig | -? | -h | --help | 显示在线帮助。 |
3. gpstart
命令 | 参数 | => 作用 |
gpstart | -a | => 快速启动| |
gpstart | -d | => 指定数据目录(默认值:$ MASTER_DATA_DIRECTORY) |
gpstart | -q | => 在安静模式下运行。命令输出不显示在屏幕,但仍然写入日志文件。 |
gpstart | -m | => 以维护模式连接到Master进行目录维护。例如:$ PGOPTIONS=’-c gp_session_role=utility’ psql postgres |
gpstart | -R | => 管理员连接 |
gpstart | -v | => 显示详细启动信息 |
4. gpstop
命令 | 参数 | => 作用 |
gpstop | -a | => 快速停止 |
gpstop | -d | => 指定数据目录(默认值:$ MASTER_DATA_DIRECTORY) |
gpstop | -m | => 维护模式 |
gpstop | -q | => 在安静模式下运行。命令输出不显示在屏幕,但仍然写入日志文件。 |
gpstop | -r | => 停止所有实例,然后重启系统 |
gpstop | -u | => 重新加载配置文件 postgresql.conf 和 pg_hba.conf |
gpstop | -v | => 显示详细启动信息 |
gpstop | -M fast | => 快速关闭。正在进行的任何事务都被中断。然后滚回去。 |
gpstop | -M immediate | => 立即关闭。正在进行的任何事务都被中止。不推荐这种关闭模式,并且在某些情况下可能导致数据库损坏需要手动恢复。 |
gpstop | -M smart | => 智能关闭。如果存在活动连接,则此命令在警告时失败。这是默认的关机模式。 |
gpstop | --host hostname | => 停用segments数据节点,不能与-m、-r、-u、-y同时使用 |
5. 集群恢复
命令 | 参数 | => 作用 |
gprecoverseg | -a | => 快速恢复 |
gprecoverseg | -i | => 指定恢复文件 |
gprecoverseg | -d | => 指定数据目录 |
gprecoverseg | -l | => 指定日志文件 |
gprecoverseg | -r | => 平衡数据 |
gprecoverseg | -s | => 指定配置空间文件 |
gprecoverseg | -o | => 指定恢复配置文件 |
gprecoverseg | -p | => 指定额外的备用机 |
gprecoverseg | -S | => 指定输出配置空间文件 |
6. 激活备库流程
命令 | 参数 | => 作用 |
gpactivatestandby | -d 路径 | | 使用数据目录绝对路径,默认:$ MASTER_DATA_DIRECTORY |
gpactivatestandby | -f | | 强制激活备份主机 |
gpactivatestandby | -v | | 显示此版本信息 |
7. 初始化备Master
命令 | 参数 | => 作用 |
gpinitstandby | -s 备库名称 | => 指定新备库 |
gpinitstandby | -D | => debug 模式 |
gpinitstandby | -r | => 移除备用机 |
Greenplum参数调优
1 查看每个segment的内存配置参数
1.1 查看分配内存信息
gpconfig -s gp_vmem_protect_limit
在以上可以看出segment使用了系统默认的内存配置8192MB,改参数按照机器的内存大小可以适当的调大,详见计算如下:
1、计算公式可参考如下:(mem+swap)* 0.9 /单个节点 segment 数量
2、例如master节点上有252G的内存,segment个数为2个,分配最高的内存为:
252*0.9 / 2 ≈ 110GB(112640 MB)
78643
3、例如数据节点上有252G的内存,segment个数为12个,分配最高的内存为:
252*0.9/12 ≈ 18GB(18432MB)
39321
1.2 修改内存参数
登录到master节点上执行以下命令即可
gpconfig -c gp_vmem_protect_limit -m 112640 -v 18432
-c : 改变参数的名称
-m : 修改主备master的内存的大小一般的和-v一块使用
-v : 此值用于所有的segments,mirrors和master的修改
2 查看shared_buffers(共享缓冲区)的内存
2.1 查看系统配置的参数
$ gpconfig -s shared_buffers
2.2 参数详解
只能配置segment节点,用作磁盘读写的内存缓冲区,开始可以设置一个较小的值,比如总内存的15%,然后逐渐增加,过程中监控性能提升和swap的情况。以上的缓冲区的参数为125MB,此值不易设置过大,过大或导致以下错误
[WARNING]:-FATAL: DTM initialization: failure during startup recovery, retry failed, check segment status (cdbtm.c:1603),详细的配置请查看
2.3 修改参数
修改配置
gpconfig -c shared_buffers -v 1024MB
gpconfig -r shared_buffers -v 1024MB
3 查看max_connections(最大连接数)
3.1 查看最大连接数参数
$ gpconfig -s max_connections
3.2 参数详解
此参数为客户端链接数据库的连接数,按照个人数据库需求配置,参数详解请查看:
4 查看block_size(磁盘块)的大小
4.1 查看磁盘块的大小
$ gpconfig -s block_size
4.2 参数详解
此参数表示表中的数据以默认的参数32768 KB作为一个文件,参数的范围8192KB - 2MB ,范围在8192 - 2097152 ,值必须是8192的倍数,使用时在blocksize = 2097152即可
5 查看work_mem的值
5.1 查看集群中work_mem的配置大小
$ gpconfig -s work_mem
5.2 参数详解
work_mem 在segment用作sort,hash操作的内存大小当PostgreSQL对大表进行排序时,数据库会按照此参数指定大小进行分片排序,将中间结果存放在临时文件中,这些中间结果的临时文件最终会再次合并排序,所以增加此参数可以减少临时文件个数进而提升排序效率。当然如果设置过大,会导致swap的发生,所以设置此参数时仍需谨慎。刚开始可设置总内存的5%
5.3 修改参数
修改系统配置文件,重启集群使之生效
gpconfig -c work_mem -v 128MB
或在客户端session设置此参数
SET work_mem TO '64MB'
销毁session参数为:
reset work_mem;
6 查看statement_mem的值
6.1 查看集群中statement_mem的值
$ gpconfig -s statement_mem
6.2 参数详解
设置每个查询在segment主机中可用的内存,该参数设置的值不能超过max_statement_mem设置的值,如果配置了资源队列,则不能超过资源队列设置的值。
6.3 修改参数
修改配置后重启生效
gpconfig -c statement_mem -v 256MB
7 查看gp_workfile_limit_files_per_query的值
7.1 查看此值的大小
$ gpconfig -s gp_workfile_limit_files_per_query
7.1 参数详解
SQL查询分配的内存不足,Greenplum数据库会创建溢出文件(也叫工作文件)。在默认情况下,一个SQL查询最多可以创建 100000 个溢出文件,这足以满足大多数查询。
该参数决定了一个查询最多可以创建多少个溢出文件。0 意味着没有限制。限制溢出文件数据可以防止失控查询破坏整个系统。
如果数据节点的内存是512G的内存,表的压缩快的大小(block_size)是2M的话,计算为: 512G + 2 * 1000000 / 1024 ≈ 707 G 的空间,一般的表都是可以的,一般的此值不需要修改
8 查看gp_resqueue_priority_cpucores_per_segment的值
8.1 查看此值的大小
$ gpconfig -s gp_resqueue_priority_cpucores_per_segment
8.2 参数详解
每个segment分配的分配的cpu的个数,例如:在一个20核的机器上有4个segment,则每个segment有5个核,而对于master节点则是20个核,master节点上不运行segment的信息,因此master反映了cpu的使用情况
8.3 修改参数
按照不同集群的核数以及segment修改此参数即可,下面的实例是修改成8核
gpconfig -c gp_resqueue_priority_cpucores_per_segment -v 8