Mongodb 试图设置Mongo复制,但最终只有两个辅助成员而没有主成员

Mongodb 试图设置Mongo复制,但最终只有两个辅助成员而没有主成员,mongodb,replication,Mongodb,Replication,我一直在尝试设置一个简单的复制系统。1主蒙戈, 1个备份和1个仲裁器 不幸的是,点燃它会导致主党被选为副党 被选为主备份(出色工作仲裁器) Main的优先级为100,backup的优先级为0,以及 从机延迟 我试图通过以下方式让后备人员下台: PRIMARY> db.runCommand({replSetReconfig: conf}) { "assertion" : "initiation and reconfiguration of a replica set mu

我一直在尝试设置一个简单的复制系统。1主蒙戈, 1个备份和1个仲裁器

不幸的是,点燃它会导致主党被选为副党 被选为主备份(出色工作仲裁器)

Main的优先级为100,backup的优先级为0,以及 从机延迟

我试图通过以下方式让后备人员下台:

PRIMARY>   db.runCommand({replSetReconfig: conf})
{
        "assertion" : "initiation and reconfiguration of a replica set must
be sent to a node that can become primary",
        "assertionCode" : 13420,
        "errmsg" : "db assertion failure",
        "ok" : 0
}
PRIMARY> .adminCommand({replSetStepDown:1000000, force:1})
Fri Jan 13 17:27:29 SyntaxError: syntax error (shell):1
PRIMARY> db.adminCommand({replSetStepDown:1000000, force:1})
Fri Jan 13 17:27:36 DBClientCursor::init call() failed
Fri Jan 13 17:27:36 query failed : admin.$cmd { replSetStepDown:
1000000.0, force: 1.0 } to: 127.0.0.1
Fri Jan 13 17:27:36 Error: error doing query: failed shell/
collection.js:151
Fri Jan 13 17:27:36 trying reconnect to 127.0.0.1
Fri Jan 13 17:27:36 reconnect 127.0.0.1 ok
SECONDARY>
SECONDARY>
SECONDARY> db.adminCommand({replSetStepDown:1000000, force:1})
{ "errmsg" : "not primary so can't step down", "ok" : 0 }
虽然有效,但主要还是次要的

有什么想法吗?谢谢

配置文件

conf = {
  version: 90002,
  _id : "example",
  members: [
    {
      _id : 1,
      host : "main.example.com:27017",
      priority: 100
    },
    {
      _id : 2,
      host : "backup.example.com:27017",
      priority: 0,
      slaveDelay : 3600
    },
    {
      _id : 3,
      host : "arbiter.example.com:27017",
      priority: 0,
      arbiterOnly: true
    }
  ]
};
rs.主要设备的状态()

备份时的rs.status()

{
  "set" : "example",
  "date" : ISODate("2012-01-13T23:31:06Z"),
  "myState" : 2,
  "members" : [
    {
      "_id" : 0,
      "name" : "BACKUPVMW02:27017",
      "health" : 1,
      "state" : 2,
      "stateStr" : "SECONDARY",
      "optime" : {
        "t" : 1326492641000,
        "i" : 1
      },
      "optimeDate" : ISODate("2012-01-13T22:10:41Z"),
      "self" : true
    }
  ],
  "ok" : 1

结果是有一个3节点的设置,1个主节点、1个从节点和1个仲裁节点不能很好地工作。删除了从属延迟,并尊重了优先级(在从头重新安装所有节点并删除数据目录之后)

您可能使用了旧版本的mongodb——我认为,他们用于投票的字段当时称为“投票”,而不是优先级。当他们切换到“优先级”字段时,我认为您应该调用rs.reconfig(configfile)。

如果我在备份时停止mongodb,main将被选为primary。但如果我再次启动它,备份将成为主备份,而主备份将转移到第二备份。我想我被夹在升级之间了。我不确定这是否是解决方案,因为我无法再复制(现在运行3节点设置),但我会相信这是为任何遇到此问题的人提供的,因为我为所有mongo节点使用相同的端口,即使是在不同的主机上。为所有主机设置唯一端口修复了该问题。
{
  "set" : "example",
  "date" : ISODate("2012-01-13T23:31:06Z"),
  "myState" : 2,
  "members" : [
    {
      "_id" : 0,
      "name" : "BACKUPVMW02:27017",
      "health" : 1,
      "state" : 2,
      "stateStr" : "SECONDARY",
      "optime" : {
        "t" : 1326492641000,
        "i" : 1
      },
      "optimeDate" : ISODate("2012-01-13T22:10:41Z"),
      "self" : true
    }
  ],
  "ok" : 1