面试题答案
一键面试1. 规划节点
- 作用:确定副本集所需节点数量及角色(主节点、从节点、仲裁节点),合理分配资源,确保系统性能和高可用性。
- 注意事项:根据业务负载预估节点数量,一般建议奇数个仲裁节点以避免脑裂问题。同时考虑节点的硬件配置一致性,如CPU、内存、存储等。
2. 安装MongoDB
- 作用:为构建副本集提供基础软件环境。
- 注意事项:确保安装版本一致且符合业务需求,不同版本间可能存在兼容性问题。安装过程中注意配置文件路径、数据存储路径等参数设置。
3. 配置节点
- 配置文件设置
- 作用:通过配置文件定义每个节点的角色、数据存储路径、日志路径等关键信息。
- 注意事项:每个节点的
replSetName
必须相同,以标识属于同一副本集。合理设置bindIp
以确保节点间可通信,同时兼顾安全性。
- 启动节点
- 作用:使配置好的节点开始运行,为副本集初始化做准备。
- 注意事项:启动过程中检查日志,确保无报错信息,若有问题及时根据日志排查。
4. 初始化副本集
- 进入主节点MongoDB shell
- 作用:在主节点上执行初始化副本集操作。
- 注意事项:确保能成功连接到主节点的MongoDB shell。
- 执行初始化命令
- 作用:使用
rs.initiate()
命令并传入包含节点信息的配置文档,告知MongoDB各节点在副本集中的角色和地址等信息,开始副本集初始化。 - 注意事项:配置文档格式需正确,节点信息准确无误,包括节点的主机名和端口。初始化完成后可通过
rs.status()
命令检查副本集状态。
- 作用:使用
5. 添加从节点和仲裁节点
- 添加从节点
- 作用:增加数据冗余,提高读性能和系统容错能力。
- 注意事项:在主节点的MongoDB shell 中使用
rs.add()
命令添加从节点,确保新添加节点配置正确且能与主节点通信。添加后通过rs.status()
确认从节点状态。
- 添加仲裁节点
- 作用:参与选举,在主节点故障时决定新主节点,避免脑裂。
- 注意事项:在主节点使用
rs.addArb()
命令添加仲裁节点,仲裁节点不存储数据,硬件配置可相对较低,但需保证网络连通性。同样通过rs.status()
确认仲裁节点状态。