停止移动集合
您可以使用 abortMoveCollection
命令来停止移动未分片的集合。
关于此任务
要停止正在进行的moveCollection
操作,请对admin
数据库运行abortMoveCollection
命令。
访问控制
如果您的部署启用了访问权限控制,则enableSharding
角色允许您运行abortMoveCollection
命令。
步骤
1
停止移动集合
要停止移动集合,请运行abortMoveCollection
命令。 以下示例停止正在进行的app.inventory
集合从shard01
到shard02
的移动。
db.adminCommand( { abortMoveCollection: "app.inventory" } )
运行abortMoveCollection
命令后,命令输出将返回ok: 1
,如下所示:
{ ok: 1, '$clusterTime': { clusterTime: Timestamp( { t: 1726524884, i: 28 } ), signature: { hash: Binary.createFromBase64('AAAAAAAAAAAAAAAAAAAAAAAAAAA=', 0), keyId: Long('0') } }, operationTime: Timestamp({ t: 1726524884, i: 28 }) }
2
确认移动操作已停止
要确认集合没有移动到新分分片,请使用$collStats
管道阶段。
以下示例展示如何确认app.inventory
集合仍在同一分片上:
db.inventory.aggregate( [ { $collStats: {} }, { $project: { "shard": 1 } } ] )
此管道阶段的输出类似于以下内容:
[ { shard: 'shard01' } ]