mongodb----副本集搭建及故障自动切换

Posted 光を追うのCaius

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb----副本集搭建及故障自动切换相关的知识,希望对你有一定的参考价值。

mongodb副本集搭建

mongodb单台服务器

数据会有丢失的风险

单台服务器无法做高可用

mongodb副本集能够预防数据丢失,多台mongodb数据一致。

mongodb副本集能够在有问题的时候自动切换。

 

每台服务器的内核设置必须一样,不然可能会报错。

mongodb配置

systemLog:
  destination: file #日志路径
  logAppend: true #每次启动用追加的模式生成日志
  path: /data/mongodb/27017/mongodb.log
storage:
  dbPath: /data/mongodb/27017/
journal:
  enabled: true #数据日志,避免数据丢失
processManagement:
  fork: true
net:
  port: 27017
  bindIp: 127.0.0.1,172.16.1.51 #监听的ip
replication:
  replSetName: liangqicong

 

进入mongodb

设置变量

 config = {_id:"liangqicong",members:[{ _id:0,host:"172.16.1.51:27017" },{ _id:1,host:"172.16.1.52:27017" },{ _id:2,host:"172.16.1.53:27017" }]}

初始化副本集

rs.initiate(config);  #需要一定时间

rs.status()  #查看集群状态   集群只有一个primary,其他都是secondary,secondary是不允许读写的,如果非要解决,可以输入命令rs.slaveOk()。

rs.slaveOk()  #声明slave

rs.printSlaveReplicationInfo()  #查看slave的延时状况

 

mongodb的副本集故障自动切换

mongodb的切换是全自动的,当主挂掉之后从自然后替代上来,无需配置和干预。

 

mongodb的副本集优先级

默认的权重都是1

rs.config()  #查看当前配置

conf = rs.config() #将当前配置赋值给conf这个变量

conf.members[0].priority= 10  #将配置里面的第一个数组(member0)里面的priority设置成10

conf.members[1].priority= 5

conf.members[2].priority= 2

重新读取配置

rs.reconfig(conf)

以上是关于mongodb----副本集搭建及故障自动切换的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb副本集实现及读写分离

MongoDB 搭建副本集

MongoDB 搭建副本集

mongodb副本集介绍mongodb副本集搭建mongodb副本集测试

MongoDB复制集/副本集(Replica Set)搭建

mongodb 副本集搭建