集群启停

集群管理服务

集群管理节点 sdbcm (SequoiaDB Cluster Manager) 是数据库的集群管理服务,是常驻系统后台的一个守护进程。负责执行远程的集群管理命令和监控本地的 SequoiaDB 数据库。每一个操作系统中只能启动一个集群管理节点。

操作系统启动后会自动启动 sdbcm 服务。该服务启动后会自动启动该物理机中所有注册在数据库安装目录 /opt/sequoiadb/conf/local (数据库默认安装路径)下的节点。用户使用命令 ps –elf | grep sequoiadb可以查看当前正在启动的节点与启动完毕的节点。

  1. [sdbadmin@sdbserver1 ~]$ ps -elf | grep sequoiadb
  2. 0 S sdbadmin 48479 1 0 80 0 - 615441 hrtime 313 ? 00:15:25 sequoiadb(11820) C
  3. 0 S sdbadmin 48521 1 0 80 0 - 202014 hrtime 313 ? 00:10:37 sequoiadb(11810) S
  4. 0 S sdbadmin 48550 1 0 80 0 - 582947 hrtime 313 ? 00:11:02 sequoiadb(11830) D
  5. 0 S sdbadmin 48593 1 0 80 0 - 580349 hrtime 313 ? 00:11:03 sequoiadb(11840) D
  6. 0 S sdbadmin 56616 56500 0 80 0 - 28183 pipe_w 10:03 pts/0 00:00:00 grep --color=auto sequoiadb

启动完毕的进程名为:sequoiadb(服务名),如启动11830服务:

  1. $ /opt/sequoiadb/bin/sequoiadb -c /opt/sequoiadb/conf/local/11830

集群启动/停止

数据库集群可通过两种方式启动和停止:数据库操作系统命令和数据库 shell 命令。

Note:

数据库操作系统命令只能对当前服务器的服务节点进行启动。

数据库操作系统命令集群启动/停止

数据库操作系统命令集群启动和停止主要使用 sdbstartsdbstop 命令。

  1. [sdbadmin@sdbserver1 ~]$ sdbstart --help
  2. Command options:
  3. -h [ --help ] help
  4. --version version
  5. -c [ --confpath ] arg configure file path
  6. -p [ --svcname ] arg service name, separated by comma (',')
  7. -t [ --type ] arg node type: db/om/all, default: db
  8. -r [ --role ] arg role type: coord/data/catalog/om
  9. --force force start when the config not exist
  10. -o [ --options ] arg SequoiaDB start arguments, but not use
  11. '-c/--confpath/-p/--svcname'
  12. -i [ --ignoreulimit ] skip checking ulimit

启动服务节点

数据库节点可通过 sdbstart 命令启动。

  • 通过 sdbstart 命令(不带参数)启动当前服务器数据节点、编目节点和协调节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstart
    2. Success: sequoiadb(11820) is successfully started (57008)
    3. Success: sequoiadb(11810) is successfully started (57011)
    4. Success: sequoiadb(11830) is successfully started (57014)
    5. Success: sequoiadb(11840) is successfully started (57017)
    6. Total: 4; Succeed: 4; Failed: 0

    Note:

    • sdbstart 命令默认启动数据节点、编目节点和协调节点
    • sdbstart 命令对已启动的服务节点不做任何操作
  • 通过 sdbstart 命令 -p 参数启动指定服务名节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstart -p 11830,11840
    2. Success: sequoiadb(11830) is successfully started (57130)
    3. Success: sequoiadb(11840) is successfully started (57133)
    4. Total: 2; Succeed: 2; Failed: 0

    Note:

    sdbstart -p 参数指定启动服务名称,多个服务名称用‘,’隔开

  • 通过 sdbstart 命令 -t 参数启动当前服务器所有服务节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstart -t all
    2. Success: sequoiadb(11820) is successfully started (60833)
    3. Success: sequoiadb(11810) is successfully started (60836)
    4. Success: sequoiadb(11830) is successfully started (60839)
    5. Success: sequoiadb(11840) is successfully started (60842)
    6. Total: 4; Succeed: 4; Failed: 0

    Note:

    sdbstart -t 参数指定启动服务类型。db 为数据节点、编目节点和协调节点,om 为 SequoiaDB 数据库管理服务,all 为当前服务器部署的所有服务。

  • 通过 sdbstart 命令 -r 参数启动数据节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstart -r data
    2. Success: sequoiadb(11830) is successfully started (61083)
    3. Success: sequoiadb(11840) is successfully started (61086)
    4. Total: 2; Succeed: 2; Failed: 0

    Note:

    sdbstart -r 参数指定启动服务角色。coord 为协调节点,data 为数据节点,catalog 为编目节点,om 为 Sequoiadb 数据库管理服务。

停止服务节点

