我是MongoDB的新手。 我有一个在CentOS 6和Mongo 2.6.8上有3个成员(1个主要和2个副本)的副本。
其中一个副线由于内存消耗大而崩溃,我无法正确重启(由于某些数据损坏),所以我删除了数据arrays的全部内容以强制完全重新同步。
4个小时后,辅助同步并返回到副本集。 然而,它产生了25个“本地”文件(local.0 … local.24),而它以前只有2个(像其他成员一样),仅仅因为这些文件占用了超过60GB的磁盘空间。
而且,oplog的大小也改变了(以前是990MB,现在是47GB):
rs:SECONDARY> rs.printReplicationInfo(); configuration的oplog大小:47774.441162109375MB日志长度从头到尾:579127secs(160.87hrs)oplog第一个事件时间:星期二2015年6月23日16:53:13 GMT + 0100(IST)oplog最后一次事件时间:2015年6月30日星期二09:45: 20 GMT + 0100(IST)现在:Tue Jun 30 2015 09:45:20 GMT + 0100(IST)
自从发生这种情况以来,服务器一直在消耗大约130 GB的虚拟内存,并且显示出糟糕的性能。
我必须做另一个辅助完全同步(因为类似的问题),没有任何改变(它产生了2个“本地”文件和oplog的大小仍然是990MB)。
我在想:
“本地”数据库的这种行为的原因是什么?
为什么如果“本地”数据库没有被复制,这种行为会影响性能?
有没有办法将这个辅助节点改回原来的状态(只有2个本地文件和一个更小的oplog)? 我知道可以改变oplog的大小,但是我想知道是否可以停止服务,删除“本地”文件,使它们再次同步。
任何其他的build议都比欢迎(: