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

停止取消分片集合

本页内容

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

您可以使用以下方式停止取消分片分片集合:abortUnshardCollection 命令。

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

注意

解分片是一个写密集型过程,可能会导致操作日志(oplog)的速率增加。您可能需要

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

  • 增加oplog大小以最小化一个或多个二级节点变旧的几率。

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

您可以在以下环境中执行此任务

  • MongoDB Atlas:云中MongoDB部署的全托管服务

注意

此任务在Atlas共享层或Atlas无服务器上不可用。

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

1

要停止集合的分片,运行 abortUnshardCollection 命令。以下示例停止了 sales 数据库中 us_accountsunshardCollection 操作

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 }) }
],
... }
... }

返回

取消分片集合