一、mongodb单实例。这种配置只适合简易开发时使用,生产使用不行,因为单节点挂掉整个数据业务全挂,如下图。
虽然不能生产使用,但这个模式可以快速搭建启动,并且能够用mongodb的命令操作数据库。方法参加Mongo基础。
二、主从模式。使用mysql数据库时大家广泛用到,采用双机备份后主节点挂掉了后从节点可以接替主机继续服务。所以这种模式比单节点的高可用性要好很多。
下面看一下怎么一步步搭建一个mongodb的主从复制节点:
1、准备2个虚拟机,一个作为主服务器(192.168.4.198),一个作为从服务器(192.168.4.199),两个虚拟机都存在Mongo包。并分别在两个虚拟机上创建数据库存放文件夹。 /home/weixla/dada/db
2、启动主节点。 /home/weixla/mongodb-3.4.0/bin/mongod -dbpath /home/weixla/data/db -master
/home/weixla/mongodb-3.4.0/bin/mongod -dbpath /home/weixla/data/db -slave -source 192.168.4.198:27017
4、测试
重新打开一个客户端,并连接到主节点,在主节点插入一个文档。
再打开一个客户端,连接到从节点,查询user集合,出现以下情况。
通过以下命令可以打开读的权限
rs.slaveOk()
从结果可以看到,从节点也出现了这条数据,并且自动生成的_id也是相同的。
5、主从节点数据一致性测试
首先停掉从服务器,之后在主节点再新加一条文档,如下图。
再次启动从节点,进行查询,如下图
从节点数据也是保存了同步。
6、故障转移测试
现在两台服务器如果主服务器挂掉了,从服务器可以正常运转吗?
首先停掉主节点,从服务器不停的扫描
这个时候依然可以查询从服务器
注意,这个时候向从服务器写入会提示如下信息
看起来从服务器没有自动接替主服务器的功能,只有手工处理了!
手工处理就只有先停掉从服务器,重新以作为主服务器的命令执行
/home/weixla/mongodb-3.4.0/bin/mongod -dbpath /home/weixla/data/db -master
主节点恢复后再作为从服务器启动
/home/weixla/mongodb-3.4.0/bin/mongod -dbpath /home/weixla/data/db -slave -source 192.168.4.199:27017
结语:
- 主节点挂了能否自动切换连接?目前需要手工切换。
- 主节点的写压力过大如何解决?
- 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?