xinhu1300 发表于 2018-10-24 13:10:11

MongoDB索引及复制集、shard杂记

testSet:PRIMARY> rs.add("10.201.106.132")  { "ok" : 1 }
  查看
  testSet:PRIMARY> rs.status()
  {
  "_id" : 1,
  "name" : "10.201.106.132:27017",
  "health" : 1,
  "state" : 2,
  "stateStr" : "SECONDARY",
  "uptime" : 35,
  "optime" : Timestamp(1524666332, 1),
  "optimeDate" : ISODate("2018-04-25T14:25:32Z"),
  "lastHeartbeat" : ISODate("2018-04-25T14:26:07.009Z"),
  "lastHeartbeatRecv" : ISODate("2018-04-25T14:26:07.051Z"),
  "pingMs" : 0,
  "configVersion" : 2
  }
  ],
  master2(从节点)查看:
  # mongo
  遇到报错:
  Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }
  解决办法
  执行 rs.slaveOk()方法
  查看:
  testSet:SECONDARY> show dbs
  local   2.077GB
  testdb0.078GB
  testSet:SECONDARY> use testdb
  switched to db testdb
  testSet:SECONDARY> db.students.findOne()
  {
  "_id" : ObjectId("587c9032fe3baa930c0f51d9"),
  "name" : "student1",
  "age" : 1,
  "address" : "#85 Wenhua Road,Zhengzhou,China"
  }
  查看谁是主节点:
  testSet:SECONDARY> rs.isMaster()
  {
  "setName" : "testSet",
  "setVersion" : 2,
  "ismaster" : false,
  "secondary" : true,
  "hosts" : [
  "master1.com:27017",
  "10.201.106.132:27017"
  ],
  "primary" : "master1.com:27017",    ###
  "me" : "10.201.106.132:27017",      ###
  "maxBsonObjectSize" : 16777216,
  "maxMessageSizeBytes" : 48000000,
  "maxWriteBatchSize" : 1000,
  "localTime" : ISODate("2018-04-25T14:43:35.956Z"),
  "maxWireVersion" : 3,
  "minWireVersion" : 0,
  "ok" : 1
  }
  主节点添加第三个节点(master3)
  # mongo
  testSet:PRIMARY> rs.add("10.201.106.133")
  { "ok" : 1 }
  从节点(master3)配置成可用节点:
  # mongo
  testSet:SECONDARY> rs.slaveOk()
  testSet:SECONDARY> use testdb
  switched to db testdb
  testSet:SECONDARY> db.students.findOne()
  {
  "_id" : ObjectId("587c9032fe3baa930c0f51d9"),
  "name" : "student1",
  "age" : 1,
  "address" : "#85 Wenhua Road,Zhengzhou,China"
  }
  一旦添加从节点,从节点会自动克隆主节点的所有数据库后,并开始复制主节点的oplog,并应用于本地并为collection构建索引。

页: [1]
查看完整版本: MongoDB索引及复制集、shard杂记