搭建 MongoDB 副本集步骤
- 规划成员节点:确定副本集成员数量及角色,通常包含一个主节点(Primary),多个从节点(Secondary),还可选择配置一个仲裁节点(Arbiter)。
- 配置文件设置:为每个成员节点创建独立配置文件,例如:
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 0.0.0.0
port: 27017
replication:
replSetName: <副本集名称>
- 启动节点:使用配置文件启动每个节点,如
mongod -f <配置文件路径>
。
- 初始化副本集:登录到其中一个节点的 mongo shell,运行如下命令初始化副本集:
rs.initiate({
_id: "<副本集名称>",
members: [
{ _id: 0, host: "节点1地址:端口" },
{ _id: 1, host: "节点2地址:端口" },
// 更多节点...
]
})
搭建过程注意事项
- 网络连通性:确保各节点间网络畅通,能相互通信。
- 数据目录独立:每个节点的数据目录应相互独立,避免数据冲突。
- 版本一致性:所有节点的 MongoDB 版本应尽量保持一致,以免出现兼容性问题。
- 资源分配:合理分配每个节点的硬件资源,确保节点稳定运行。
故障转移机制
- 心跳检测:副本集成员通过心跳机制相互监测状态,主节点周期性向从节点发送心跳信息,从节点也会向主节点及其他从节点发送心跳。
- 选举机制:当主节点出现故障,从节点会发起选举。选举遵循一定规则,如数据最新的节点优先被选,具有较高优先级(priority)的节点优先被选等。只有符合条件的从节点才有资格参与选举。一旦选举成功,新的主节点产生,副本集恢复正常工作,从节点开始从新主节点同步数据。