Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs 菜单
Docs 主页
/ /

shardDrainingStatus(数据库命令)

shardDrainingStatus

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

如果分片不存在,该命令将返回错误,否则将返回排干操作的状态。

要开始排干分片,请参阅startShardDraining 命令。

要停止排干分片,请参阅stopShardDraining 命令。

要删除已排空的分片,请参阅commitShardRemoval 命令。

8.3版本新增

此命令可用于以下环境中托管的部署:

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

注意

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

该命令具有以下语法:

db.adminCommand( {
shardDrainingStatus: <shard>
} )

此命令返回以下输出:

字段
类型
说明

msg

字符串

提供负载负载均衡器当前正在执行的排干操作。

state

字符串

提供排干操作的状态。

shard

字符串

指示排干分片。

remaining

文档

显示负载均衡器为清空分片而必须执行的剩余任务。

remaining.chunks

long

表示仍在分片上的数据段数。

remaining.dbs

long

指示仍在分片上的数据库数量。

remaining.jumboChunks

long

表示仍在分片上的大数据段的数量。

remaining.collectionsToMove

long

表示仍在分片上的集合数量。

note

字符串

为用户提供附加消息。

dbsToMove

阵列

指示排干分片用主分片的数据库。从集群中删除分片之前,必须使用movePrimary 命令手动将这些数据库移至新分片。

collectionsToMove

阵列

表示存储在排干分片上的未分片集合。从集群中删除分片之前,必须使用moveCollection 命令手动将这些集合移动到另一个分片。

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

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

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

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

要开始排干分片,请使用db.adminCommand() 方法运行startShardDraining 命令:

db.adminCommand( { startShardDraining: "shard04" } )

要检查排干操作的状态,请使用 shardDrainingStatus 命令:

db.adminCommand( { 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")
}
}
}

后退

shardCollection

在此页面上