为了在各个MongDB之间实现多节点之间的数据自动备份,提升容灾性能。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提升了数据的可用性,并能够保证数据的安全性。
mongodb的复制至少须要两个节点。其中一个是主节点,负责处理客户端请求,其他的都是从节点,负责复制主节点上的数据。mongodb各个节点常见的搭配方式为:一主一从、一主多从。主节点记录在其上的全部操做oplog,从节点按期轮询主节点获取这些操做,而后对本身的数据副本执行这些操做,从而保证从节点的数据与主节点一致。mongodb
N 个节点的集群数据库
任何节点可做为主节点安全
全部写入操做都在主节点上服务器
自动故障转移app
自动恢复性能
本文中使用同一个MongoDB实现两个节点的直接的备份,固然是有主、从的,可是这个主、从和通常的主从不同,这里的主机爆掉以后,就会自动链接到丛机上继续使用数据。这就是集群的优点所在。ui
准备两个数据库
复制两个data目录:data与data1目录,也就是两个数据库目录。分别修改这两个data目录下的配置文件,分别为:调试
data中,/data/etc/mongodb.conf:日志
dbpath=data\db #数据库路径 logpath=data\logs\mongodb.log #日志输出文件路径 logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是重新建立一个新文件 journal=true #启用日志文件,默认启用 quiet=true #这个选项能够过滤掉一些无用的日志信息,若须要调试使用请设置为false port=27017 #端口号 默认为27017
data1中,/data1/etc/mongodb.conf:code
dbpath=data1\db #数据库路径 logpath=data1\logs\mongodb.log #日志输出文件路径 logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是重新建立一个新文件 journal=true #启用日志文件,默认启用 quiet=true #这个选项能够过滤掉一些无用的日志信息,若须要调试使用请设置为false port=27018 #端口号 默认为27018
启动两个mongoDB数据库
cmd中:
因为本文是在同一台机器上配置两个节点,因此两个节点的ip是相同的:
启动第一个数据库:
mongod --port 27017 --dbpath "\data" --replSet rs
启动第二个数据库:
mongod --port 27018 --dbpath "\data1" --replSet rs
添加将数据库添加到副本集中
登录第一个数据库:
mongo 127.0.0.1:27017
以该数据库为主机,初始化副本集,初始化过程化过程当中就会将该数据库做为主机加入到这个副本集中了。
初始化副本集:
>rs.initiat()
查看当前副本集的机器状况:
>rs.conf()
当前应该只有27017这个主机在这个副本集中。
而后再将丛机都加进来:
>rs.add("trilever-pc:27018")
再看当前副本集集群的状况,就会发现丛机已经加进来了。
登录丛机:
mongo 127.0.0.1:27017
此时,丛机已经在副本集群中了,进行最后一个操做:
>rs.slaveok()
这样在主机上的操做就会同步到从机上了。
整个配置完毕。验证便可。