raj*_*jub 8 replication mongodb
我已经在3 mongo服务器上设置了副本集并导入了5 GB数据.现在显示"RECOVERING"的辅助服务器的状态.你能让我知道"恢复"的方法是什么以及如何解决这个问题.
状态如下
rs.status()
{
"set" : "kutendarep",
"date" : ISODate("2013-01-15T05:04:18Z"),
"myState" : 3,
"members" : [
{
"_id" : 0,
"name" : "10.1.4.138:27017",
"health" : 1,
"state" : 3,
"stateStr" : "RECOVERING",
"uptime" : 86295,
"optime" : Timestamp(1357901076000, 4),
"optimeDate" : ISODate("2013-01-11T10:44:36Z"),
"errmsg" : "still syncing, not yet to minValid optime 50f04941:2",
"self" : true
},
{
"_id" : 1,
"name" : "10.1.4.21:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 86293,
"optime" : Timestamp(1358160135000, 18058),
"optimeDate" : ISODate("2013-01-14T10:42:15Z"),
"lastHeartbeat" : ISODate("2013-01-15T05:04:18Z"),
"pingMs" : 0
},
{
"_id" : 2,
"name" : "10.1.4.88:27017",
"health" : 1,
"state" : 3,
"stateStr" : "RECOVERING",
"uptime" : 86291,
"optime" : Timestamp(1357900674000, 10),
"optimeDate" : ISODate("2013-01-11T10:37:54Z"),
"lastHeartbeat" : ISODate("2013-01-15T05:04:16Z"),
"pingMs" : 0,
"errmsg" : "still syncing, not yet to minValid optime 50f04941:2"
}
],
"ok" : 1
Run Code Online (Sandbox Code Playgroud)
小智 11
登录到 RECOVERING 实例。
检查RECOVERING实例复制状态,
db.printReplicationInfo()
您将得到如下结果,
oplog 第一次活动时间:2019 年 7 月 30 日星期二 17:26:37 GMT+0000 (UTC)
oplog 最后一次活动时间:2019 年 7 月 31 日星期三 16:46:53 GMT+0000
现在:2019 年 8 月 22 日星期四 07:36:38 GMT+ 0000(世界标准时间)
如果您发现oplog 上次事件时间和现在之间的差异。
这意味着这个特定实例不是PRIMARY和SECONDARY,也不是副本集的活动成员。
现在有两种解决方案 首先
, 1.
登录到RECOVERING 实例
2. 从现有数据库中删除数据,该数据库将是/data/db
3. 重新启动此RECOVERING 实例
4. (可选)如果您发现以下错误。从指定位置删除 mongod.pid。
Error starting mongod. /var/run/mongod/mongod.pid
Run Code Online (Sandbox Code Playgroud)
5. 重启实例。
6. 现在您的恢复实例将处于运行状态
,并且它将显示 PRIMARY 或 secondary 来代替 RECOVERING。
其次,
将其他正在运行的实例数据复制到RECOVERING实例中并重新启动mongodb。
Gia*_* P. 10
"RECOVERING"副本集节点上的消息表示这些节点仍在执行初始同步.这些节点在转换到辅助状态之前不可用于读取.
初始同步有几个步骤.
有关副本集同步过程的更多信息,请参见此处:http: //docs.mongodb.org/manual/core/replica-set-sync/
| 归档时间: |
|
| 查看次数: |
17537 次 |
| 最近记录: |