加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

NoSql——mongoDB(副本集)

发布时间:2020-12-13 13:40:32 所属栏目:百科 来源:网络整理
导读:上篇博客说了MongoDB的主从复制,可以实现简单的数据库安全备份;但是面临的一个问题shi :如果主机down掉了,那么一些都玩完了,显然这是不太友好的!所以,就有了MongoDB的副本集! 一、基本概念 在主从复制服务器的概念中,主机宕机,那么从机不会自动转换

上篇博客说了MongoDB的主从复制,可以实现简单的数据库安全备份;但是面临的一个问题shi :如果主机down掉了,那么一些都玩完了,显然这是不太友好的!所以,就有了MongoDB的副本集!

一、基本概念

  在主从复制服务器的概念中,主机宕机,那么从机不会自动转换为主机。但是在副本集中,主机宕机,从机则自动升级为主机,原主机恢复后当做从机来用!


二、整体结构




三、具体实践


  4444.conf


			dbpath = D:MongoData3A
			port=4444
			bind_ip=127.0.0.1
			replSet=child/127.0.0.1:5555



  5555.conf


			dbpath = D:MongoData3B
			port=5555
			bind_ip=127.0.0.1
			replSet=child/127.0.0.1:6666



  6666.conf


			dbpath = D:MongoData3C
			port=6666
			bind_ip=127.0.0.1
            replSet=child/127.0.0.1:4444



  start-4444.bat


			mongod.exe --config 4444.conf


  start-5555.bat


			mongod.exe --config 5555.conf


  start-6666.bat


            mongod.exe --config 6666.conf


  client-4444.bat


			mongo 127.0.0.1:4444


  client-5555.bat


			mongo 127.0.0.1:5555


  client-6666.bat


            mongo 127.0.0.1:6666


  执行脚本:

  

			use admin
			db.runCommand({
				"replSetInitiate":{
					"_id":'child',"members":[
						{
							"_id":1,"host":"127.0.0.1:4444"
						},{
							"_id":2,"host":"127.0.0.1:5555"
						},{
							"_id":3,"host":"127.0.0.1:6666"
						}
					]
				}
			})<pre name="code" class="plain">			
 


   Rs.status()查看副本集状态


			child:PRIMARY> rs.status()
			{
			        "set" : "child","date" : ISODate("2015-07-10T03:33:11Z"),"myState" : 1,"members" : [
			                {
			                        "_id" : 1,"name" : "127.0.0.1:4444","health" : 0,"state" : 8,"stateStr" : "(not reachable/healthy)","uptime" : 0,"optime" : Timestamp(1436498327,10),"optimeDate" : ISODate("2015-07-10T03:18:47Z"),"lastHeartbeat" : ISODate("2015-07-10T03:33:07Z"),"lastHeartbeatRecv" : ISODate("2015-07-10T03:24:21Z"),"pingMs" : 0
			                },{
			                        "_id" : 2,"name" : "127.0.0.1:5555","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 1069,"electionTime" : Timestamp(1436498665,1),"electionDate" : ISODate("2015-07-10T03:24:25Z"),"self" : true
			                },{
			                        "_id" : 3,"name" : "127.0.0.1:6666","state" : 2,"stateStr" : "SECONDARY","uptime" : 996,"lastHeartbeat" : ISODate("2015-07-10T03:33:10Z"),"lastHeartbeatRecv" : ISODate("2015-07-10T03:33:09Z"),"pingMs" : 0,"syncingTo" : "127.0.0.1:5555"
			                }
			        ],"ok" : 1
			}


  注意:三个服务必须形成闭环系统,A→B,B→C,C→A

 至此,MongoDB的副本集整合完毕,当主服务器down掉之后,会从副本中“推举”出来一个作为服务器进行服务!当然,MongoDB提供的集群整合不仅仅包括主从复制,和副本集,还提拱了分片的功能,这个放到下篇说吧!


(未完待续,下篇说MongoDB的分片)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读