集群模式部署

本章主要介绍如何在本地主机采用三副本机制部署 SequoiaDB 巨杉数据库的集群模式。集群模式是 SequoiaDB 巨杉数据库部署的标准模式,具有高可用、容灾、数据分区等能力。

部署集群模式分为四步,其中数据库安装与部署为必选,SQL 引擎安装和部署为可选:

安装数据库

在部署集群模式之前,用户需要先在本地每一台主机安装 SequoiaDB 巨杉数据库软件。然后通过 SequoiaDB Shell 命令行来将各台主机串联起来,构建成一个集群。

下面介绍如何通过命令行安装的方式将 SequoiaDB 巨杉数据库安装到本地主机。

下载 SequoiaDB 安装包

用户可前往 SequoiaDB 巨杉数据库的官方网站下载相应版本的安装包。

下载地址:SequoiaDB 巨杉数据库

安装 SequoiaDB 巨杉数据库步骤

下述安装过程,使用名称为 sequoiadb-5.0-linux_x86_64-installer.tar.gz 的 SequoiaDB 巨杉数据库产品包为示例。每台主机重复下述步骤安装 SequoiaDB 巨杉数据库到本地。

Note:

  • 使用 root 用户进行 SequoiaDB 数据库安装
  • 确保本地主机满足硬件和软件要求(可参考软硬件配置要求
  • 确保所有主机都设置了主机名/IP地址映射关系
  • 确保所有主机两两之间可通过主机名建立网络连接
  • 参考操作系统设置中关于 NUMA 的说明,建议关闭 NUMA 或者使用“numactl —interleave=all”启动数据库服务
  1. 用户可以参照操作系统设置调整 Linux 系统的环境配置。

  2. 以 root 用户登陆目标主机,解压 SequoiaDB 巨杉数据库产品包,并为解压得到的 sequoiadb-5.0-linux_x86_64-installer.run 安装包赋可执行权限:

    1. # tar -zxvf sequoiadb-5.0-linux_x86_64-installer.tar.gz
    2. # chmod u+x sequoiadb-5.0-linux_x86_64-installer.run
  3. 使用 root 用户运行 sequoiadb-5.0-linux_x86_64-installer.run 包:

    1. # ./sequoiadb-5.0-linux_x86_64-installer.run --mode text --SMS false
  4. 提示选择向导语言,可根据需要输入 1 选择英文,或者输入 2 选择中文。

    1. Language Selection
    2. Please select the installation language
    3. [1] English - English
    4. [2] Simplified Chinese - 简体中文
    5. Please choose an option [1] :2
  5. 显示安装协议,输入 1 表示忽略阅读并同意协议,输入 2 表示读取完整协议内容。

    1. ------------------------------------------------------------
    2. BitRockInstallBuilder 评估本所建立
    3. ------------------------------------------------------------
    4. 欢迎来到 SequoiaDB Server 安装程序
    5. 重要信息:请仔细阅读
    6. 下面提供了两个许可协议。
    7. 1. SequoiaDB 评估程序的最终用户许可协议
    8. 2. SequoiaDB 最终用户许可协议
    9. 如果被许可方为了生产性使用目的(而不是为了评估、测试、试用“先试后买”或演示)获得本程序,单击下面的“接受”按钮即表示被许可方接受 SequoiaDB 最终用户许可协议,且不作任何修改。
    10. 如果被许可方为了评估、测试、试用“先试后买”或演示(统称为“评估”)目的获得本程序:单击下面的“接受”按钮即表示被许可方同时接受(iSequoiaDB 评估程序的最终用户许可协议(“评估许可”),且不作任何修改;和(iiSequoiaDB 最终用户程序许可协议(SELA),且不作任何修改。
    11. 在被许可方的评估期间将适用“评估许可”。
    12. 如果被许可方通过签署采购协议在评估之后选择保留本程序(或者获得附加的本程序副本供评估之后使用),SequoiaDB 评估程序的最终用户许可协议将自动适用。
    13. “评估许可”和 SequoiaDB 最终用户许可协议不能同时有效;两者之间不能互相修改,并且彼此独立。
    14. 这两个许可协议中每个协议的完整文本如下。
    15. 评估程序的最终用户许可协议
    16. [1] 同意以上协议: 了解更多的协议内容,可以在安装后查看协议文件
    17. [2] 查看详细的协议内容
    18. 请选择选项 [1] :
  6. 指定 SequoiaDB 安装路径,输入完毕后按回车。若没有输入直接回车,将使用默认的安装路径(/opt/sequoiadb)。

    1. ------------------------------------------------------------
    2. 请指定 SequoiaDB Server 将会被安装到的目录
    3. 安装目录 [/opt/sequoiadb]:
  7. 询问是否强制安装,y 表示强制安装,安装时发现有相关进程存在则会尝试停止进程,N 表示非强制安装,安装时发现有相关进程存在,就会报错退出。默认为非强制安装:

    1. ------------------------------------------------------------
    2. 是否强制安装?强制安装时可能会强杀残留进程
    3. 是否强制安装 [y/N]:
  8. 提示配置 Linux 用户名和用户组,输入完毕后按回车。若没有输入直接回车,将会创建默认的用户名(sdbadmin)和用户组(sdbadmin_group)。该用户名用于运行 SequoiaDB 服务:

    1. ------------------------------------------------------------
    2. 数据库管理用户配置
    3. 配置用于启动 SequoiaDB 的用户名、用户组和密码
    4. 用户名 [sdbadmin]:
    5. 用户组 [sdbadmin_group]:
  9. 提示配置刚才创建的 Linux 用户的密码,输入完毕后按回车。若没有输入直接回车,将会使用默认密码(sdbadmin):

    1. 密码 [********] :
    2. 确认密码 [********] :
  10. 提示配置服务端口,输入完毕后按回车。若没有输入直接回车,将使用默认的服务端口号(11790):

    1. ------------------------------------------------------------
    2. 集群管理服务端口配置
    3. 配置 SequoiaDB 集群管理服务端口,集群管理用于远程启动添加和启停数据库节点
    4. 端口 [11790]:
  11. 询问是否允许 SequoiaDB 巨杉数据库相关进程开机自启动,Y 表示允许,n 表示不允许。默认为允许:

    1. ------------------------------------------------------------
    2. 是否允许 SequoiaDB 相关进程开机自启动
    3. Sequoiadb相关进程开机自启动 [Y/n]:
  12. 询问是否继续安装,Y 表示继续,n 表示不继续。默认为继续:

    1. ------------------------------------------------------------
    2. 设定现在已经准备将 SequoiaDB Server 安装到您的电脑.
    3. 您确定要继续? [Y/n]:
  13. 当屏幕上显示以下信息,表示 SequoiaDB 已经安装完成。

    1. 正在安装 SequoiaDB Server 于您的电脑中,请稍候。
    2. 安装中
    3. 0% ______________ 50% ______________ 100%
    4. #########################################
    5. ------------------------------------------------------------
    6. 安装程序已经完成安装 SequoiaDB Server 于你的电脑中.
  14. 切换到 sdbadmin 用户,进行安装检查。使用如下命令如能正常查到 SequoiaDB 的版本信息,说明 SequoiaDB 安装成功。

    1. $ sequoiadb --version
    2. SequoiaDB version: 5.0
    3. Release: 40774
    4. 2019-12-31-00.55.13

安装SQL引擎

SequoiaSQL 是 SequoiaDB 的 一种 SQL 引擎,SequoiaSQL-MySQL 以存储引擎的方式与 MySQL 对接,使得用户可以通过 MySQL 的 SQL 接口访问 SequoiaDB 中的数据,并进行增、删、改、查等操作。

下面介绍如何通过命令行安装的方式将 SequoiaSQL-MySQL 安装到本地主机。

下载 SequoiaSQL-MySQL 安装包

用户可前往 SequoiaDB 巨杉数据库官方网站下载相应版本的 SequoiaSQL-MySQL 安装包。

下载地址:SequoiaSQL-MySQL 数据库

安装SequoiaSQL-MySQL数据库步骤

下述安装过程,使用名称为 sequoiasql-mysql-5.0-linux_x86_64-installer.tar.gz 的 SequoiaSQL-MySQL 产品包为示例。

Note:

  • 使用 root 用户进行 SequoiaSQL-MySQL 数据库安装
  • 确保 SequoiaSQL-MySQL 产品安装包与 SequoiaDB 巨杉数据库版本一致
  • SequoiaSQL-MySQL 只需要安装在一台主机上就可以对接整个 SequoiaDB 巨杉数据库集群

下述安装过程,使用名称为 sequoiasql-mysql-5.0-linux_x86_64-installer.tar.gz 的 MySQL 实例组件产品包为示例。

Note:

  • 使用 root 用户权限来安装 MySQL实例组件
  • 检查 MySQL 实例组件产品软件包是否与 SequoiaDB 版本一致
  1. 以root 用户登陆目标主机,解压 MySQL 实例组件产品包,并为解压得到的 sequoiasql-mysql-5.0-linux_x86_64-installer.run 安装包赋可执行权限:

    1. # tar -zxvf sequoiasql-mysql-5.0-linux_x86_64-installer.tar.gz
    2. # chmod a+x sequoiasql-mysql-5.0-linux_x86_64-installer.run
  2. 使用 root 用户执行 sequoiasql-mysql-5.0-linux_x86_64-installer.run 包:

    1. # ./sequoiasql-mysql-5.0-linux_x86_64-installer.run --mode text
  3. 提示选择向导语言,可根据需要输入 1 选择英文,或者输入 2 选择中文。

    1. Language Selection
    2. Please select the installation language
    3. [1] English - English
    4. [2] Simplified Chinese - 简体中文
    5. Please choose an option [1] : 2
  4. 显示安装协议,输入 1 表示忽略阅读并同意协议,输入 2 表示读取完整协议内容。

    1. BitRock InstallBuilder评估本所建立
    2. 欢迎来到 SequoiaSQL MySQL Server 安装程序
    3. ----------------------------------------------------------------------------
    4. GNU 通用公共授权
    5. 第二版, 19916
    6. 著作权所有 (C) 19891991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
    7. 允许每个人复制和发布本授权文件的完整副本,但不允许对它进行任何修改。
    8. [1] 同意以上协议: 了解更多的协议内容,可以在安装后查看协议文件
    9. [2] 查看详细的协议内容
    10. 请选择一个选项 [1] : 1
  5. 指定安装路径,输入完毕后按回车。若没有输入直接回车,将使用默认的安装路径(/opt/sequoiasql/mysql):

    1. 请指定 SequoiaSQL MySQL Server 将会被安装到的目录
    2. 安装目录 [/opt/sequoiasql/mysql]:
  6. 提示配置 Linux 用户名和用户组,输入完毕后按回车。若没有输入直接回车,将会创建默认的用户名(sdbadmin)和用户组(sdbadmin_group)。该用户名用于运行 MySQL 实例服务:

    1. 数据库管理用户配置
    2. 配置用于启动SequoiaSQL-MySql的用户名、用户组和密码
    3. 用户名 [sdbadmin]:
    4. 用户组 [sdbadmin_group]:
  7. 提示配置刚才创建的 Linux 用户的密码,输入完毕后按回车。若没有输入直接回车,将会使用默认密码(sdbadmin):

    1. 密码 [********] :
    2. 确认密码 [********] :
  8. 询问是否继续安装,Y 表示继续,n 表示不继续。默认为继续:

    1. 设定现在已经准备将 SequoiaSQL MySQL Server 安装到您的电脑.
    2. 您确定要继续? [Y/n]:
  9. 当屏幕上显示以下信息,表示 MySQL 实例已经安装完成。

    1. 正在安装 SequoiaSQL MySQL Server 于您的电脑中,请稍候.
    2. 安装中
    3. 0% ______________ 50% ______________ 100%
    4. #########################################
    5. ----------------------------------------------------------------------------
    6. 安装程序已经完成安装 SequoiaSQL MySQL Server 于你的电脑中.

部署集群模式

下面介绍如何通过 SequoiaDB Shell 进行集群模式的部署。

集群模式说明

  • 在集群环境下,SequoiaDB 巨杉数据库需要三种角色的节点,分别为:数据节点编目节点协调节点

  • 集群模式的最小配置中,每种角色的节点都至少启动一个,才能构成完整的集群模式

  • 集群模式中客户端或应用程序只需连接协调节点,协调节点会对接收到的请求解析,自动将请求发送到数据节点进行处理

部署步骤

部署集群模式主要分为五步:

  • 创建临时协调节点
  • 创建编目节点组和节点
  • 创建数据节点组和节点
  • 创建协调节点组和节点
  • 删除临时协调节点

下述操作步骤假设 SequoiaDB 巨杉数据库程序安装在 /opt/sequoiadb 目录下。

Note:

  • SequoiaDB 巨杉数据库服务进程全部以 sdbadmin 用户运行,请确保数据库目录都赋予 sdbadmin 读写权限
  • 编目节点是一种逻辑节点,用于保存数据库的元数据信息,所以在部署时首先需要创建的是编目节点
  • 以下操作只须选择任意一台数据库服务器执行即可

一、 创建临时协调节点

  1. 切换到 sdbadmin 用户:

    1. $ su - sdbadmin
  2. 启动 SequoiaDB Shell 控制台:

    1. $ /opt/sequoiadb/bin/sdb
  3. 连接本地集群管理服务进程 sdbcm:

    1. > var oma = new Oma("localhost", 11790)
  4. 创建临时协调节点:

    1. > oma.createCoord(18800, "/opt/sequoiadb/database/coord/18800")
  5. 启动临时协调节点:

    1. > oma.startNode(18800)

二、 创建编目节点组和节点

  1. 连接临时协调节点:

    1. > var db = new Sdb("localhost",18800)
  2. 创建编目节点组:

    1. > db.createCataRG("sdbserver1", 11800, "/opt/sequoiadb/database/cata/11800")
  3. 创建编目节点:

    1. > var cataRG = db.getRG("SYSCatalogGroup")
    2. > var node1 = cataRG.createNode("sdbserver2", 11800,"/opt/sequoiadb/database/cata/11800")
    3. > var node2 = cataRG.createNode("sdbserver3", 11800,"/opt/sequoiadb/database/cata/11800")
  4. 启动编目节点:

    1. > node1.start()
    2. > node2.start()

三、 创建数据节点组和节点

  1. 创建数据节点组:

    1. > var dataRG = db.createRG("datagroup")
  2. 创建数据节点:

    1. > dataRG.createNode("sdbserver1", 11820, "/opt/sequoiadb/database/data/11820")
    2. > dataRG.createNode("sdbserver2", 11820, "/opt/sequoiadb/database/data/11820")
    3. > dataRG.createNode("sdbserver3", 11820, "/opt/sequoiadb/database/data/11820")
  3. 启动数据节点组:

    1. > dataRG.start()

四、 创建协调节点组和节点

  1. 创建协调节点组:

    1. > var coordRG = db.createCoordRG()
  2. 创建协调节点:

    1. > coordRG.createNode("sdbserver1", 11810, "/opt/sequoiadb/database/coord/11810")
    2. > coordRG.createNode("sdbserver2", 11810, "/opt/sequoiadb/database/coord/11810")
    3. > coordRG.createNode("sdbserver3", 11810, "/opt/sequoiadb/database/coord/11810")
  3. 启动协调节点组:

    1. > coordRG.start()

五、 删除临时协调节点

  1. 连接本地集群管理服务进程 sdbcm:

    1. > var oma = new Oma("localhost", 11790)
  2. 删除临时协调节点:

    1. > oma.removeCoord(18800)

SequoiaDB 巨杉数据库的集群模式已经部署完成,现在可以连接 SequoiaDB Shell 进行数据操作了。

部署SQL实例

数据库实例是位于用户和操作系统之间的数据管理软件,用户对数据库的操作都是在数据库实例下进行的,下面介绍 SequoiaDB-MySQL 的实例部署。

  1. 切换到 sdbadmin 用户:

    1. $ su - sdbadmin
  2. 检查 3306 端口是否被占用:

    1. $ netstat -anp | grep 3306
  3. 添加 SequoiaDB-MySQL 实例 myinst:

    1. $ /opt/sequoiasql/mysql/bin/sdb_sql_ctl addinst myinst -D /opt/sequoiasql/mysqldatabase/3306/ -p 3306
  4. 启动 myinst 实例:

    1. $ /opt/sequoiasql/mysql/bin/sdb_sql_ctl start myinst
  5. 查看 myinst 实例状态:

    1. $ /opt/sequoiasql/mysql/bin/sdb_sql_ctl status myinst

    Note:

    • 添加实例完成后实例会自行启动,无需执行启动命令
    • 停止 MySQL 实例的命令:/opt/sequoiasql/mysql/bin/sdb_mysql_ctl stop myinst

MySQL 数据库实例部署成功,用户可以来连接 MySQL Shell 进行数据操作。