MongoDB副本集设置问题

时间:2013-10-14 22:06:57

标签: mongodb amazon-ec2 replicaset

我在尝试从头开始设置MongoDB副本集时感到非常沮丧。这是我第一次运行MongoDB(2.4.6),我不确定这是不是我理解力差或文档不好。以下是我正在使用的内容:

- VPC中的Amazon EC2 Ubuntu 12.04 LTS实例 -NodeA 10.0.1.152 -NodeB 10.0.1.153

他们可以互相沟通。这些服务器是从头开始的,所以没有防火墙规则。我的主机文件:

10.0.1.152 mongodb0 10.0.1.153 mongodb1 10.0.1.226 mongodb2 #this是仲裁者,但我现在不关心这个

我在NodeA中的conf

logpath=/var/log/mongodb/mongodb.log
fork = true
replSet = rs0
bind_ip = mongodb0
logappend=true

我在NodeB中的conf

logpath=/var/log/mongodb/mongodb.log
fork = true
replSet = rs0
bind_ip = mongodb1
logappend=true

在NodeA上,我开始了这个过程:

 mongod --host mongodb0.iin
 rs.initiate()
 rs.conf()
 rs.add("mongo1.iin:27017")

这是错误消息:

{
        "errmsg" : "exception: need most members up to reconfigure, not ok : mongodb1.iin:27017",
        "code" : 13144,
        "ok" : 0
}

我还在副本上运行了mongo进程。当我初始化时,它也称自己为Primary。

在NodeB上 - 我在NodeA的所有流量上运行了TCPDUMP。当我初学时 - 什么都没有出现。正如我所提到的,没有防火墙规则,我甚至为了它而添加了允许来自NodeA的所有内容。

我做错了什么?!?!?!?!?!?

1 个答案:

答案 0 :(得分:0)

1)确保每个服务器的/ etc / hosts文件中都有host-> ip名称。

例如你的/ etc / hosts文件 具有

123.123.123.123 hostname

我假设123.123.123.123是您的服务器IP,主机名是您为每个成员执行此操作的mongo副本集成员的名称,并且您必须为每个服务器添加此名称。

2)确保mongo节点能够使用终端进行通信,您可以对此进行测试。

3)确保您的系统能够与您访问成员的每个副本集成员进行通信。(基本上是mongod.conf文件)