数据库节点可通过 sdbstop --all 命令停止。

  • 通过 sdbstop 命令停止当前服务器数据节点、编目节点和协调节点:

    1. [sdbadmin@sdbserver1 ~]$ $ sdbstop --all
    2. Terminating process 60956: sequoiadb(11820)
    3. DONE
    4. Terminating process 60959: sequoiadb(11810)
    5. DONE
    6. Terminating process 61083: sequoiadb(11830)
    7. DONE
    8. Terminating process 61086: sequoiadb(11840)
    9. DONE
    10. Total: 4; Success: 4; Failed: 0

    Note:

    • sdbstop 命令默认启动数据节点、编目节点和协调节点
    • sdbstop 命令对已启动的服务节点不做任何操作
  • 通过 sdbstop 命令 -p 参数启动指定服务名节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstop -p 11830,11840
    2. Terminating process 61212: sequoiadb(11830)
    3. DONE
    4. Terminating process 61215: sequoiadb(11840)
    5. DONE
    6. Total: 2; Success: 2; Failed: 0

    Note:

    sdbstop -p 参数指定启动服务名称,多个服务名称用‘,’隔开。

  • 通过 sdbstop 命令 -t 参数启动当前服务器所有服务节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstop -t all
    2. Terminating process 61206: sequoiadb(11820)
    3. DONE
    4. Terminating process 61209: sequoiadb(11810)
    5. DONE
    6. Terminating process 61326: sequoiadb(11830)
    7. DONE
    8. Terminating process 61329: sequoiadb(11840)
    9. DONE
    10. Total: 4; Success: 4; Failed: 0

    Note:

    sdbstop -t 参数指定启动服务类型。db 为数据节点、编目节点和协调节点,om 为 SequoiaDB 数据库管理服务,all 为当前服务器部署的所有服务。

  • 通过 sdbstop 命令 -r 参数启动数据节点:

    1. [sdbadmin@sdbserver1 ~]$ sdbstop -r data
    2. Terminating process 61406: sequoiadb(11830)
    3. DONE
    4. Terminating process 61409: sequoiadb(11840)
    5. DONE
    6. Total: 2; Success: 2; Failed: 0

    Note:

    sdbstop -r 参数指定启动服务角色。coord 为协调节点,data 为数据节点,catalog 为编目节点,om 为 SequoiaDB 数据库管理服务。

数据库 shell 命令集群启动/停止

SequoiaDB 数据库支持在 sdb 命令行启动和停止服务节点。

数据库 shell 命令启动服务节点

  • 通过数据库 shell 命令连接到协调节点:

    1. [sdbadmin@sdbserver1 ~]$ sdb
    2. Welcome to SequoiaDB shell!
    3. help() for help, Ctrl+c or quit to exit
    4. > db = new Sdb("localhost",11810,"username","password");
    5. localhost:11810
    6. Takes 0.039023s.

    Note:

    通过数据库 shell 命令启动、停止服务节点的后续操作默认连接到协调节点。

  • 启动服务节点组

    1. > rg = db.getRG("group1");
    2. group1
    3. Takes 0.030888s.
    4. > rg.start();
    5. Takes 6.127494s.

    Note:

    “group1”为数据组名称,协调节点组名称为“SYSCoord”,编目节点组名称为“SYSCatalogGroup”。

  • 启动服务节点

    1. > rg = db.getRG("group1");
    2. group1
    3. Takes 0.001194s.
    4. > rg.getNode("sdbserver1",11830).start();
    5. Takes 2.138304s.

    Note:

    “sdbserver1”为数据节点所在服务器主机名,11830为数据节点服务名。

数据库 shell 命令停止服务节点

  • 停止服务节点组

    1. > rg = db.getRG("group1");
    2. group1
    3. Takes 0.030888s.
    4. > rg.stop();
    5. Takes 6.073289s.

    Note:

    • “group1”为数据组名称,协调节点组名称为“SYSCoord”,编目节点组名称为“SYSCatalogGroup”。
    • 协调节点组停止后需通过操作系统命令启动后才能进行数据库 shell 命令操作。
  • 停止服务节点

    1. > rg = db.getRG("group1");
    2. group1
    3. Takes 0.000899s.
    4. > rg.getNode("sdbserver1",11830).stop();
    5. Takes 5.054744s.

    Note:

    “sdbserver1”为数据节点所在服务器主机名,11830为数据节点服务名。

使用kill命令停止数据节点

  • 用户可以使用 kill -15 正常停止数据节点,以该方式停止的数据节点被认为正常停止。
  • 用户可以使用 kill -9 强行停止数据节点,以该方式停止的数据节点被认为非正常停止。
  • 如果该节点非正常停止,则会被 sdbcm 进程尝试重新启动。启动后该节点会与当前数据组中其它节点进行同步。