0
我在EC2上設置mongodb的主/從複製。但我看不到複製發生。當我在master上「顯示dbs」時,它會顯示所有的dbs。mongodb複製未在EC2上運行
但是,當我在副本上做同樣的事情時,它不會顯示任何db。
請幫我排除故障。
在Ubuntu 12.04 EC2實例
dpkg -l | grep mongo
ii mongodb-10gen 2.4.5 An object/document-oriented database
rs.config()
{
"_id" : "ittw",
"version" : 1,
"members" : [
{
"_id" : 0,
"host" : "ip-10-304-48-93:27017"
}
]
}
rs.config()
{
"_id" : "ittw",
"version" : 2,
"members" : [
{
"_id" : 0,
"host" : "domU-17-31-19-16-88-5F:27017"
},
{
"_id" : 1,
"host" : "ec2-50-321-52-908.compute-1.amazonaws.com:27017"
}
]
}
rs.status() // replica
{
"set" : "ittw",
"date" : ISODate("2013-08-12T06:55:57Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "$ip:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 356039,
"optime" : Timestamp(1375934685, 1),
"optimeDate" : ISODate("2013-08-08T04:04:45Z"),
"self" : true
}
],
"ok" : 1
}
rs.status() //Master
{
"set" : "ittw",
"date" : ISODate("2013-08-12T06:57:19Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "PRI_IP:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 356543,
"optime" : Timestamp(1376289725, 1),
"optimeDate" : ISODate("2013-08-12T06:42:05Z"),
"self" : true
},
{
"_id" : 1,
"name" : "REP_IP:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 355869,
"optime" : Timestamp(1375934685, 1),
"optimeDate" : ISODate("2013-08-08T04:04:45Z"),
"lastHeartbeat" : ISODate("2013-08-12T06:57:17Z"),
"lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
"pingMs" : 1
}
],
"ok" : 1
}
我看到REPLIC日誌下面幾行:
Mon Aug 12 07:29:53.889 [initandlisten] connection accepted from $PRIMARY_IP:51376 #11921 (1 connection now open)
Mon Aug 12 07:30:23.922 [conn11921] end connection $PRIMARY_IP:51376 (0 connections now open)
Mon Aug 12 07:30:23.925 [initandlisten] connection accepted from $PRIMARY_IP:51377 #11922 (1 connection now open)
Mon Aug 12 07:30:53.958 [conn11922] end connection $PRIMARY_IP:51377 (0 connections now open)
編輯:於
做rs.initiate()和rs.add()後rs.status()
{
"set" : "ittw",
"date" : ISODate("2013-08-12T18:25:20Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "PRIMARY_IP:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1225,
"optime" : Timestamp(1376331887, 1),
"optimeDate" : ISODate("2013-08-12T18:24:47Z"),
"self" : true
},
{
"_id" : 1,
"name" : "SECONDARY_IP:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 33,
"optime" : Timestamp(1376331887, 1),
"optimeDate" : ISODate("2013-08-12T18:24:47Z"),
"lastHeartbeat" : ISODate("2013-08-12T18:25:20Z"),
"lastHeartbeatRecv" : ISODate("2013-08-12T18:25:20Z"),
"pingMs" : 10,
"syncingTo" : "ip-10-190-185-227:27017"
}
],
"ok" : 1
}
我打算假設你刪除了ips。你有兩個初選如何。有關於這個的一個錯誤,這是什麼MongoDB版本? – Sammaye
這是shell版本,嗯,我會假設MongoDB的版本是2.4.5,但是很有必要仔細檢查一下。奇怪的是,副本似乎無法與原來的主通信.... hmm – Sammaye
對我來說,它看起來像你根本沒有發出''rs.initiate()''。你可以在你的問題中添加rs.config()在兩臺機器上的外觀嗎? – Derick