Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb复制未在EC2上运行_Mongodb - Fatal编程技术网

mongodb复制未在EC2上运行

mongodb复制未在EC2上运行,mongodb,Mongodb,我在EC2上设置mongodb的主/从复制。但我看不到复制的发生。当我在master上执行“showdbs”时,它会显示所有预期的dbs 但当我在副本上执行相同操作时,它不会显示任何db 请帮我排除故障 在ubuntu 12.04 ec2实例上 dpkg -l | grep mongo ii mongodb-10gen 2.4.5 An object/document-oriented database r

我在EC2上设置mongodb的主/从复制。但我看不到复制的发生。当我在master上执行“showdbs”时,它会显示所有预期的dbs

但当我在副本上执行相同操作时,它不会显示任何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()之后


这似乎不是选择一个唯一的初选,如果这有助于选择一个唯一的初选,请尝试

当您启动两个副本集成员时,请确保它们都具有相同的replSet参数值issue

 rs.initiate()
 rs.conf()
关于你提议的初选。然后,尝试添加具有强制优先级的辅助:

rs.add( { "_id": 1, "host": "mongodbd3.example.net:27017", "priority": 0 } )

因此,它将只能选择作为辅助。

我假设您将IP屏蔽掉。你有两次初选。这有一个bug,MongoDB的版本是什么?那是shell版本,嗯,我假设MongoDB的版本是2.4.5,但最好再检查一下。奇怪的是,复制副本似乎无法与原始主服务器通信……嗯,对我来说,看起来您根本没有发出
rs.initiate()
。你能补充一下你的问题吗
rs.config()?嗯,你不需要,你应该()在主服务器上启动,然后在主服务器上添加辅助服务器。我认为主要的一点是,在主服务器上,它不应该同时选择这两个作为主服务器。实际上,在主服务器被初始化并且辅助服务器被添加到集合中之后,辅助服务器无法看到主服务器
rs.add( { "_id": 1, "host": "mongodbd3.example.net:27017", "priority": 0 } )