文档菜单
文档首页
/
MongoDB 手册
/ / /

停止移动集合

本页内容

  • 关于此任务
  • 访问控制
  • 步骤
  • 了解更多

您可以使用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' } ]

返回

具有可移动集合的多租户架构