从MMAPv1到wiredTiger的MongoDB storageEngine fassert()失败

时间:2016-02-09 19:24:31

标签: mongodb sharding replicaset

我正在使用此网站将我的群集升级到wiredTiger:https://docs.mongodb.org/manual/tutorial/change-replica-set-wiredtiger/

我遇到了以下问题:

环境详情:

Red Hat Enterprise Linux Server 6.2(圣地亚哥)上的分片集群中的MongoDB 3.0.9。我有4个分片,每个分片是3个成员的副本。我刚刚将所有二进制文件从2.4升级到3.0.9。每个服务器都有更新的二进制文件,我尝试将每个副本集转换为有线老虎存储引擎,但是在一个成员服务器(分片1)上升级辅助节点时出现以下错误:

2016-02-09T12:36:39.366-0500 F REPL     [rsSync] replication oplog stream went back in time. previous timestamp: 56b9c217:ab newest timestamp: 56b9b429:60. Op being applied: { ts: Timestamp 1455010857000|96, h: 2267356763748731326, v: 2, op: "d", ns: "General.Tickets", fromMigrate: true, b: true, o: { _id: ObjectId('566aec7bdfd4b700e73d64db') }
2016-02-09T12:36:39.366-0500 I -        [rsSync] Fatal Assertion 18905
2016-02-09T12:36:39.366-0500 I -        [rsSync]
***aborting after fassert() failure

这是一个复制的开放式错误:https://jira.mongodb.org/browse/SERVER-17081

群集的每个其他部分,升级都完美无缺,然而,现在我只停留在碎片1上的主要部分和次要部分。我已经尝试使用MMAPv1和有线老虎重新同步破碎的成员,但是我不断得到上面的错误。因此,使用MMAPV1会卡住一个分片,并且该分片恰好具有大部分数据(700 GB)。

我也尝试重新启动,重新安装二进制文件,但无济于事。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我通过放弃我们的巨型收藏解决了这个问题。 rssync肯定已经达到了一定的限度,因为巨型集合有45亿个文档。