mxstop

停止或重启 YMatrix 数据库系统。

1 描述

mxstop 工具用于停止、重启数据库集群,或重新加载配置。当你停止一个 YMatrix 集群时,你实际上是在停止由数据副本服务管理的多个 postgres 数据库服务器进程。mxstop 工具会使用数据副本服务处理各个实例的关闭。

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

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

2 参数选项

参数名 描述
-c 或 --db-cluster-id <数据库集群 ID> 目标数据库集群的 ID,如果省略则使用默认 ID。
-m 停止以 utility 模式启动的 master 实例。
-M fast 快速停止,任何正在进行的事务都会中断并回滚。
-M immediate 立即停止,任何正在进行的事务都会中止。该模式杀死所有 postgres 进程,而不允许数据库完成事务处理等其他清理工作。
-M smart 智能停止。如果存在活动连接,则此命令将失败并显示警告。这是默认的模式。
-a 或 --no-prompt 不要提示用户确认。
-y 或 --no-standby 不停止 standby 实例。不使用此参数时默认会停止 standby 实例。
-q 或 --quiet 以静默模式运行。命令输出不显示在屏幕上,但仍然写入日志文件。
-u 或 --reload 此选项将重新加载所有 postgres 实例的 pg_hba.conf 文件以及 postgresql.conf 文件中的运行时参数,但不会停止数据库集群。编辑 postgresql.confpg_hba.conf 之后,使用此选项可使新的配置生效。
请注意,该方法仅适用于运行时配置参数。
-r 或 --restart 重启集群。
-t 或 --timeout <超时时间> 指定等待 segment 实例停止的超时阈值(以秒为单位)。如果 segment 实例没有在指定的秒数内停止,mxstop 将显示一条消息,指示一个或多个 segment 仍处于停止过程中,并且直到 segment 实例停止后才能重新启动数据库集群。在停止集群期间有非常大的事务需要回滚的情况下,这个选项非常有用。这些大型事务可能需要一分钟才能回滚,并超过 600 秒的默认超时时间。
-h 或 --help 显示帮助信息。

3 示例

在 fast 模式下停止 YMatrix 默认集群(不提示确认):

mxstop -a -M fast

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

mxstop -ar

重新加载配置:

mxstop -u

注意!
YMatrix 5 部署了全新的数据库架构,启用 mxstop 工具来停止集群,与 gpstop 不兼容。之前版本可使用 gpstop 工具。

另见:mxstartmxstate