MongoDB副本集失败
我有一个MongoDB副本集,由三个节点组成,一个主节点、一个辅助节点和一个仲裁节点 当我从主节点对辅助节点执行初始重新同步时,主节点被终止。当我检查主节点的日志时,显示的异常是 严重:地址0x7fcde1e00ff0处的访问无效严重:地址0x7fcde1e00ff0处的访问无效 严重:获取信号:7(总线错误) 此后,由于此异常,此主节点无法启动,次节点卡在STARTUP2状态 我可以作为独立节点(或在维护模式下)在不同端口上启动主节点并读取其数据。但每当我将其作为副本集的一部分运行时,它就会终止,出现上述异常 主设备和辅助设备将RAID0作为其存储设备。数据大小约为550GB 我将主节点(当前已关闭)的全部数据复制到辅助节点(处于STARTUP2状态),然后重新启动辅助节点。但它也不起作用。次节点在重新启动时被选为主节点,但在选择后的一秒钟内也被终止,但以下情况除外: 严重:logOp()中的致命数据库异常:10334 BSONObj大小:50359410(0x3006C72)无效。大小必须介于0和16793600(16MB)之间第一个元素:2:?类型=111 严重:调用terminate(),打印堆栈(如果为平台实现): 0x11fd1b1 0x11fc438 0x7ff56dc01846 0x7ff56dc01873 0xe54c9e 0xc4de1b 0xc58f46 0xa0bac1 0xa0c250 0xa0f1bf 0xa0fcc1 0xa1323e 0xa2949a 0xa2af32 0xa2cd36 0xd61654 0xba21a2 0xba3780 0x7724a9 0x11b2fde 在这种情况下,如何恢复和恢复副本集 我也有这个数据的备份。我可以删除此副本集并使用此备份数据重新创建副本集吗MongoDB副本集失败,mongodb,Mongodb,我有一个MongoDB副本集,由三个节点组成,一个主节点、一个辅助节点和一个仲裁节点 当我从主节点对辅助节点执行初始重新同步时,主节点被终止。当我检查主节点的日志时,显示的异常是 严重:地址0x7fcde1e00ff0处的访问无效严重:地址0x7fcde1e00ff0处的访问无效 严重:获取信号:7(总线错误) 此后,由于此异常,此主节点无法启动,次节点卡在STARTUP2状态 我可以作为独立节点(或在维护模式下)在不同端口上启动主节点并读取其数据。但每当我将其作为副本集的一部分运行时,它就会终
此MongoDB集群中还有另一个副本集工作正常。由于复制延迟,您的辅助服务器无法获得资格。 你能发布你的
rs.status()
的输出吗
您的辅助服务器可能有一个“找不到要同步的成员”infoMessage
由于内存不好,我以前也遇到过类似的情况。它可以是任何东西
通过将主服务器的数据复制到辅助服务器上的另一个文件夹中,并在其上的其他端口上启动一个新实例,然后将其添加到副本中(使用{force:true}
选项),以便辅助服务器可以从中同步
您还可以销毁复制副本并再次创建它,但请注意不要丢失复制副本的操作日志。您在配置文件中启用了身份验证吗?你能和我们分享一下配置文件吗?这样可以帮助我们更好地解决问题。不,身份验证没有启用。我试过了,但在故障排除了几天后找不到任何解决方案。因此,我重新创建了副本集并从备份中还原了数据。您可以共享您的配置文件吗?副本之间是否也有打开的端口?我现在没有确切的配置文件,但是我在那里(为数据节点)定义的参数是:
log path、dbPath、port、maxIncomingConnections、replSetName、oplogSizeMB、maxIncomingConnections
&设置了以下参数logAppend:true、journal:enabled:true,fork:true,enableLocalhostAuthBypass:false,NewCollectionsUsePowerofSizes:false,clusterRole:shardsvr
在复制之间也打开了端口我销毁了复制集并用备份数据重新创建了它,因为当时我没有找到任何其他解决方案。因此,我现在无法共享rs.status()
的输出。但我记得,输出显示主节点和仲裁节点为“不可访问/正常”,次节点为“STARTUP2”状态。