数据节点是一种逻辑节点,用于保存用户数据信息。数据节点可以在独立模式和集群模式中部署。
如果新增节点涉及到新增主机,用户需先按照在集群中新增主机一节完成主机的主机名和参数配置。
Note:
新建数据节点时,用户应先在集群中创建有效的编目节点,可参考集群模式。
一个集群中可以配置多个复制组。通过增加复制组,可以充分利用物理设备进行水平扩展。
操作方法:
创建数据复制组 datagroup1
> var dataRG = db.createRG("datagroup1")
Note:
Sdb.createRG() 用于创建数据复制组,与编目复制组不同的是,该操作不会创建任何数据节点。
在该数据组中新增一个数据节点
> dataRG.createNode("sdbserver1",11820,"/opt/sequoiadb/database/data/11820")
SdbReplicaGroup.createNode() 用于创建节点,其中
host:指定数据节点的主机名;
service:指定数据节点的服务端口;用户需确保该端口号,以及往后延续的五个端口号未被占用。如端口号设置为 11820,应确保 11820/11821/11822/11823/11824/11825 端口都未被占用;
dbpath:数据文件路径用于存放数据节点的数据文件,需确保数据管理员(安装时创建,默认为 sdbadmin)用户有写权限;
config:该参数为可选参数,用于配置更多细节参数,格式必须为 json 格式,参数参见数据库配置一节;如需要配置日志大小参数{logfilesz:64}。
Note:
用户可以根据需要多次执行该命令在复制组中创建多个数据节点,每个复制组最多可创建七个数据节点。
启动数据节点
> dataRG.start()
如果复制组在创建时设定的副本数较少,随着物理设备的增加,可能需要增加副本数以提高复制组数据的可靠性。
操作方法:
获取数据复制组 datagroup1
> var dataRG = db.getRG("datagroup1")
创建一个新的数据节点
> var node1 = dataRG.createNode("sdbserver1",11830,"/opt/sequoiadb/database/data/11830")
启动新增的数据节点
> node1.start()
在 SDB Shell 中查看数据复制组 datagroup1 中数据节点的列表
> db.getRG("datagroup1").getDetailObj()
对于意外终止的节点:
.SEQUOIADB_STARTUP
隐藏文件;kill -9
),对于意外终止的节点,系统会将该数据节点置入崩溃恢复状态;对于没有被意外终止的节点:
.SEQUOIADB_STARTUP
隐藏文件;kill -15
),则进入增量同步状态,可参考数据复制;对于所有节点都被意外终止: