SequoiaDB 简介
快速入门
安装部署
数据库实例
分布式引擎
SAC 管控中心
SequoiaPerf 性能分析工具
参考手册
常见问题及解答(FAQ)
版本信息
setLocation - 修改集群中节点的位置信息
SdbDC.setLocation(<hostName>, <location>, [options])
SdbDC
该函数用于修改集群中指定主机上节点的位置信息。
hostName( string,必填 )
要修改位置信息的主机名。指定的主机名需存在于当前集群中,该主机上所有节点的位置信息都会被修改。
location( string,必填 )
新的位置信息。
options( object,选填 )
通过参数 options 可以指定过滤条件:
Domain( string | string array ):按域过滤,仅对属于指定域的数据组执行操作。可以指定单个域名或域名数组
格式:Domain: "mydomain" 或 Domain: ["domain1", "domain2"]
函数执行成功时,返回一个 BSON 对象,包含以下字段:
| 字段名 | 类型 | 描述 |
|---|---|---|
| MatchedNum | number | 匹配的复制组数量 |
| SucceedNum | number | 成功修改位置信息的复制组数量 |
| IgnoredNum | number | 被忽略的复制组数量 |
| FailedNum | number | 修改失败的复制组数量 |
| FailedGroups | array | 修改失败的复制组名称列表(当 FailedNum > 0 时返回) |
函数执行失败时,将抛异常并输出错误信息。
setLocation() 函数常见异常如下:
| 错误码 | 错误类型 | 可能发生的原因 | 解决办法 |
|---|---|---|---|
| -6 | SDB_INVALIDARG | 参数类型错误或位置名称长度超过256字节 | 检查参数类型和位置名称长度是否正确 |
| -259 | SDB_OUT_OF_BOUND | 未指定必填参数 HostName 或 Location | 检查是否缺失必填参数 |
当异常抛出时,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误码。更多错误处理可以参考常见错误处理指南。
v3.6.1 及以上版本
示例1: 将指定主机上节点的位置信息修改为"GuangZhou"
> var dc = db.getDC()
> dc.setLocation("sdbserver", "GuangZhou")
{
"MatchedNum": 2,
"SucceedNum": 2,
"IgnoredNum": 0,
"FailedNum": 0
}
示例2: 删除指定主机上节点的位置信息
> var dc = db.getDC()
> dc.setLocation("sdbserver", "")
{
"MatchedNum": 2,
"SucceedNum": 2,
"IgnoredNum": 0,
"FailedNum": 0
}
示例3: 仅对指定域的数据组修改位置信息
> var dc = db.getDC()
> dc.setLocation("sdbserver", "GuangZhou", {Domain: "mydomain"})
{
"MatchedNum": 2,
"SucceedNum": 2,
"IgnoredNum": 0,
"FailedNum": 0
}
示例4: 修改位置信息时部分复制组失败的情况
> var dc = db.getDC()
> dc.setLocation("sdbserver", "Beijing")
{
"MatchedNum": 3,
"SucceedNum": 1,
"IgnoredNum": 0,
"FailedNum": 2,
"FailedGroups": ["group1", "group2"]
}
展开