1. gs_ctl 介绍
gs_ctl可以启动、停止、以及控制GaussDB服务器双机间的操作。
启动数据库的语法
停止数据库的语法
控制数据库的语法
双机控制命令的语法
2. 模式介绍
-
在start模式下,会启动一个新的服务器。
-
在stop模式下,正在特定数据目录下运行的服务器将被关闭。使用-m选项可以选择以下三种不同的关闭模式:
“smart” 模式等待所有客户端中断连接。如果服务器处于紧迫等待,一旦所有的客户断开连接,恢复和复制流将会中断。
"fast"模式并不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开,然后服务器也被关闭。
“immediate” 模式将在没有完全关闭的情况下强行退出,在下次重新启动的时候导致故障恢复。 -
restart模式下,以当前的运行参数重新启动服务器。对于双机模式,restart命令与服务器当前的角色相匹配。
-
reload模式简单地给gaussdb进程发送一个SIGHUP信号,导致它重新读取配置文件( postgresql.conf, pg_hba.conf ),这样就允许修改部分配置文件选项而不用重启系统即可生效。
-
status模式检查服务器是否在指定的数据目录下运行。如果是,显示其PID和调用它的命令行选项。
-
kill模式允许给一个指定的进程发送信号,使用 --help查看支持的信号名字列表。
-
switchover模式允许主机与备机之间、备机与级联备机之间或级联备机与次级联备机之间进行角色切换,切换成功之后,切换的两个角色互换,例如主机降为备机,备机升为主机,继续为用户提供数据库服务。
-
failover模式是在主机发生故障时,将备机、级联备机或次级联备机升为主机继续为用户提供数据库服务,或在备机发生故障时,将级联备机或次级联备机升为备机,或在级联备机发生故障时,将次级联备机升为级联备机。
-
query模式可以查询双机运行时主机与备机之间、备机与级联备机之间或者级联备机与次级联备机之间的状态信息,为管理员提供实时的数据库运行状态,便于管理员管理数据库。
-
notify模式可以通知数据库,使其成为主机、备机、级联备机或次级联备机。
-
build模式可以在主机和备机之间无法建立双机关系时,重建备机,或者在备机与级联备机之间无法建立双机关系时,重建级联备机,或者在级联备机与次级联备机之间无法建立双机关系时,重建次级联备机。
-
querybuild模式可以查看数据库的重建进度,为管理员提供实时的数据库重建状态,便于管理员管理数据库。
参数说明
参数 | 参数说明 | 取值范围 |
-D, --pgdata=DATADIR | 声明该数据库的文件系统位置。 | DATADIR的取值必须为有效的数据目录。 默认值:如果省略此参数,则使用GAUSSDATA环境变量。 |
-m, --mode=MODE | 声明关闭模式或双机正常时切换的切换模式。 | mode的取值: smart/m:等待所有客户端中断连接后才关闭或切换。如果服务器处于紧迫等待,一旦所有的客户断开连接,恢复和复制流将会中断。 fast/f:不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开,然后服务器将被关闭或切换。 immediate/i:强行关闭,在下次重新启动的时候将导致故障恢复。 缺省值为fast。 |
-M | -M后面需要跟SERVERMODE参数,表示在启动时指定数据库的启动模式。 | SERVERMODE可以取下面五个值: primary:本端以主机模式启动或数据库升为主机模式 standby:本端以备机模式启动或数据库升为备机模式。 cascadestandby:本端以级联备机模式启动或数据库升为级联备机模式。 cascadestandby1:本端以次级联备机模式启动。 pending:本端处于等待状态,等待提升为主机、备机、级联备机或次级联备机。 |
-r, --recvtimeout=INTERVAL | 当备机重建时,如果备机从主机接收数据的时间间隔超过指定的时间,便会重建失败,并打印相关提示信息。 当级联备机重建时,如果级联备机从备机接收数据的时间间隔超过指定的时间,便会重建失败,并会打印相关提示信息。 同样,当次级联备机重建时,如果次级联备机从级联备机接收数据的时间间隔超过指定的时间,便会重建失败,并会打印相关提示信息。 指定主备间通信超时时间,默认值为60秒,此参数需要与配置文件中的wal_sender_timeout值保持一致。 | 取值范围:整型(秒)。 |
-t, --timeout=SECS | 这个参数同时控制如下两个功能: 等待数据库启动或者关闭完成的最大秒数。 等待双机正常时切换完成的最大秒数。 | 取值范围:整型(秒)。 默认值: 等待数据库启动或者关闭完成:60秒。 等待双机正常是切换完成:150秒。 |
-T | 查询status时指定此参数,不会以trust模式尝试建立与数据库的连接。LINUX平台上pg_hba.conf中对于localhost的认证方式不为trust时,查询status需要指定此参数。 | - |
-V , --version | 打印gs_ctl的版本信息然后退出。 | - |
-w | 等待操作的完成。等待是关闭和启动时的缺省值。 | - |
-W | 不等待操作的完成。 | - |
-U USERNAME | 指定连接数据库的用户。 说明: 此参数只能与failover、switchover、notify、query和querybuild参数配合使用。 | 取值范围:GaussDB中存在的用户。 默认值:省略此参数则使用与当前操作系统用户同名的用户。 |
-P PASSWORD | 与-U参数配合使用,指定连接本地数据库的用户密码。 说明: 当省略-U参数,且认证方法为trust时,-P参数无效。 | 要符合密码复杂度要求。 如果省略此参数: 优先使用环境变量GAUSSPASSWORD的值作为-U参数指定用户的密码。 如果环境变量GAUSSPASSWORD的值为空或者错误,则会提示密码错误。 |
-K WALLETKEY | 该参数指定开启数据加密功能时使用的钱夹密码。 说明: 一旦设置了钱夹密码,启动数据库时必须通过该参数指定钱夹密码,否则数据库启动失败。 | - |
-?, --help | 显示关于gs_ctl命令行参数的帮助信息,然后退出。 | - |
启动或重启选项
参数 | 参数说明 | 取值范围 |
-c, --core-file | 允许gaussdb进程产生内核文件。 | - |
-l, --log=FILENAME | 把服务器日志输出附加在FILENAME文件上。 | FILENAME的取值为启动数据库服务的用户有权限的文件。 例如,data目录下的某文件。 |
-L | 当指定此参数时,不记录gs_ctl产生的日志。 当不指定此参数时,记录gs_ctl 产生的日志。 | 日志记录位置取决于配置文件postgresql.conf 中参数log_destination的值: 当log_destination的值为syslog时,记录gs_ctl的日志到文件/var/log/messages中。 当log_destination的值为其他值时,记录gs_ctl的日志到文件gs_ctl-current.log中。 默认不指定此参数,记录gs_ctl产生的日志。 |
-o OPTIONS | 声明要直接传递给由GaussDB执行的gaussdb的命令行选项。 参数通常都用单或者双引号包围以保证它们作为一个整体传递。 | gaussdb支持的参数。 |
-P PATH-TO-POSTGRES | 声明gaussdb可执行文件的位置。 | 缺省位于gs_ctl自身所在目录,一般不需要此选项。 |
相关文件
1.postmaster.pid
这个文件存在于数据目录中是为了帮助gs_ctl判断服务器当前是否在运行。
2.postmaster.opts
如果这个文件存在于数据目录,gs_ctl将把文件的内容当作传递给GaussDB命令的选项传递过去,除非被-o选项覆盖。这个文件的内容也会在status模式里显示出来。
3.gs_ctl-current.log
这个文件记录gs_ctl产生的日志。该文件的位置可能有两个,当配置文件中log_directory指定的路径对系统管理员有效时,日志记录到log_directory所指的路径下;当配置文件中log_directory指定的路径对系统管理员无效时,日志记录到$GAUSSHOME/bin目录下。
4.gs_ctl - 年 - 月 - 日_HHMMSS.log
这个文件是当gs_ctl-current.log文件大小满16M后,根据当前时刻,对gs_ctl-current.log重命名生成的文件。
示例
1.启动服务器
gs_ctl start
启动服务器,等到服务器启动了才退出:
gs_ctl -w start
服务器使用5433端口,而且不带fsync(强制刷盘)运行,使用:
gs_ctl -o "-F -p 5433" start
2.停止服务器
gs_ctl stop
使用-m选项允许用户控制服务器的关闭方式:
gs_ctl stop -m fast
3.显示服务器状态
下面是来自gs_ctl的状态输出的例子:
gs_ctl statusgs_ctl: server is running (PID: 8797)
/usr/local/pgdata/install/bin/gaussdb