面试题答案
一键面试- 确认分片集群状态:
- 使用
sh.status()
命令查看分片集群的当前状态,了解各个分片的分布和数据情况。这有助于确认要删除的分片以及对整个集群的影响。
- 使用
- 迁移数据:
- 运行
sh.movePrimary("<database>", "<source - shard>")
命令,将指定数据库的主分片从要删除的分片迁移到其他分片。这里<database>
是数据库名称,<source - shard>
是要删除的分片名称。此步骤确保要删除的分片上没有主数据。 - 执行
sh.flushRouterConfig()
刷新路由配置,使配置服务器更新相关信息。
- 运行
- 删除分片:
- 执行
sh.removeShard("<shard - name>")
命令删除指定的分片,<shard - name>
是要删除的分片名称。MongoDB会自动将该分片上的数据迁移到其他分片。 - 等待删除操作完成,可以通过
sh.status()
持续监控进度。当显示“finished successfully”时,表示分片已成功删除。
- 执行