createNode()

语法

rg.createNode( <host>, <service>, <dbpath>, [config] )

在当前分区组中创建节点。

Note:只有在分区组启动之后,才能创建节点。

参数描述

参数名参数类型描述是否必填
hoststring指定节点的主机名。
serviceint/string节点端口号。
dbpathstring1. 数据文件路径,用于存放节点数据文件,请确保数据管理员(安装时创建,默认为sdbadmin)用户有写权限; 2. 如果配置路径不以“/”开头,数据文件存放路径将是数据库管理员用户(默认为sdbadmin)的主目录(默认为/home/sequoiadb)+ 配置的路径。
configJson 对象节点配置信息,如配置日志大小,是否打开事务等,具体可参考数据库配置

Note:rg.createNode() 方法的定义格式有四个参数:host,service,dbpath,config,如上表所示,host,dbpath 为字符串类型,Service 类型支持 int 或 string ,必填;最后一个是 Json 对象,选填。格式:( "<主机名>", "<端口号>", "<节点路径>, "[ { : value, … } ] )

返回值

无返回值,出错抛异常,并输出错误信息。可以通过 getLastErrMsg 获取错误信息,或通过 getLastError 获取错误码。关于错误处理可以参考 常见错误处理指南

错误

错误信息记录在节点诊断日志(diaglog)中,可参考错误码

错误码可能的原因解决方法
-15网络错误1. 检查 sdbcm 状态是否正常,如果状态异常,可以尝试重启; 2. 检查 host 是否正确,网络是否能正常通信。
-145节点已存在检查节点是否存在。
-157节点配置冲突执行 netstat 命令检查节点端口是否已被占用。
-3权限错误检查节点路径是否正确,路径权限是否正确。

示例

在分区组 group1 中创建一个 "hostname1:11830" 的节点,指定日志文件大小为64MB

  1. > var rg = db.getRG("group1")
  2. > rg.createNode( "hostname1", 11830, "/opt/sequoiadb/database/data/11830", { logfilesz: 64 } )

Note:一个分区组中能创建多个节点,每个节点需要预留至少3个顺延的端口。因为系统为每个节点后台控制了3个通信接口。