我的三台服务器的MongoDB副本集处于一种状态,即主服务器已启动,但两个辅助服务器都已关闭。
重新启动辅助设备,它们都报告" 10081太多名称空间/集合"在错误日志中,服务器已经死了。
从我的主要设备中我可以删除集合,但重新启动辅助设备仍会报告错误。
如何从主要部分清理我的混乱,并允许辅助设备启动?
更新:
我清空了两个辅助节点的数据目录,然后重新启动它们以从主节点进行全新同步。这似乎有效,除了在同步期间他们收到某种腐败的索引警告,并再次崩溃。
我得到的错误是"哈希表命名空间索引最大链达到:1335"后跟"没有NamespaceDetails索引:{}"
现在主要发生此错误,包括运行" mongod --repair"
如何从此命名空间错误中恢复?
答案 0 :(得分:2)
礼貌地说:你有麻烦了。您确切的问题是您必须增加名称空间大小,而不能动态增加(yet)。
以下是您需要做的事情:
mongodump --dbpath /path/to/datafiles --journal --dumpDbUsersAndRoles
--dbpath
选项,连接到正在运行的实例!)如果对这些步骤有任何疑问,请咨询(阅读"雇用")专家。
答案 1 :(得分:0)
我这样做了:
主要(控制台)
rs.remove("second")
rs.remove("second2")
然后停止second1和second2
Service mongod stop
转到second1和second2 和更改配置(nsSize,设置)加上:
cd /var/lib/mongodb # Path where mongodb data is saved
rm *
rm -r *
Service mongod start
等到他们都说等待端口27017上的连接(在日志中) 然后在Primary(mongo Shell)
rs.add("second1")
rs.add("second2")
然后他们将复制旧数据并将其放在那里。