集群启停
集群管理服务
集群管理节点 sdbcm (SequoiaDB Cluster Manager) 是数据库的集群管理服务,是常驻系统后台的一个守护进程。负责执行远程的集群管理命令和监控本地的 SequoiaDB 数据库。每一个操作系统中只能启动一个集群管理节点。
操作系统启动后会自动启动 sdbcm 服务。该服务启动后会自动启动该物理机中所有注册在数据库安装目录 /opt/sequoiadb/conf/local (数据库默认安装路径)下的节点。用户使用命令 ps –elf | grep sequoiadb
可以查看当前正在启动的节点与启动完毕的节点。
[sdbadmin@sdbserver1 ~]$ ps -elf | grep sequoiadb
0 S sdbadmin 48479 1 0 80 0 - 615441 hrtime 3月13 ? 00:15:25 sequoiadb(11820) C
0 S sdbadmin 48521 1 0 80 0 - 202014 hrtime 3月13 ? 00:10:37 sequoiadb(11810) S
0 S sdbadmin 48550 1 0 80 0 - 582947 hrtime 3月13 ? 00:11:02 sequoiadb(11830) D
0 S sdbadmin 48593 1 0 80 0 - 580349 hrtime 3月13 ? 00:11:03 sequoiadb(11840) D
0 S sdbadmin 56616 56500 0 80 0 - 28183 pipe_w 10:03 pts/0 00:00:00 grep --color=auto sequoiadb
启动完毕的进程名为:sequoiadb(服务名),如启动11830服务:
$ /opt/sequoiadb/bin/sequoiadb -c /opt/sequoiadb/conf/local/11830
集群启动/停止
数据库集群可通过两种方式启动和停止:数据库操作系统命令和数据库 shell 命令。
Note:
数据库操作系统命令只能对当前服务器的服务节点进行启动。
数据库操作系统命令集群启动/停止
数据库操作系统命令集群启动和停止主要使用 sdbstart
和 sdbstop
命令。
[sdbadmin@sdbserver1 ~]$ sdbstart --help
Command options:
-h [ --help ] help
--version version
-c [ --confpath ] arg configure file path
-p [ --svcname ] arg service name, separated by comma (',')
-t [ --type ] arg node type: db/om/all, default: db
-r [ --role ] arg role type: coord/data/catalog/om
--force force start when the config not exist
-o [ --options ] arg SequoiaDB start arguments, but not use
'-c/--confpath/-p/--svcname'
-i [ --ignoreulimit ] skip checking ulimit
启动服务节点
数据库节点可通过 sdbstart
命令启动。
通过 sdbstart 命令(不带参数)启动当前服务器数据节点、编目节点和协调节点:
[sdbadmin@sdbserver1 ~]$ sdbstart
Success: sequoiadb(11820) is successfully started (57008)
Success: sequoiadb(11810) is successfully started (57011)
Success: sequoiadb(11830) is successfully started (57014)
Success: sequoiadb(11840) is successfully started (57017)
Total: 4; Succeed: 4; Failed: 0
Note:
- sdbstart 命令默认启动数据节点、编目节点和协调节点
- sdbstart 命令对已启动的服务节点不做任何操作
通过 sdbstart 命令
-p
参数启动指定服务名节点:[sdbadmin@sdbserver1 ~]$ sdbstart -p 11830,11840
Success: sequoiadb(11830) is successfully started (57130)
Success: sequoiadb(11840) is successfully started (57133)
Total: 2; Succeed: 2; Failed: 0
Note:
sdbstart
-p
参数指定启动服务名称,多个服务名称用‘,’隔开通过 sdbstart 命令
-t
参数启动当前服务器所有服务节点:[sdbadmin@sdbserver1 ~]$ sdbstart -t all
Success: sequoiadb(11820) is successfully started (60833)
Success: sequoiadb(11810) is successfully started (60836)
Success: sequoiadb(11830) is successfully started (60839)
Success: sequoiadb(11840) is successfully started (60842)
Total: 4; Succeed: 4; Failed: 0
Note:
sdbstart
-t
参数指定启动服务类型。db 为数据节点、编目节点和协调节点,om 为 SequoiaDB 数据库管理服务,all 为当前服务器部署的所有服务。通过 sdbstart 命令
-r
参数启动数据节点:[sdbadmin@sdbserver1 ~]$ sdbstart -r data
Success: sequoiadb(11830) is successfully started (61083)
Success: sequoiadb(11840) is successfully started (61086)
Total: 2; Succeed: 2; Failed: 0
Note:
sdbstart
-r
参数指定启动服务角色。coord 为协调节点,data 为数据节点,catalog 为编目节点,om 为 Sequoiadb 数据库管理服务。
停止服务节点
数据库节点可通过 sdbstop --all
命令停止。
通过 sdbstop 命令停止当前服务器数据节点、编目节点和协调节点:
[sdbadmin@sdbserver1 ~]$ $ sdbstop --all
Terminating process 60956: sequoiadb(11820)
DONE
Terminating process 60959: sequoiadb(11810)
DONE
Terminating process 61083: sequoiadb(11830)
DONE
Terminating process 61086: sequoiadb(11840)
DONE
Total: 4; Success: 4; Failed: 0
Note:
- sdbstop 命令默认启动数据节点、编目节点和协调节点
- sdbstop 命令对已启动的服务节点不做任何操作
通过 sdbstop 命令
-p
参数启动指定服务名节点:[sdbadmin@sdbserver1 ~]$ sdbstop -p 11830,11840
Terminating process 61212: sequoiadb(11830)
DONE
Terminating process 61215: sequoiadb(11840)
DONE
Total: 2; Success: 2; Failed: 0
Note:
sdbstop
-p
参数指定启动服务名称,多个服务名称用‘,’隔开。通过 sdbstop 命令
-t
参数启动当前服务器所有服务节点:[sdbadmin@sdbserver1 ~]$ sdbstop -t all
Terminating process 61206: sequoiadb(11820)
DONE
Terminating process 61209: sequoiadb(11810)
DONE
Terminating process 61326: sequoiadb(11830)
DONE
Terminating process 61329: sequoiadb(11840)
DONE
Total: 4; Success: 4; Failed: 0
Note:
sdbstop
-t
参数指定启动服务类型。db 为数据节点、编目节点和协调节点,om 为 SequoiaDB 数据库管理服务,all 为当前服务器部署的所有服务。通过 sdbstop 命令
-r
参数启动数据节点:[sdbadmin@sdbserver1 ~]$ sdbstop -r data
Terminating process 61406: sequoiadb(11830)
DONE
Terminating process 61409: sequoiadb(11840)
DONE
Total: 2; Success: 2; Failed: 0
Note:
sdbstop
-r
参数指定启动服务角色。coord 为协调节点,data 为数据节点,catalog 为编目节点,om 为 SequoiaDB 数据库管理服务。
数据库 shell 命令集群启动/停止
SequoiaDB 数据库支持在 sdb 命令行启动和停止服务节点。
数据库 shell 命令启动服务节点
通过数据库 shell 命令连接到协调节点:
[sdbadmin@sdbserver1 ~]$ sdb
Welcome to SequoiaDB shell!
help() for help, Ctrl+c or quit to exit
> db = new Sdb("localhost",11810,"username","password");
localhost:11810
Takes 0.039023s.
Note:
通过数据库 shell 命令启动、停止服务节点的后续操作默认连接到协调节点。
启动服务节点组
> rg = db.getRG("group1");
group1
Takes 0.030888s.
> rg.start();
Takes 6.127494s.
Note:
“group1”为数据组名称,协调节点组名称为“SYSCoord”,编目节点组名称为“SYSCatalogGroup”。
启动服务节点
> rg = db.getRG("group1");
group1
Takes 0.001194s.
> rg.getNode("sdbserver1",11830).start();
Takes 2.138304s.
Note:
“sdbserver1”为数据节点所在服务器主机名,11830为数据节点服务名。
数据库 shell 命令停止服务节点
停止服务节点组
> rg = db.getRG("group1");
group1
Takes 0.030888s.
> rg.stop();
Takes 6.073289s.
Note:
- “group1”为数据组名称,协调节点组名称为“SYSCoord”,编目节点组名称为“SYSCatalogGroup”。
- 协调节点组停止后需通过操作系统命令启动后才能进行数据库 shell 命令操作。
停止服务节点
> rg = db.getRG("group1");
group1
Takes 0.000899s.
> rg.getNode("sdbserver1",11830).stop();
Takes 5.054744s.
Note:
“sdbserver1”为数据节点所在服务器主机名,11830为数据节点服务名。
使用kill命令停止数据节点
- 用户可以使用 kill -15 正常停止数据节点,以该方式停止的数据节点被认为正常停止。
- 用户可以使用 kill -9 强行停止数据节点,以该方式停止的数据节点被认为非正常停止。
- 如果该节点非正常停止,则会被 sdbcm 进程尝试重新启动。启动后该节点会与当前数据组中其它节点进行同步。