Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

balancerCollectionStatus

在此页面上

  • 定义
  • 访问控制
  • 输出文档
  • 例子
balancerCollectionStatus

返回一个文档,其中包含有关分片collection的数据块是否平衡的信息(即 不需要移动),或者由于排干、区域违规或数据块不平衡而需要移动。

您只能对admin数据库发出 balancerCollectionStatus

提示

mongosh中,该命令也可以通过 sh.balancerCollectionStatus()辅助方法运行。

辅助方法对 mongosh 用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。

该命令采用以下形式:

db.adminCommand( { balancerCollectionStatus: "<db>.<collection>" } )

指定分片集合的完整命名空间(“<db>.<collection>”)。

mongosh提供了包装器方法sh.balancerCollectionStatus()

使用访问控制运行时,用户必须对enableSharding 数据库和/或集合 具有 操作权限才能运行命令。也就是说,用户必须具有授予以下 权限 的 角色

{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }

内置 clusterManager 角色提供了相应的特权。

以下是该命令返回的文档示例:

{
"balancerCompliant" : false,
"firstComplianceViolation" : "chunksImbalance",
"ok" : 1,
"operationTime" : Timestamp(1583192967, 16),
"$clusterTime" : {
"clusterTime" : Timestamp(1583192967, 16),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
字段
说明
"balancerCompliant"
一个布尔值,表示数据块是不需要移动 ( true ) 还是需要移动 ( false )。
"firstComplianceViolation"

一个字符串,表示需要移动此命名空间的数据块的原因。该字段仅当"balancerCompliant"false时才可用。

可能的值为:

说明
"draining"

删除分片操作正在进行中,MongoDB 必须将已删除分片中的数据段排出到其他分片。

注意

如果"firstComplianceViolation"返回"draining" ,则还可能由于"zoneViolation"而存在待处理的数据块迁移。

"zoneViolation"

数据块违反了为分片定义的区域范围

注意

如果"firstComplianceViolation"响应为"zoneViolation" ,则还可能由于"chunksImbalance"而存在待处理的数据块迁移。

"chunksImbalance"
拥有最多集合数据段的分片与拥有最少集合数据段的分片之间的数据段数量差值超过迁移阈值。

除了特定于命令的返回字段之外,该命令还返回操作的ok状态字段、 operationTime字段和$clusterTime字段。 有关这些字段的详细信息,请参阅响应。

要检查分片集合test.contacts的数据段当前是否均衡,请连接到mongos实例并发出以下命令:

db.adminCommand( { balancerCollectionStatus: "test.contacts" } )

如果不需要移动集合的数据段,该命令将返回类似于以下内容的输出:

{
"balancerCompliant" : true,
"ok" : 1,
"operationTime" : Timestamp(1583193238, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1583193238, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}

后退

addShardToZone

来年

balancerStart