MongoDB副本集失败

时间:2015-12-16 09:39:39

标签: mongodb

我有一个包含三个节点的MongoDB副本集,1个主节点,1个辅助节点和1个仲裁节点。

当我从主节点执行辅助节点上的初始重新同步时,主节点终止。当我检查主节点的日志时,显示的异常是

严重:地址访问无效:0x7fcde1e00ff0SEVERE:地址访问无效:0x7fcde1e00ff0

严重:有信号:7(总线错误)

此后,由于此异常导致此主节点无法启动,并且辅助节点陷入STARTUP2状态。

我能够将不同端口上的主节点作为独立节点(或处于维护模式)启动并读取其数据。但每当我将它作为副本集的一部分运行时,它就会因上述异常而终止

主要和次要将RAID0作为其存储。数据大小约为550GB。

我将主节点(当前已关闭)的整个数据复制到辅助节点(处于STARTUP2状态),然后重新启动辅助节点。但它也没有奏效。辅助节点在重新启动时被选为主要节点,但在选举的第二个时间内被终止,但有以下异常:

SEVERE:logOp()中的致命DBException:10334 BSONObj大小:50359410(0x3006C72)无效。大小必须介于0到16793600之间(16MB)第一个元素:2:?type = 111

SEVERE:terminate()调用,打印堆栈(如果为平台实现): 0x11fd1b1 0x11fc438 0x7ff56dc01846 0x7ff56dc01873 0xe54c9e 0xc4de1b 0xc58f46 0xa0bac1 0xa0c250 0xa0f1bf 0xa0fcc1 0xa1323e 0xa2949a 0xa2af32 0xa2cd36 0xd61654 0xba21a2 0xba3780 0x7724a9 0x11b2fde

在这种情况下如何恢复和恢复副本集。

我也在备份这些数据。我可以删除此副本集并使用此备份数据重新创建副本集吗?

此MongoDB群集中有另一个副本集正常工作。

1 个答案:

答案 0 :(得分:0)

由于复制滞后,您的辅助服务器的资格是不可能的。 您可以发布rs.status()的输出吗?

您的辅助服务器可能有一个"无法找到要同步的成员" infoMessage

由于内存不好,我之前经历过类似的事情。它可以是任何东西。

通过将主服务器的数据复制到辅助服务器上的另一个文件夹并在其上的其他端口上启动新实例,然后将其添加到副本(使用{ force: true }选项)来修复它所以辅助服务器有一个可以同步的地方。

您也可以销毁副本并再次创建它,但要注意不要丢失副本的操作日志。