Welcome 微信登录

首页 / 数据库 / MySQL / MongoDB 副本集搭建实现读写分享

副本集就是有自动故障恢复功能的主从集群。主从集群和副本集最为明显的区别就是副本集没有固定的主节点。可以把副本集当做一个集群,整个集群会选出一个主节点,当其不能正常工作时则会激活其它节点。系统:CentOS 5.6 x86_64mongo版本:mongodb-linux-x86_64-2.0.6.tgzServer1 10.0.1.121:20001server2 10.0.1.212:20001Arbiter 10.0.1.212:20002 
目录规划:数据目录和日志单分出来Server1:/mongodb/mlogs应用程序日志统计放到/usr/local/mongoServer2:/mongodb/mlogs/arbiter应用程序日志统计放到/usr/local/mongo 
部署:1.防火墙开启20001端口,关闭selinux 
2.分别在两台机器上安装mongo服务tar xf mongodb-linux-x86_64-2.0.6.tgz -C /usr/local/mongo3.创建key文件Server1:mkdir /etc/keysecho "test123456" > r0Server2:mkdir /etc/keysecho "test123456" > r1Arbiter:echo "test123456" > r2chmod 600 r0 r1 r24.分别启动Server1和Server2的mongo服务Server1:/usr/local/mongo/bin/mongod --replSet rs1 --keyFile /usr/local/mongo/key/r0 --port 20001 --fork --dbpath=/mongodb/ --logpath /mlogs/Server1.log--fork为后台启动netstat -tunlp | grep mongo  查看端口是否被开启加入到开机启动脚本 /etc/rc.localServer2:/usr/local/mongo/bin/mongod --replSet rs1 --keyFile /usr/local/mongo/key/r1 --port 20001 --fork --dbpath=/mongodb/ --logpath /mlogs/Server2.lognetstat -tunlp | grep mongo  查看端口是否被开启 
/usr/local/mongo/bin/mongod --replSet rs1 --keyFile /usr/local/mongo/key/r2 --port 20002 --fork --dbpath=/arbiter --logpath /mlogs/arbiter.log 
加入到开机启动脚本 /etc/rc.local使机器重启后继续生效 
选项:--only在从节点上指定复制某个数据库(默认复制所有数据库)--slavedelay用在从节点上,当应用主节点的操作时增加延时(秒)--fastsync以主节点的数据快照为基础启动从节点,如果数据目录一开始是主节点的数据快照,从节点用这个选项启动要比完整同步快多了--autoresync如果从节点与主节点不同步,则自动重新同步--oplogSize主节点oplog的大小(MB)5.配置及初始化Replica Sets > config_pongo={..._id:"pongo",members:[...{_id:0,host:"10.0.1.121:20001",priority:1},    #如果有多个节点继续往下增加...{_id:1,host:"10.0.1.212:20001",priority:2},...{_id:2,host:"10.0.1.212:20002",arbiterOnly : true}]...}rs.initiate(config_rs1); 初始化Replica Sets 
注:关于扩展节点和添加仲裁设备请看最下方、副本集中节点的类型standard:常规节点,它存储一份完整的数据副本,参与选举投票可以成为活跃节点。passive:存储了完整的数据副本,参与投票,不能成为活跃节点。arbiter:仲裁者只参与投票,不能接受复制数据,也不能成为活跃节点。每个参与节点(非仲裁者)都有个优先权,优先权为0是被动的,不能成为活跃节点,优先值不为0,则按照大小选出活跃节点。如果2个值一样,则数据最新的为活跃节点。在节点配置中修改priority键,来配置成标准节点或被动节点。 
注:如果配置成功master会变成PRIMARY  slave会变成SECONDARY 
6.使用rs.status()查看副本集的状态信息 
"health" : 1,                        --1表明正常; 0表明异常、"state" : 1,                          -- 1表明是Primary; 2 表明是Secondary;"stateStr" : "PRIMARY",      --表明此机器是主库
  • 1
  • 2
  • 下一页
Oracle 分区交换-归档数据MySQL 定时备份操作相关资讯      MongoDB  MongoDB副本集  MongoDB读写 
  • MongoDB 搭建副本集(Replica Set  (今 07:51)
  • MongoDB的副本集节点角色介绍及选  (06月13日)
  • MongoDB集群上副本集(replica set  (04月10日)
  • MongoDB副本集实现及读写分离  (06月13日)
  • MongoDB 复制(副本集)  (04月14日)
  • MongoDB 副本集+分片 架构部署  (04月10日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
    版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图