【问题标题】:MongoDB hidden secondary stuck in startup?MongoDB隐藏二级卡在启动中?
【发布时间】:2016-03-23 01:33:09
【问题描述】:

我正在创建一个隐藏的辅助 MongoDB 实例,该实例最终将用于报告。到目前为止,我已经采取了这些步骤:

  1. 使用replSet = mySet 启动我的主实例(本地机器)并调用rs.initiate()
  2. 使用replSet = mySet 启动了我的辅助实例
  3. 从我的主实例调用 rs.add("my.secondary.com")
  4. 使用rs.reconfigure(cfg)为次要成员设置priority = 0hidden = true

当我这样做并调用 rs.status() 时,我得到以下输出:

{
  "set": "mySet",
  "date": ISODate("2016-03-22T16:40:39.515Z"),
  "myState": 1,
  "members": [
    {
      "_id": 0,
      "name": "my-machine.local:27017",
      "health": 1,
      "state": 1,
      "stateStr": "PRIMARY",
      "uptime": 607,
      "optime": Timestamp(1458664559, 1),
      "optimeDate": ISODate("2016-03-22T16:35:59Z"),
      "electionTime": Timestamp(1458664264, 2),
      "electionDate": ISODate("2016-03-22T16:31:04Z"),
      "configVersion": 3,
      "self": true
    },
    {
      "_id": 1,
      "name": "my.secondary.com:27017",
      "health": 1,
      "state": 0,
      "stateStr": "STARTUP",
      "uptime": 384,
      "optime": Timestamp(0, 0),
      "optimeDate": ISODate("1970-01-01T00:00:00Z"),
      "lastHeartbeat": ISODate("2016-03-22T16:40:38.332Z"),
      "lastHeartbeatRecv": ISODate("1970-01-01T00:00:00Z"),
      "pingMs": 106,
      "configVersion": -2
    }
  ],
  "ok": 1
}

请注意,我的辅助服务器的 stateStrSTARTUP - 这永远不会改变,数据也永远不会复制。在之前的尝试中,我还在我的辅助设备上调用了rs.iniate(),但这使得原本打算成为辅助设备的东西变成了主设备。我不得不把一切都吹走,重新开始。

为什么我的辅助服务器卡在STARTUP,我怎样才能让我的数据开始从我的主服务器复制到我的辅助服务器?

【问题讨论】:

  • 给它一些时间。它可能正在与主要同步,因此需要一些时间,具体取决于您的数据量。另外请确保主节点和辅助节点是否可以相互访问并且没有防火墙干扰。
  • 我不确定 - 根据下面的链接,如果正在同步,状态将是 STARTUP2docs.mongodb.org/manual/reference/replica-states
  • 另外 - 我不确定辅助节点是否可以访问主节点,因为主节点是我的本地计算机。我认为沟通只是一种方式-主要->次要。不是这样吗?
  • 两者都互相ping通(心跳)。
  • 请看我下面的帖子。这些对我有用。

标签: mongodb


【解决方案1】:

这是我黑皮书上的清单:) 比较你的步骤,它应该没有故障。

(假设您使用 --replSet 标志启动了 mongodb 实例)

// rs.initiate()
// rs.add("host-1:29001")
// rs.add("host-2:30001")
// rs.add("host-n:40001")
// var cfg = rs.config()
// cfg.members[2].priority = 0
// cfg.members[2].hidden = true
// rs.reconfig(cfg)

【讨论】:

  • 是的,这些是我的步骤。我不确定我的次要是否可以访问我的主要,所以这可能是问题所在。我会调查的
  • 先尝试在本地机器上启动副本,然后再花时间使用实时环境。这会让你对自己在做什么充满信心。 (至少为MongoDB设置replicaSet)
  • 是的,现在正在本地设置我的辅助 - 我认为这是一个很好的步骤
  • 我认为这只是双向沟通的事情。一旦我在本地进行设置,它就可以工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多