MongoDB复制集
-
<李>
MongoDB复制是将数据同步在多个服务器的过程。
李> <李>复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性。
李> <李>复制还允许您从硬件故障和服务中断中恢复数据。李>复制集的优势
-
<李>保障数据的安全性李>
<李>数据高可用性(24 * 7)李>
<李>灾难恢复李>
<李>无需停机维护(如备份,重建索引,压缩)李>
<李>分布式读取数据
MongoDB复制原理
mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
李>mongodb各个节点常见的搭配方式为:一主一从,一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
MongoDB复制结构图如下所示:
以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时,主节点与从节点进行数据交互保障数据的一致性。
复制集集特征:
-
<李> N个节点的集群李>
<李>任何节点可作为主节点李>
<李>所有写入操作都在主节点上李>
<李>自动故障转移李>
<李>自动恢复李>
安装MongoDB(焦油安装):
-
<李>
1。安装创建多实例:
李><代码>焦油-zxvf mongodb-linux-x86_64-3.2.1。tgz - c/usr/local/cd/usr/local/mv mongodb-linux-x86_64-3.2.1/mongodb #重命名 mkdir - p/数据/mongodb/mongodb{1, 2, 3, 4} #创建数据目录 mkdir - p/数据/日志 触摸/数据/日志/mongodb} {1, 2, 3, 4。日志#创建日志文件 cd/数据/日志/chmod 777 *。日志#赋予权限 cd/usr/local/mongodb/bin vim mongodb1.conf 端口=27017 dbpath=/数据/mongodb/mongodb1 logpath=/数据/logs/mongodb1.log logappend=true 叉=true maxConns=5000 storageEngine=mmapv1 replSet=测试#复制集名称 ------------------------------------------------------------------------------------ #下面是百胜安装时修改,添加的 复制:#去注释 replSetName:测试#添加复制集名称代码>
<代码> ln - s/usr/local/mongodb/bin/mongod/usr/bin/#把mongodb常用的命令添加到系统命令中 ln - s/usr/local/mongodb/bin/mongo/usr/bin/代码>
-
<李>
2。开启多实例,初始化配置复制集:
李><代码> [root@localhost本]# mongo 比;cfg={" _id ":“测试”、“成员”:[{" _id ": 0,“主机”:“192.168.217.129:27017”},{“_id”: 1、“主机”:“192.168.217.129:27018 "},{" _id ": 2,“主机”:“192.168.217.129:27019”}]} #配置复制集,注意复制集的名称要一致 { “_id”:“测试”, “成员”:( { “_id”: 0, “主机”:“192.168.217.129:27017” }, { “_id”: 1、 “主机”:“192.168.217.129:27018” }, { “_id”: 2 “主机”:“192.168.217.129:27019” } ] } 比;rs.initiate (cfg) #初始化配置时保证从节点没有数据 {" ok ": 1} 测试:PRIMARY>rs.status() #查看复制集的完整状态 { “设置”:“测试”, …… { “_id”: 0, “名称”:“192.168.217.129:27017”, “健康”:1、 “状态”:1、 “stateStr”:“初级”,# 27017端口作为主节点 “运行时间”:1234年, " optime ": { “t”:时间戳(1531961046,1), “t”: NumberLong (1) }, …… }, { “_id”: 1、 “名称”:“192.168.217.129:27018”, “健康”:1、 “状态”:2 “stateStr”:“二次”,#从节点 “运行时间”:49岁 " optime ": { “t”:时间戳(1531961046,1), “t”: NumberLong (1) }, …… }, { “_id”: 2 “名称”:“192.168.217.129:27019”, “健康”:1、 “状态”:2 “stateStr”:“二次”,#从节点 “运行时间”:49岁 " optime ": { “t”:时间戳(1531961046,1), “t”: NumberLong (1) }, …… } ), “ok”:1 }大数据MongoDB复制集管理