我正在使用Elastich Search和MongoDB开发应用程序。弹性搜索使用MongoDB oplog通过名为river的组件索引内容。
是否可以重置MongoDB oplog以使之前的所有条目都消失?
答案 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的最大值,并将其作为起点。