我正在尝试使用 MongoDb 创建一个副本集,服务器主机名是:
主机名 主机名-1 主机名-2
它们中的每一个都有其 /etc/hosts 文件中详细说明的所有相关主机名(它们都运行 Ubuntu 10.04 64 位)
当我在一个节点上执行 rs.initiate 时,一切似乎都开始良好。运行 rs.status(); 显示:
{
"set" : "vega",
"date" : ISODate("2012-01-22T19:15:55Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "hostname:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"optime" : {
"t" : 1327254848000,
"i" : 1
},
"optimeDate" : ISODate("2012-01-22T17:54:08Z"),
"self" : true
}
],
"ok" : 1
}
当我尝试向副本集添加新成员时,问题就来了。我使用命令 rs.add(hostname-1); 我收到以下错误:
{
"assertion" : "need most members up to reconfigure, not ok : vega-1:27017",
"assertionCode" : 13144,
"errmsg" : "db assertion failure",
"ok" : 0
}
我尝试了多种使用主机名、IP 地址的组合,无论有无端口号,但我总是遇到同样的问题。主机名正在解析,我尝试 ping hostname-1 并且它工作正常。
有人对可能导致此问题的原因有任何想法吗?
不幸的是,在 Mongo 文档中没有在现实世界场景中设置副本集的示例,仅在同一台机器上使用三个实例,这显然是无用的。
提前感谢您的帮助!