gpstop

1. 描述

gpstop工具用于停止、重启MatrixDB集群,或重新加载配置。当用户停止一个MatrixDB集群时,用户实际上是一次停止多个postgres数据库服务器进程 (Master和所有的Segment实例)。gpstop工具处理各个实例的关闭。每个实例被并行地停止。

默认情况下,如果有任何客户端连接到数据库,则不允许停止。需要使用-M fast选项来回滚所有正在运行的事务,并终止所有连接。如果有任何事务正在进行,则默认行为是等待它们提交后再停止。

使用-u选项可以重新加载配置,该工具会重新加载Master上pg_hba.conf文件的配置,及postgresql.conf文件中的运行时配置参数。

2. 参数选项

参数名 描述
-a 不要提示用户确认
-B parallel_processes 并行停止的Segment数。如果未指定,则该工具将启动最多64个并行进程,具体取决于需要停止多少个Segment实例。
-d master_data_directory Master主机的数据目录。默认使用$MASTER_DATA_DIRECTORY设置的值。
--host host_name 停止该主机上的所有Segment节点,主机名需要与gp_segment_configuration表一致。
该选项不能与-m-r-u-y参数一起使用。
只有在集群存在mirror节点才可用,另外主机上不能有Master或Standby实例,并且该主机不能同时包含某个Segment节点及其对应的mirror节点。
-l logfile_directory 写入日志文件的目录。默认为~/gpAdminLogs。
-m 停止以utility模式启动的Master实例。
-M fast 快速停止,任何正在进行的事务都会中断并回滚。
-M immediate 立即停止,任何正在进行的事务都会中止。该模式杀死所有postgres进程,而不允许数据库完成事务处理等其他清理工作。
-M smart 智能停止。如果存在活动连接,则此命令将失败并显示警告。这是默认的模式。
-q 以静默模式运行。命令输出不显示在屏幕上,但仍然写入日志文件。
-r 重启集群。
-t timeout_seconds 指定等待Segment实例停止的超时阈值(以秒为单位)。如果Segment实例没有在指定的秒数内停止, gpstop将显示一条消息,指示一个或多个Segment仍处于停止过程中,并且直到Segment实例停止后才能重新启动MatrixDB集群。这个选项在停止集群时有非常大的事务需要回滚的情况下非常有用。这些大型事务可能需要一分钟才能回滚,并超过600秒的默认超时时间。
-u 此选项将重新加载Master和Segment的pg_hba.conf文件以及postgresql.conf文件中的运行时参数,但不会停止数据库集群。编辑postgresql.conf或pg_hba.conf之后,使用此选项可使新的配置生效。
请注意,该方法仅适用于运行时配置参数。
-v 显示工具输出的详细状态,进度和错误消息。
-y 不停止Standby实例。默认是停止Standby实例。
-? 或 -h 或 --help 显示帮助信息。
--version 显示版本信息。

3. 示例

停止MatrixDB集群(不提示确认):

gpstop -a

重启MatrixDB集群(不提示确认):

gpstop -ar

重新加载配置:

gpstop -u