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

停止对集合取消分片

在此页面上

  • 关于此任务
  • 访问控制
  • 步骤
  • 了解详情

您可以使用 abortUnshardCollection命令停止对分分片的集合进行取消分片。

要停止正在进行的unshardCollection操作,请运行abortUnshardCollection命令。

注意

取消分片是一个写入密集型进程,可以提高oplog的速率。您可能希望:

  • 设置固定的 oplog 大小以防止 oplog 无限增长。

  • 增加 oplog 大小以最大限度地减少一个或多个从节点过时的可能性。

有关更多详细信息,请参阅副本集 Oplog 文档。

您可以对以下环境中托管的部署执行此任务:

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

注意

此任务在Atlas共享层或Atlas Serverless 上不可用。

如果您的部署启用了访问权限控制,则enableSharding角色会授予您运行abortUnshardCollection命令的访问权限。

1

要停止对集合取消分片,请运行abortUnshardCollection命令。以下示例停止对sales数据库中的us_accounts执行unshardCollection操作:

db.adminCommand( {
abortUnshardCollection: "sales.us_accounts",
} )
2

要确认unshardCollection操作已停止,请使用sh.status()方法:

sh.status()

此示例输出显示使用其分片的分分片键进行分片的集合:

collections: {
'sales.us_accounts': {
shardKey: { account_number: 1 },
unique: false,
balancing: true,
chunkMetadata: [
{ shard: 'shard-0', nChunks: 1 },
{ shard: 'shard-1', nChunks: 1 }
],
chunks: [
{ min: { _id: MinKey() }, max: { _id: Long('0') }, 'on shard': 'shard-0', 'last modified': Timestamp({ t: 1, i: 0 }) },
{ min: { _id: Long('0') }, max: { _id: MaxKey() }, 'on shard': 'shard-1', 'last modified': Timestamp({ t: 1, i: 1 }) }
],
... }
... }

后退

对集合取消分片