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

Posted

tags:

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

一:mongodb副本集介绍

早期版本使用master-slave,一主一从和mysql类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主
目前已经淘汰master-slave模式,改为副本集,这种模式下有一个主(primary),和多个从(secondary),只读。支持给它们设置权重,当主宕掉后,权重最高的从切换为主
在此架构中还可以建立一个仲裁(arbiter)的角色,它只负责裁决,而不存储数据
再此架构中读写数据都是在主上,要想实现负载均衡的目的需要手动指定读库的目标server
技术分享图片
技术分享图片

二:mongodb副本集搭建

三台机器: 192.168.133.130(primary) 192.168.133.132(secondary) 192.168.133.133(secondary)
编辑三台机器的配置文件,更改或增加:
replication://把此行前面的#删除
##oplog大小
oplogSizeMB: 20//前面有两个空格
##复制集名称
replSetName: aminglinux//前面有两个空格
分别重启三台机器
连接主,在主上运行命令mongo

use admin
config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}
rs.initiate(config)
rs.status() //查看状态
如果两个从上的状态为"stateStr" : "STARTUP", 则需要进行如下操作
var config={_id:"aminglinux",members:[{_id:0,host:"192.168.133.130:27017"},{_id:1,host:"192.168.133.132:27017"},{_id:2,host:"192.168.133.133:27017"}]}
rs.reconfig(config)
此时再次查看rs.status()会发现从的状态变为SECONDARY

三:mongodb副本集测试

主上建库,建集合

use mydb
db.acc.insert({AccountID:1,UserName:"123",password:"123456"})
show dbs
从上查看
show dbs
若出现错误Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" },需要执行
rs.slaveok()

以上是关于mongodb副本集介绍mongodb副本集搭建mongodb副本集测试的主要内容,如果未能解决你的问题,请参考以下文章

2.33mongodb副本集介绍~ 搭建以及测试

Mongodb集群架构之副本集

MongoDB 3.2.8 副本集搭建

mongodb学习之:副本集

在centos7上搭建mongodb副本集

mongodb3.6集群搭建:分片+副本集