3.Mongodb 复制集RS
2024/12/23 6:15:28
来源:https://blog.csdn.net/2302_77503226/article/details/139603513
浏览:
次
关键词:3.Mongodb 复制集RS
- MongoDB复制集是Mongodb提供的一种高可用和数据冗余的解决方案,复制集由多个MongoDB服务器组成,其中一个服务器作为主节点(Primary),处理所有写操作,而其他服务器作为从节点(Secondary)同步主节点的数据。
- 如果主节点不可用,复制集将紫东阁进行选举,提升一个从节点为新的主节点,确保服务器的连续性和数据的一致性。
- MongdoDB复制集的基本原理:
- Primary节点将数据修改操作记录到本地的oplog(操作日志,在local库下)中,Seconday节点定期到Primary节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证Seconday与Primary数据一致。
-
- 三类节点:
- 1.主节点(Primary)
- 主节点将所有的操作都记录在操作日志(oplog)中,从节点通过复制这个日志来保持数据的一致性
- 2.从节点(Secondary):
- 如果主节点不可用,复制集将自动选举一个从节点作为新的主节点
- 3.仲裁者节点(Arbiter)
- 主要作用是在选举过程中参与投票,以确保复制集能够快速进行故障转移
- 仲裁者节点是一个轻量级的进程,不需要太多的系统资源
- 实验准备环境:
-
- 实验步骤:
- 创建多实例目录和配置文件:
- mkdir -p /mongodb/28017/conf /mongodb/28017/data /mongodb/28017/log
- mkdir -p /mongodb/28018/conf /mongodb/28018/data /mongodb/28018/log
- mkdir -p /mongodb/28019/conf /mongodb/28019/data /mongodb/28019/log
- mkdir -p /mongodb/28020/conf /mongodb/28020/data /mongodb/28020/log
- 配置文件:
- cat > /mongodb/28017/conf/mongod.conf <<EOF
- path: /mongodb/28017/log/mongodb.log
- dbPath: /mongodb/28017/data
- directoryForIndexes: true
- bindIp: 192.168.8.5,127.0.0.1
- cp /mongodb/28017/conf/mongod.conf /mongodb/28018/conf/
- cp /mongodb/28017/conf/mongod.conf /mongodb/28019/conf/
- cp /mongodb/28017/conf/mongod.conf /mongodb/28020/conf/
- sed 's#28017#28018#g' /mongodb/28018/conf/mongod.conf -i
- sed 's#28017#28019#g' /mongodb/28019/conf/mongod.conf -i
- sed 's#28017#28020#g' /mongodb/28020/conf/mongod.conf -i
- 启动每个实例:
- mongod -f /mongodb/28017/conf/mongod.conf
- mongod -f /mongodb/28018/conf/mongod.conf
- mongod -f /mongodb/28019/conf/mongod.conf
- mongod -f /mongodb/28020/conf/mongod.conf
- 配置普通复制集:
- 创建主从:
- config = {_id: 'my_repl', members: [
- {_id: 0, host: '192.168.8.5:28017'},
- {_id: 1, host: '192.168.8.5:28018'},
- {_id: 2, host: '192.168.8.5:28019'},
- {_id: 3, host: '192.168.8.5:28020'}]
- 复制集管理操作:
- 查看复制集状态
- rs.isMaster(); // 查看当前是否是主节点
- 添加删除节点
- rs.remove("ip:port"); // 删除一个节点
- rs.add("ip:port"); // 新增从节点
- rs.addArb("ip:port"); // 新增仲裁节点
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com