重置MongoDB oplog

时间:2013-06-26 12:51:07

标签: mongodb elasticsearch

我正在使用Elastich Search和MongoDB开发应用程序。弹性搜索使用MongoDB oplog通过名为river的组件索引内容。

是否可以重置MongoDB oplog以使之前的所有条目都消失?

2 个答案:

答案 0 :(得分:2)

oplog用于复制,不应被篡改。

oplog是一个上限集合:

  

您无法从上限集合中删除文档。要删除所有   来自上限集合的记录,使用'emptycapped'命令。至   完全删除集合,使用drop()方法。

http://docs.mongodb.org/manual/core/capped-collections/

您可能希望使用tailable cursor并在您的河中拖动oplog。

答案 1 :(得分:1)

如果您的应用程序要继续读取oplog,则需要能够以特定时间戳(ts)值启动。如果没有这种能力,如果由于任何原因必须重新启动应用程序(或mongod),它将不得不重新处理它已经处理但仍在oplog中的所有oplog条目。如果应用程序确实能够以ts值启动,那么只需在oplog中查询ts的最大值,并将其作为起点。