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