对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

将自管理分片集群转换为副本集

本教程介绍如何将分片集群转换为非分片副本集。要将副本集转换为分片集群,请参阅将自管理副本集转换为分片集群。有关分片的集群的更多信息,请参阅分片文档。

本教程将指导您完成以下任务:

  1. 禁用负载均衡器。

  2. 将集群转换为副本集。

  3. 解锁集群(仅适用于多分片集群)。

从MongoDB 8.0开始,您可以使用directShardOperations角色执行需要直接对分片执行命令的分片操作。

警告

使用 directShardOperations角色运行命令可能会导致集群停止正常工作,并可能导致数据损坏。仅将 directShardOperations角色用于维护目的或在MongoDB支持的指导下使用。执行完维护操作后,请停止使用 directShardOperations角色。

本教程中的步骤需要MongoDB 6.0 或更高版本。

fsync和fsyncUnlock 命令需要fsync 授权动作,可以通过hostManager 角色或自定义角色分配该操作。

通常不执行数据块迁移、重新分片和模式转换时转换集群。

从MongoDB 8.3 开始,之前分片的集群的副本集无法转换回分片的集群。

将分片集群转换为副本集时,会保留先前部署的分片元数据,包括分片身份document,以阻止其再次成为分片集群。如果您尝试将自管理转换回分片集群, MongoDB将返回错误。

要将此类副本集转换为分片的集群,联系技术支持。

对于只有一个分片的分片集群,该分片包含完整的数据集。要将该集群转换为非分片副本集:

1

要禁用负载均衡器:

  1. 将 mongosh 连接到分片集群中的 mongos实例。

  2. 要停止负载均衡器,运行:

    sh.stopBalancer()
  3. 要验证负载均衡器是否已禁用,运行以下命令并确保输出为 false:

    sh.getBalancerState()
2
  1. 停止所有 mongos 实例。

  2. 重新配置应用程序以直接连接将成为新副本集的分片的副本集节点。

  3. mongod对副本集节点进行滚动重启,从--shardsvr 中删除 选项。

    提示

    更改 --shardsvr 选项会更改 mongod 监听入程连接的端口。

单分片集群现在是一个非分片副本集,可以接受针对数据集的读写操作。您可以根据需要停用配置服务器。

管理分片集群负载均衡器

给本页内容打分