SequoiaDB 简介						 
					
						快速入门						 
					
						安装部署						 
					
						数据库实例						 
					
						分布式引擎						 
					
						SAC 管控中心						 
					
						SequoiaPerf 性能分析工具						 
					
						参考手册						 
					
						常见问题及解答(FAQ)						 
					
						版本信息						 
					
getSlave - 获取当前复制组的备节点
rg.getSlave([positions])
SdbReplicaGroup
获取当前复制组的备节点。
positions ( Int32, 选填 )
节点位置。目前,节点位置定义为该节点在 catalog 元数据的 "Group" 数组中的位置。其起始值为1,范围为[1,7]。最多只能输入7个不重复的、有效节点位置。若指定的节点位置大于复制组的节点数,这些节点位置将按照公式 (position - 1) % nodeCount + 1 进行转换。
成功:返回 SdbNode 对象。
失败:抛出异常。
Note:
getSlave()函数常见异常如下:
| 错误码 | 错误类型 | 描述 | 解决方法 | 
|---|---|---|---|
| -6 | SDB_INVALIDARG | 参数错误。 | 输入的节点位置参数有误。 | 
| -10 | SDB_SYS | 系统错误。 | 一般由 catalog 元素数据变更后,驱动无法解析元数据导致。 | 
| -154 | SDB_CLS_GRP_NOT_EXIST | 分区组不存在。 | 检查分区组是否存在。 | 
| -158 | SDB_CLS_EMPTY_GROUP | 分区组为空。 | 检查分区组是否包含任何节点。 | 
当异常抛出时,可以通过getLastError()获取错误码, 或通过getLastErrMsg()获取错误信息。 可以参考常见错误处理指南了解更多内容。
获取 group1 复制组的备节点。
> var rg = db.getRG("group1")
> rg.getSlave()
hostname1:42000group1 复制组信息如下:
> db.list(SDB_LIST_GROUPS, {"GroupName":"group1"})
{
    "Group": [
    {
    "HostName": "hostname1",
    "Status": 1,
    "dbpath": "/sequoiadb/database/40000/",
    "Service": [
        {
        "Type": 0,
        "Name": "40000"
        },
        {
        "Type": 1,
        "Name": "40001"
        },
        {
        "Type": 2,
        "Name": "40002"
        }
    ],
    "NodeID": 1001
    },
    {
    "HostName": "hostname1",
    "Status": 1,
    "dbpath": "/sequoiadb/database/41000/",
    "Service": [
        {
        "Type": 0,
        "Name": "41000"
        },
        {
        "Type": 1,
        "Name": "41001"
        },
        {
        "Type": 2,
        "Name": "41002"
        }
    ],
    "NodeID": 1002
    },
    {
    "HostName": "hostname1",
    "Status": 1,
    "dbpath": "/sequoiadb/database/42000/",
    "Service": [
        {
        "Type": 0,
        "Name": "42000"
        },
        {
        "Type": 1,
        "Name": "42001"
        },
        {
        "Type": 2,
        "Name": "42002"
        }
    ],
    "NodeID": 1003
    }
    ],
    "GroupID": 1001,
    "GroupName": "group1",
    "PrimaryNode": 1002,
    "Role": 0,
    "SecretID": 1425460557,
    "Status": 1,
    "Version": 7,
    "_id": {
    "$oid": "5a045460c517f3cf06a32976"
    }
}
其中,节点为:
hostname1:40000(备节点,节点位置为1);
hostname1:41000(主节点,节点位置为2);
hostname1:42000(备节点,节点位置为3);
从 group1 复制组中,随机获取位置1和位置2节点中的备节点:
> var rg = db.getRG("group1")
> rg.getSlave(1,2)
hostname1:40000 展开
            展开
          
   
   
   
   
   
   
   
