集群模式部署
集群模式中客户端或应用程序直接连接到协调节点,其余数据节点与编目节点对应用程序完全透明。
应用程序本身不需关心数据存放在哪个数据节点,协调节点会对接收到的请求解析,自动将其发送到需要的数据节点上进行处理。
在集群模式下,复制组之间的数据无共享,复制组内的节点间进行异步数据复制,保证数据的最终一致性。
说明:
本节以集群部署为例,介绍配置和启动步骤。
以下操作步骤假设 SequoiaDB 程序安装在 /opt/sequoiadb 目录下。
SequoiaDB 服务进程全部以 sdbadmin 用户运行,请确保所有数据库目录都赋予 sdbadmin 读写权限。
步骤一:检查 SequoiaDB 的配置服务状态
在每台数据库服务器上检查 SequoiaDB 配置服务状态:
确认系统提示“sdbcm is running”表示服务正在运行,否则请执行如下命令重新配置服务程序:
步骤二:启动一个临时协调节点(该节点只是为了创建其它节点而临时使用,安装完毕后需要删除该节点)
-
# su - sdbadmin
在任意一台数据库服务器上(以下步骤都只需要在这台服务器上操作),启动 SequoiaDB Shell 控制台
$ /opt/sequoiadb/bin/sdb
连接到本地的集群管理服务进程 sdbcm
创建临时协调节点
> oma.createCoord(18800, "/opt/sequoiadb/database/coord/18800")
启动临时协调节点
-
步骤三:通过命令配置和启动编目节点
连接到临时协调节点,在 shell 命令中输入:
> var db = new Sdb("localhost",18800)
其中18800为协调节点端口号
创建一个编目节点组
sdbserver1:第一台服务器主机名。
11800:为编目节点服务端口。
/opt/sequoiadb/database/cata/11800:为编目节点的数据文件存放路径。
添加另外两个编目节点
> var cataRG = db.getRG("SYSCatalogGroup");
> var node1 = cataRG.createNode("sdbserver2", 11800,"/opt/sequoiadb/database/cata/11800")
> var node2 = cataRG.createNode("sdbserver3", 11800,"/opt/sequoiadb/database/cata/11800")
启动编目节点组
> node1.start()
> node2.start()
步骤四:通过命令配置和启动数据节点
创建数据节点组
添加数据节点
启动数据节点组
> dataRG.start()
步骤五:部署启动协调节点
创建协调节点组
> var rg = db.createCoordRG()
创建协调节点
> rg.createNode("sdbserver1", 11810, "/opt/sequoiadb/database/coord/11810")
> rg.createNode("sdbserver2", 11810, "/opt/sequoiadb/database/coord/11810")
> rg.createNode("sdbserver3", 11810, "/opt/sequoiadb/database/coord/11810")
启动协调节点
步骤六:删除临时协调节点
连接到本地的集群管理服务进程 sdbcm
> var oma = new Oma("localhost", 11790)
数据库配置启动完成