• detachNode()
    • 语法
    • 参数描述
    • options选项
    • 返回值
    • 错误
    • 示例

    detachNode()

    语法

    rg.detachNode( <host>, <service>, <options> )

    分离当前分区组内的一个节点,其配置信息不会被删除。搭配 rg.attachNode()使用。目前可以支持从数据组或者编目组中分离节点。

    参数描述

    参数名参数类型描述是否必填
    hoststring节点的主机名或者主机 IP。
    servicestring节点服务名或者端口。
    optionsJson 对象详见如下options选项说明。

    options选项

    参数名参数类型描述默认值
    KeepDatabool是否保留目标节点原有的数据。无默认值,需用户显式指定。
    Enforcedbool是否强制分离节点false

    Note:

    1. 参数 options 中的 KeepData 字段为必填项,需用户显式指定。由于该选项会决定被detach的节点的数据是否继续被保留,用户应该谨慎考虑。
    2. 主节点或分区组内只有一个节点时,该节点将不能被 detach,如需强制删除请使用 Enforced 参数。
    3. 分离后的节点将不再受集群管理,请尽快加入到其他复制组中。

    返回值

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

    错误

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

    错误码可能的原因解决方法
    -15网络错误1. 检查 sdbcm 状态是否正常;2. 检查 host 是否正确,网络是否能正常通信。
    -155节点不属于当前复制组检查节点是否属于当前复制组。
    -204尝试分离主节点,或者组内最后一个节点如果需要强制删除,可以加入 { Enforced: true } 选项。

    示例

    见 rg.attachNode() 中示例说明。