转储所有数据库时发生 Mongodump 分段错误

转储所有数据库时发生 Mongodump 分段错误

我正在运行一个 mongodb(2.0.4) 副本集,它有一个主服务器和两个从服务器,其中一个是用于备份的隐藏从服务器。我正在使用http://docs.mongodb.org/manual/core/replica-set-architecture-three-members/

当我跑步时mongodump --oplog -h rsuat/10.0.3.163 --out /tmp/lala

我得到:

Fri Dec 13 09:05:53 starting new replica set monitor for replica set rsuat with seed of 10.0.3.163
Fri Dec 13 09:05:53 successfully connected to seed 10.0.3.163 for replica set rsuat
Fri Dec 13 09:05:53 changing hosts to { 0: "10.0.2.234:27017", 1: "10.0.4.96:27017" } from rsuat/
Fri Dec 13 09:05:53 trying to add new host 10.0.2.234:27017 to replica set rsuat
Fri Dec 13 09:05:53 successfully connected to new host 10.0.2.234:27017 in replica set rsuat
Fri Dec 13 09:05:53 trying to add new host 10.0.4.96:27017 to replica set rsuat
Fri Dec 13 09:05:53 successfully connected to new host 10.0.4.96:27017 in replica set rsuat
Fri Dec 13 09:05:53 replica set monitor for replica set rsuat started, address is rsuat/10.0.2.234:27017,10.0.4.96:27017
Fri Dec 13 09:05:53 [ReplicaSetMonitorWatcher] starting
connected to: rsuat/10.0.3.163
all dbs
DATABASE: connect_log,mongodb:   to     /tmp/lala/connect_log,mongodb:
    connect_log,mongodb:.log to /tmp/lala/connect_log,mongodb:/log.bson
        131600/142621   92%
         142621 objects
    connect_log,mongodb:.system.indexes to /tmp/lala/connect_log,mongodb:/system.indexes.bson
         1 objects
Segmentation fault (core dumped)

无需 oplog 标志即可运行。有人知道哪里出了问题吗?

编辑:即使我不使用 oplog 标志,似乎也会发生分段错误,因此错误是在进行完整转储时发生的。

EDIT2:这是来自 syslog 的一行,由 segault 引起,如果有帮助的话:

 ip-10-0-3-163 kernel: [23126212.267385] mongodump[26858]: segfault at 0 ip 00007f234ca776c4 sp 00007fff2b9d5f00 error 4 in libc-2.15.so[7f234ca09000+1b5000]

答案1

应该注意的是,使用--oplog并不构成“完整转储”,该标志会转储出在oplog转储开始和转储结束之间对 进行的任何操作。也就是说,它将为您提供 的一部分,oplog以便您的转储在恢复时(使用--oplogReplay)将表示转储结束时的数据。

但是,它不会转储 oplog 本身,因此如果您在转储期间没有插入/更新,则不需要它。事实上,我认为存在一些空集合错误,因此mongodump如果在转储开始和结束之间 oplog 中没有操作,那么这可能是您的问题。

另一种可能的解决方法是 - 您是否尝试过针对 2.0.4 实例使用较新版本的工具(2.4.x 等)。目前,2.0.4 版本已经相当老旧了,之后还有几个 2.0.x 版本,更不用说还有 2 个主要版本,另一个版本即将发布。您不必拥有 2.4 版本的服务器即可使用它的工具,这可能会让您避开一些较旧的mongodump错误。

相关内容