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]