gs_ctl

功能介绍

gs_ctl是openGauss提供的数据库服务控制工具,可以用来启停数据库服务和查询数据库状态。主要供数据库管理模块调用。

  • 启动、停止、重启openGauss节点。
  • 在不停止数据库的情况下,重新加载配置文件(postgresql.conf,pg_hba.conf)。
  • 主备切换、主备状态查询、DN重建和重建状态查询。

参数说明

gs_ctl参数可分为如下几类:

  • option参数,详细请参见表1

  • 公共参数,详细请参见表2

  • start和restart模式的参数,详细请参见表3

  • stop和restart模式的参数,详细请参见表4

  • switchover模式的参数,详细请参见表5

  • build参数,详细请参见表6

  • copy参数,详细参见表7

    表 1 option参数

    参数

    参数说明

    init[db]

    初始化DN。

    start

    启动DN。

    restart

    重启DN。

    build

    在需要重建的实例节点重建实例。

    stop

    停止DN。

    reload

    重载配置文件(postgresql.conf, pg_hba.conf)。

    status

    显示DN运行状态。

    failover

    在主DN异常时,将备DN切换为主DN。

    switchover

    在主备DN正常时,出于维护的需要,将备DN切换为主DN,可保证切换过程中数据不丢失。

    query

    查询主备DN之间的状态信息。

    notify

    启动后再指定主备DN。

    kill

    给指定的进程发送信号量。

    querybuild

    查看DN的重建进度。

    finishredo

    强制停止redo。

    注意:

    该参数属于高风险操作,请谨慎执行。

    copy

    基于共享存储的双中心容灾模式,进行xlog日志拷贝。

    stack

    获取gaussdb的调用栈。

表 2 公共参数

参数

参数说明

取值范围

-D, —pgdata=DATADIR

指定数据目录的位置。若指定目录中包含配置文件postgresql.conf,且配置文件内data_directory值与-D指定目录不同,将优先按data_directory目录执行。

DATADIR的取值必须为有效的数据目录。

-s, —silent

对reload,restart,stop命令仅打印部分提示信息,对其他命令不生效。

打印信息如“gstl stopped ,xxx”等信息。不打印如“waiting for server to shut down,server stopped”等提示信息。

-

-t, —timeout=SECS

这个参数同时控制如下两个功能:

等待数据库启动或者关闭完成的最大秒数。

取值范围:整型(秒)。

默认值:

等待数据库启动或者停止完成:60秒。

-V , —version

打印gs_ctl的版本信息然后退出。

-

-w

用户执行启动或者关闭数据库的操作后,会等待事务操作的完成后再执行。

默认值:省略此参数时,默认会等待事务操作完成。

-W

用户执行启动或者关闭数据库的操作后,会强制完成启动或者关闭,不等待事务操作完成。

-

-M

-M后面需要跟SERVERMODE参数,表示在启动时指定数据库的启动模式。

SERVERMODE的取值范围:

  • primary:本端以主机模式启动。
  • standby:本端以备机模式启动。
  • pending:本端处于等待状态,等待提升为主机或者备机。

-T

-T 后面跟term,升主命令时会用此term作为主机term,build时会连接大于等于此term的主机进行build。

term的取值范围,无符号整型。

-q

build完成后不自动启动,需要调用者启动。

-

-d

打印更多的debug信息。

-

-L

查询lsn:XX/XX有效性并显示max_lsn。

-

-P PASSWORD

与-U参数配合使用,指定连接本地数据库的用户密码。

说明:

当省略-U参数,且认证方法为trust时,-P参数无效。

-

-U USERNAME

指定连接数据库的用户。此参数只能与notify、query和querybuild参数配合使用。

对于域用户,使用DOMAIN\username格式。

取值范围:openGauss中存在的用户。

默认值:省略此参数则使用与当前操作系统用户同名的用户。

-?, -h, —help

显示关于gs_ctl命令行参数的帮助信息。

-

表 3 start或restart共有参数

参数

参数说明

取值范围

-c, —core-file

允许gaussdb进程产生内核文件。

-

-l, —log=FILENAME

把服务器日志输出附加在FILENAME文件上。

FILENAME的取值为启动数据库服务的用户有权限的文件。

例如,data目录下的某文件。

-o OPTIONS

声明要直接传递给由openGauss执行的gaussdb的命令行选项。

参数通常都用单或者双引号包围以保证它们作为一个整体传递。

gaussdb支持的参数。

-p PATH-TO-POSTGRES

声明gaussdb可执行文件的位置。

缺省位于gs_ctl自身所在目录,一般不需要此选项。

表 4 stop和restart共有参数

参数

参数说明

取值范围

-m, —mode=MODE

声明关闭模式。

mode的取值:

  • fast:不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开,然后服务器将被关闭。
  • immediate:强行关闭,在下次重新启动的时候将导致故障恢复。

默认值:fast

表 5 switchover参数

参数

参数说明

取值范围

-f

不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开,然后服务器将被切换,且不做checkpoint。

无参数

-m SWITCHOVER-MODE

声明双机主备实例正常时切换的切换模式。

mode的取值:

  • smart:等待所有客户端中断连接后才切换。如果服务器处于紧迫等待,一旦所有的客户断开连接,恢复和复制流将会中断。

    备注:由于在集群环境中,集群管理连接、客户业务连接会导致smart模式几乎很难执行成功,因此在本版本中,该模式已经被废弃。

  • fast:不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开,然后服务器将被切换。

默认值:fast

表 6 build参数

参数

参数说明

取值范围

-b, —mode=MODE

指定重建DN备机的模式。

mode的取值:

  • full:通过全量镜像的方式重新同步DN主机的数据目录。
  • incremental:通过解析Xlog日志获取主备DN差异的数据进行增量修复备DN。
    警告:
    • 增量重建适用于主备双主等因日志造成的不一致场景。
    • 备机数据文件损坏、数据目录丢失等故障通过增量重建的方式无法修复,此时可通过全量重建的方式重新修复备机。
  • auto(不指定):先增量,根据失败后是否可以再增量选择继续增量或者全量,三次增量失败后进行全量。
  • standby_full:使用备机重建备机或容灾场景下的首备重建灾备数据库实例内故障的备机
  • copy_secure_files:在流式容灾场景下,获取指定节点数据目录下gs_secure_files目录对应内容。
  • copy_upgrade_file:在dorado容灾场景下,获取指定节点下升级所需指定文件。
  • cross_cluster_full:基于共享存储的同城双中心场景下的跨集群全量build
  • cross_cluster_incremental:基于共享存储的同城双中心场景下的跨集群增量build

默认值:auto

-r, —recvtimeout=INTERVAL

指定重建过程中备机日志接收等待主机响应的超时时间。

取值范围:整型(秒)。

默认值:120秒

-d

打印更多build过程信息。

-

-C CONNECTOR

到源端DN的连接串,通过连接源端DN进行本节点上DN的重建。只支持备机到备机的连接。

连接串包含本节点待重建DN的IP和端口和源端DN的IP和端口,格式如下:

  1. localhost=Local DN IP localport=Local DN Port+1 remotehost=DN IP remoteport=DN Port+1

表 7 copy参数

参数

参数说明

取值范围

-Q

指定xlog日志拷贝方向。

  • copy_from_local:从本地往共享存储上拷贝。
  • copy_from_share:从共享存储往本地存储上拷贝。
  • force_copy_from_local:强制从本地往共享存储上拷贝。

表 8 stack参数

参数

参数说明

取值范围

-I

用于指定需要获取调用栈的线程的lwtid。

正整数。