面试题答案
一键面试关键步骤及作用
- 规划与准备
- 作用:确定要添加的服务器角色(如主节点、从节点或仲裁节点),确保新服务器的硬件、网络、操作系统等环境满足 MongoDB 运行要求。例如,新服务器的磁盘空间要足够存储数据,网络要能与现有副本集成员正常通信。
- 常见问题:新服务器硬件资源不足,如内存过小可能导致 MongoDB 运行缓慢甚至崩溃;网络配置错误,如防火墙阻止了 MongoDB 节点间的通信端口。
- 配置文件修改
- 作用:在新服务器上创建并配置 MongoDB 的配置文件,设置
replSetName
与现有副本集名称一致,指定数据存储路径、日志路径等参数。这确保新服务器能正确加入到指定的副本集中,并按设定的参数运行。 - 常见问题:配置参数设置错误,例如
replSetName
与现有副本集不一致,导致无法加入;数据存储路径权限不足,MongoDB 无法写入数据。
- 作用:在新服务器上创建并配置 MongoDB 的配置文件,设置
- 启动 MongoDB 服务
- 作用:启动新服务器上的 MongoDB 服务进程,使其开始监听客户端连接和副本集内部通信。
- 常见问题:服务启动失败,可能是因为配置文件错误,或者依赖的系统服务未正常运行,如磁盘空间已满导致 MongoDB 无法启动。
- 连接到现有副本集
- 作用:从副本集的主节点连接到新服务器的 MongoDB 实例,通过
rs.add()
或rs.addArb()
方法将新服务器添加到副本集。rs.add()
用于添加数据承载节点(主节点或从节点),rs.addArb()
用于添加仲裁节点。 - 常见问题:连接失败,可能是由于网络问题,或者新服务器的 MongoDB 服务未正确监听指定端口;添加节点时权限不足,如当前用户没有执行添加操作的权限。
- 作用:从副本集的主节点连接到新服务器的 MongoDB 实例,通过
- 等待同步
- 作用:新节点添加成功后,会开始从主节点同步数据,使其数据状态与副本集其他成员保持一致。这确保副本集的数据一致性和高可用性。
- 常见问题:同步缓慢或失败,可能是网络带宽不足影响数据传输速度;也可能是数据量过大,同步过程中出现网络中断等情况导致同步失败。
仲裁节点添加特殊说明
- 添加步骤
- 作用:仲裁节点不存储数据,仅参与副本集的选举过程,决定主节点。使用
rs.addArb()
方法添加仲裁节点,其配置相对简单,无需大量硬件资源。 - 常见问题:仲裁节点无法正常参与选举,可能是网络问题导致与其他节点通信不畅;或者仲裁节点版本与其他副本集成员不兼容。
- 作用:仲裁节点不存储数据,仅参与副本集的选举过程,决定主节点。使用