Izhuceul 发表于 2018-10-27 08:48:26

Mongodb的副本集Replica Set和分片Sharding

#./bin/mongod --dbpath=data/rs0-0/ --logpath=log/rs0-0.log --bind_ip 10.8.8.162 --fork --rest --logappend --replSet rs0 --port=30000  
##注:--rest是为了打开web监控。http://10.8.8.162:31000/_replSet可以查看各个节点的状态
  
#./bin/mongod --dbpath=data/rs0-1/ --logpath=log/rs0-1.log --bind_ip 10.8.8.162 --fork --rest --logappend --replSet rs0 --port=30001
  
#./bin/mongod --dbpath=data/rs0-2/ --logpath=log/rs0-2.log --bind_ip 10.8.8.162 --fork --rest --logappend --replSet rs0 --port=30002
  
#./bin/mongod --dbpath=data/rs0-arb/ --logpath=log/rs0-arb.log --bind_ip 10.8.8.162 --fork --rest --logappend --replSet rs0 --port=40000
  
#./bin/mongo --port 30000 --host 10.8.8.162
  
MongoDB shell version: 2.4.5
  
connecting to: 10.8.8.162:30000/test
  
> rs.conf()
  
null
  
> use admin
  
switched to db admin
  
> db.runCommand({"replSetInitiate" : {
  
..."_id":"rs0",##这个键指明了副本集的名称,必须与气动mongod进程时指定的名称一致!##
  
..."members":[ ##这个键指明服务器列表,我们以后还可以往副本集中加入服务器##
  
... {"_id":0,"host":"10.8.8.162:30000","priority":2},##“id”内嵌文档的键,用于唯一标示副本集中的某一台服务器."priority :N,优先级,指明一个服务器的优先级,默认为1,可以是,通过这个我们可以指明副本集某台服务器节点初始为活跃节点"##
  
... {"_id":1,"host":"10.8.8.162:30001","priority":3},
  
... {"_id":2,"host":"10.8.8.162:30002","priority":4},
  
... {"_id":3,"host":"10.8.8.162:40000","arbiterOnly":"true"}##arbiterOnly :true,仲裁节点,特定指明某个服务器节点为仲裁节点,仲裁节点不会复制数据,不会成为活跃节点,其存在的目的只有一个:当前活跃节点失效后,副本集内重新投票选活跃节点时,防止出现僵局!##
  
... ]
  
... }
  
... }
  
... );
  
{
  "info" : "Config now saved locally.Should come online in about a minute.",
  "ok" : 1
  
}
  
rs0:SECONDARY> rs.status();##这个可能需要数分钟才能正常显示!##
  
{
  "set" : "rs0",
  "date" : ISODate("2014-04-18T09:06:41Z"),
  "myState" : 2,
  "syncingTo" : "10.8.8.162:30002",
  "members" : [
  {
  "_id" : 0,
  "name" : "10.8.8.162:30000",
  "health" : 1,
  "state" : 2,
  "stateStr" : "SECONDARY",
  "uptime" : 1411,
  "optime" : Timestamp(1397811410, 1),
  "optimeDate" : ISODate("2014-04-18T08:56:50Z"),
  "self" : true
  },
  {
  "_id" : 1,
  "name" : "10.8.8.162:30001",
  "health" : 1,
  "state" : 2,
  "stateStr" : "SECONDARY",
  "uptime" : 591,
  "optime" : Timestamp(1397811410, 1),
  "optimeDate" : ISODate("2014-04-18T08:56:50Z"),
  "lastHeartbeat" : ISODate("2014-04-18T09:06:39Z"),
  "lastHeartbeatRecv" : ISODate("2014-04-18T09:06:39Z"),
  "pingMs" : 0,
  "syncingTo" : "10.8.8.162:30002"
  },
  {
  "_id" : 2,
  "name" : "10.8.8.162:30002",
  "health" : 1,
  "state" : 1,
  "stateStr" : "PRIMARY",
  "uptime" : 591,
  "optime" : Timestamp(1397811410, 1),
  "optimeDate" : ISODate("2014-04-18T08:56:50Z"),
  "lastHeartbeat" : ISODate("2014-04-18T09:06:40Z"),
  "lastHeartbeatRecv" : ISODate("2014-04-18T09:06:39Z"),
  "pingMs" : 0,
  "syncingTo" : "10.8.8.162:30000"##开始我觉得这里有些奇怪!当我用30002这个PRIMARY节点登陆之后再查看,显示就正常了!##
  },
  {
  "_id" : 3,
  "name" : "10.8.8.162:40000",
  "health" : 1,
  "state" : 7,
  "stateStr" : "ARBITER",
  "uptime" : 562,
  "lastHeartbeat" : ISODate("2014-04-18T09:06:40Z"),
  "lastHeartbeatRecv" : ISODate("2014-04-18T09:06:40Z"),
  "pingMs" : 0
  }
  ],
  "ok" : 1
  
}


页: [1]
查看完整版本: Mongodb的副本集Replica Set和分片Sharding