mongodb 主从搭建

一、mondodb 副本集
      primary(主) secondary(从),可以设置权重
      arbiter(仲裁)只负责裁决,不存储数据
      
     从的机子上:
      vim /etc/mongod.conf 添加
     replication:
     #oplog大小
       oplogSizeMB: 20
     #复制集名称
       replSetName:  aminglinux
     
     重启 /etc/init.d/mongod restart

     到主的机子上:
     mongo
     > use admin
     > config={_id:"adminglinux",members:[{_id:0,host:"192.168.32.111:27017"},{_id:1,host:"192.168.32.112:27017"}]}
     _id 副本集名字,members:从的机子
     > rs.initiate(config)  加载 config
     > rs.status() 如果有将从机子加进去,就不用下面的命令
     > rs.add("192.168.32.112")
     > rs.config()  查看相关的配置

     如果配置成功之后,mongo 进入之后主会有 promary, 从会有 secondry
     > var config=....
     > rs.reconfig(config) 重新加载

二、副本集测试
     主上面:
     > use mydb
     > db.createCollection('testc')
     > show dbs
     
     从上面:
     > show dbs 失败,因为没有权限
     > rs.slaveOk()  赋予从权限
     > show dbs 可以查看
     > use mydb
     > show tables
     
     主上面:
     > rs.status()  查看从的health 如果是1 就说明是健康的
     > rs.config()  查看权重 (priority),权重越高就会变成主
     
     > cfg=rs.conf()
     > cfg.members[0].priority = 3  设置第一个从机子上的权重为 3
     > rs.reconfig(cfg)
     > rs.config()  此时查看从的权重是否不同

     禁掉主上面的端口
     iptables -I INPUT -p tcp  --dport 27017 -j DROP
     

     从上面:
     权重最高的从变成主,此时查看 rs.status() 就会看到原来的主 health 变成 0

      主上面:
      iptables -D INPUT -p tcp  --dport 27017 -j DROP
      主恢复之后,从上面添加的数据会自动添加到主上面

你可能感兴趣的:(mongodb,主从)