• createNode()
    • 语法
    • 参数描述
    • 返回值
    • 错误
    • 示例

    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个通信接口。