面试题答案
一键面试- 连接到MongoDB分片集群的mongos实例:
- 使用
mongo
命令连接到mongos,例如mongo <mongos_host>:<mongos_port>
。
- 使用
- 确认要修改的分片:
- 使用
sh.status()
命令查看当前分片集群状态,确定要修改副本集配置的分片名称。
- 使用
- 连接到目标分片的主节点:
- 找到目标分片副本集主节点的地址(可以从
sh.status()
输出中获取),然后使用mongo <primary_host>:<primary_port>
连接到主节点。
- 找到目标分片副本集主节点的地址(可以从
- 添加新的从节点(操作在副本集主节点上执行):
- 使用
rs.add("<new_secondary_host>:<new_secondary_port>")
命令添加新的从节点。例如,若新从节点地址为192.168.1.100:27018
,则执行rs.add("192.168.1.100:27018")
。
- 使用
- 验证新节点是否成功加入:
- 在副本集主节点上使用
rs.status()
命令查看副本集状态,确认新节点已成功加入且状态正常。
- 在副本集主节点上使用
- 回到mongos实例:
- 重新连接到mongos实例(如果之前连接已断开),使用
mongo <mongos_host>:<mongos_port>
。
- 重新连接到mongos实例(如果之前连接已断开),使用
- 再次检查分片集群状态:
- 执行
sh.status()
命令,确保整个分片集群状态正常,且新节点加入未对集群造成异常影响。
- 执行
注意事项:
- 在执行上述操作前,建议备份相关数据,以防操作过程中出现意外数据丢失情况。
- 操作过程中如果遇到网络问题或权限问题,可能导致操作失败,需要根据具体报错信息排查解决。