当前位置: 首页 > 工具软件 > SequoiaDB > 使用案例 >

SequoiaDB集群搭建(单机模式)

谭俊
2023-12-01

由于操作数据库实例,独立模式不支持,好像只能部署集群模式,那就部署一个单机版的集群。

首先是安装SequoiaDB,官网连接数据库安装_安装部署_文档中心_SequoiaDB巨杉数据库

照着装就行。(我装的是3.4版本的)

装好之后,部署集群模式,如下:

检查服务状态

在进行集群模式部署前,用户需要在每台数据库服务器上检查 SequoiaDB 配置服务的状态。

# service sdbcm status

系统提示“sdbcm is running”表示服务正在运行,否则执行如下指令重新配置服务程序:

# service sdbcm start

部署(CentOS 7环境)

部署集群模式主要分为以下步骤:

  1. 创建临时协调节点
  2. 创建编目节点组和节点
  3. 创建数据节点组和节点
  4. 创建协调节点组和节点
  5. 删除临时协调节点

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

(大致和官网一致,但是一些细节有差别,导致安装过程中踩坑不断)

Note:

  • SequoiaDB 巨杉数据库服务进程全部以 sdbadmin 用户运行,需确保数据库目录都赋予 sdbadmin 读写权限
  • 以下操作只须选择任意一台数据库服务器执行即可 
  • C:编目节点、S:协调节点、D:数据节点
  • 创建临时协调节点

    1. 切换到 sdbadmin 用户

      $ su - sdbadmin
    2. 启动 SDB Shell 控制台

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

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

      > oma.createCoord(18800, "/opt/sequoiadb/database/coord/18800")

      Note:

      • 18800:协调节点服务端口
      • /opt/sequoiadb/database/coord/18800:协调节点的数据文件存放路径
    5. 启动临时协调节点

      > oma.startNode(18800)
  • 创建编目节点组和节点

    1. 连接临时协调节点

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

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

      > var cataRG =db.getRG("SYSCatalogGroup"); 
      > var node1 = cataRG.createNode("ps1", 11810,"/opt/sequoiadb/database/cata/11810")
      > var node2 = cataRG.createNode("ps1", 11820,"/opt/sequoiadb/database/cata/11820")
    4. 启动编目节点

      > node1.start()
      > node2.start()
  • 创建数据节点组和节点

    1. 创建数据节点组

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

      > dataRG.createNode("ps1", 11830, "/opt/sequoiadb/database/data/11830")
      > dataRG.createNode("ps1", 11840, "/opt/sequoiadb/database/data/11840")
      > dataRG.createNode("ps1", 11850, "/opt/sequoiadb/database/data/11850")
    3. 启动数据节点组

      > dataRG.start()
  • 创建协调节点组和节点

    1. 创建协调节点组

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

      > coordRG.createNode("ps1", 11860, "/opt/sequoiadb/database/coord/11860")
      > coordRG.createNode("ps1", 11870, "/opt/sequoiadb/database/coord/11870")
      > coordRG.createNode("ps1", 11880, "/opt/sequoiadb/database/coord/11880")
    3. 启动协调节点组:

      > coordRG.start()
  • 删除临时协调节点

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

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

      > oma.removeCoord(18800)

至此,SequoiaDB 集群模式部署完毕,用户可通过 SDB Shell 进行数据操作。

(过程中执行完启动的命令,稍微等个几秒,再做下面的操作。如果失败了需要停掉所有的端口,重新来一遍)

  1. 停止服务器上的所有节点
    sdbstop -t all
  2. 删除编目节点配置文件
    rm -rf /opt/sequoiadb/conf/local/11800
  3. 删除编目节点的节点目录
    rm -rf /opt/sequoiadb/database/cata/11800

 

集群搭建完。开始装mysql实例安装部署_操作_MySQL实例_关系型数据库实例_文档中心_SequoiaDB巨杉数据库

 这个也照着官网装即可。

装完之后需要

连接MySQL实例与数据库分布式存储引擎

配置 SequoiaDB 连接地址

SequoiaDB 巨杉数据库默认的连接地址为 localhost:11810,用户可通过命令行或修改配置文件两种方式修改连接地址。以下步骤中的路径均为默认安装路径,用户可根据实际情况修改。

  • 通过 sdb_mysql_ctl 指定实例名修改 SequoiaDB 连接地址

    $ /opt/sequoiasql/mysql/bin/sdb_sql_ctl chconf myinst --sdb-conn-addr=ps1:11860,ps1:11870,ps1:11880

    修改过程中需要提供该数据库实例 root 用户的密码,若未设置 root 用户的密码,在提示密码时直接输入回车即可

    Changing configure of instance myinst ...
    Enter password:
    ok

只提供一种方式,官网还有修改配置文件另外一种方式。

最后一步就是修改连接的配置,可以远程连接操作数据库。

登录 MySQL Shell

MySQL 支持基于 UNIX 域套接字文件和 TCP/IP 两种连接方式。UNIX 域套接字文件连接属于进程间通信,连接时只需指定对应的套接字文件,不需要使用网络协议所以传输效率比 TCP/IP 连接方式更高,但仅限于本地连接。TCP/IP 连接属于网络通信,支持本地连接(环回接口)和远程连接,同时可以灵活地配置和授权客户端 IP 的访问权限。

  • 通过 TCP/IP 连接

    • 本地连接

      $ cd /opt/sequoiasql/mysql
      $ bin/mysql -h 127.0.0.1 -P 3306 -u root
    • 远程连接

      MySQL 默认未授予远程连接的访问权限,所以需要在服务端对客户端 IP 进行访问授权。

      1. 创建 sdbadmin 用户,对所有的 IP 都授权访问权限,且设置授权密码 123456

        mysql> GRANT ALL PRIVILEGES ON *.* TO sdbadmin@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
        mysql> FLUSH PRIVILEGES;
      2. 假设 mysql 服务器地址为 sdbserver1:3306,在客户端可以使用如下方式进行远程连接:

        $ /opt/sequoiasql/mysql/bin/mysql -h 127.0.0.1 -P 3306 -u sdbadmin -p
        Enter password:

设置 MySQL Shell 登陆密码

为本地连接的 root 用户设置密码 123456

mysql> ALTER USER root@localhost IDENTIFIED BY '123456';    

Note:

用户设置密码后,登录 MySQL Shell 需要指定 -p 参数输入密码。

到此全部完成,接下来就可以自由操作数据库里了。

(有啥问题,欢迎指出,一同探讨。)

 类似资料: