对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

sh.shardDrainingStatus()(mongosh方法)

sh.shardDrainingStatus(shardId)

显示排干分片的状态,即负载均衡器是否仍在将数据块移动到集群中的其他分片,或者该进程已完成。

9.0版本新增。

如果不指定 shardId,该方法将返回当前正在排干的所有分片的状态。

重要

mongosh 方法

本页介绍了mongosh 方法。这不是数据库命令或特定语言驱动程序(例如 Node.js)的文档。

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

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

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

注意

MongoDB Atlas不支持此命令。请参阅修改Atlas分片集群以在Atlas 集群中添加或删除分片。

sh.shardDrainingStatus( <shardId> )
Parameter
类型
说明

shardId

字符串

可选。要报告的排干分片的名称。如果省略,该方法将报告所有排干分片的情况。

有关输出字段,请参阅 shardDrainingStatus 命令。

如果已启用authorization ,则必须具有clusterManager角色或任何包含removeShard操作的角色。

分片集群中的每个数据库都有一个主分片。如果您要排空的分片也是集群数据库之一的主节点 (primary node in the replica set),则在迁移分片的所有数据后,您必须手动将数据库移动到新分片。有关更多信息,请参阅 movePrimary 命令和 从分片集群中删除分片。

未分片集合存储在单个分片上。如果其中一个集合位于要删除的分片上,则必须先将该集合迁移到其他分片。

要迁移未分片集合,请参阅 moveCollection 命令。

以下示例返回 shard04分片的排干状态:

sh.shardDrainingStatus( "shard04" )
{
msg: "draining ongoing",
state: "ongoing",
remaining: {
chunks: Long(2),
dbs: Long(2),
jumboChunks: Long(0),
collectionsToMove: Long(2)
},
shard: "shard04",
note: "you need to call moveCollection for collectionsToMove and afterwards movePrimary for the dbsToMove",
dbsToMove: [
"fizz",
"buzz"
],
collectionsToMove: [
"fizz.coll1",
"buzz.coll1"
],
ok: 1,
operationTime: Timestamp(1575399086, 1655),
$clusterTime: {
clusterTime: Timestamp(1575399086, 1655),
signature: {
hash: BinData(0,"XBrTmjMMe82fUtVLRm13GBVtRE8="),
keyId: Long("6766255701040824328")
}
}
}