【发布时间】:2016-03-23 01:33:09
【问题描述】:
我正在创建一个隐藏的辅助 MongoDB 实例,该实例最终将用于报告。到目前为止,我已经采取了这些步骤:
- 使用
replSet = mySet启动我的主实例(本地机器)并调用rs.initiate() - 使用
replSet = mySet启动了我的辅助实例 - 从我的主实例调用
rs.add("my.secondary.com") - 使用
rs.reconfigure(cfg)为次要成员设置priority = 0和hidden = 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
}
请注意,我的辅助服务器的 stateStr 是 STARTUP - 这永远不会改变,数据也永远不会复制。在之前的尝试中,我还在我的辅助设备上调用了rs.iniate(),但这使得原本打算成为辅助设备的东西变成了主设备。我不得不把一切都吹走,重新开始。
为什么我的辅助服务器卡在STARTUP,我怎样才能让我的数据开始从我的主服务器复制到我的辅助服务器?
【问题讨论】:
-
给它一些时间。它可能正在与主要同步,因此需要一些时间,具体取决于您的数据量。另外请确保主节点和辅助节点是否可以相互访问并且没有防火墙干扰。
-
我不确定 - 根据下面的链接,如果正在同步,状态将是
STARTUP2:docs.mongodb.org/manual/reference/replica-states -
另外 - 我不确定辅助节点是否可以访问主节点,因为主节点是我的本地计算机。我认为沟通只是一种方式-主要->次要。不是这样吗?
-
两者都互相ping通(心跳)。
-
请看我下面的帖子。这些对我有用。
标签: mongodb