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

sh.balancerCollectionStatus()

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 访问控制
  • 示例
sh.balancerCollectionStatus(namespace)

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

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。

有关数据库命令,请参阅 balancerCollectionStatus 命令。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。

sh.balancerCollectionStatus()具有以下形式:

sh.balancerCollectionStatus( <namespace> )

sh.balancerCollectionStatus()方法采用以下参数:

Parameter
类型
说明
字符串

要分片的集合的命名空间,格式为 "<database>.<collection>"

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

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

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

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

sh.balancerCollectionStatus("test.contacts")

如果不需要移动collection的数据块,该方法将返回类似于以下内容的输出:

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

如果所查询的命名空间正在进行数据段碎片整理,则sh.balancerCollectionStatus方法将返回类似于以下内容的输出:

{
"chunkSize": Long("128"),
"balancerCompliant": false,
"firstComplianceViolation": "defragmentingChunks",
"details": {
"currentPhase": "moveAndMergeChunks",
"progress": { "remainingChunksToProcess": 1 }
}
}

注意

数据块碎片整理分多个阶段进行。progress字段仅与当前阶段相关。

有关输出的说明,请参阅balancerCollectionStatus 输出。

后退

sh.addTagRange