我正在使用 Elastich Search 和 MongoDB 开发一个应用程序。弹性搜索使用 MongoDB oplog 通过一个名为 River 的组件来索引内容。
是否可以重置 MongoDB oplog 以使所有以前的条目都消失?
我正在使用 Elastich Search 和 MongoDB 开发一个应用程序。弹性搜索使用 MongoDB oplog 通过一个名为 River 的组件来索引内容。
是否可以重置 MongoDB oplog 以使所有以前的条目都消失?
oplog 用于复制,不应被篡改。
oplog 是一个有上限的集合:
您不能从有上限的集合中删除文档。要从上限集合中删除所有记录,请使用“emptycapped”命令。要完全删除集合,请使用 drop() 方法。
http://docs.mongodb.org/manual/core/capped-collections/
您可能想要使用可尾光标并在河中尾随 oplog。
如果您的应用程序要连续读取 oplog,它需要能够从特定的时间戳 (ts) 值开始。如果没有这种能力,如果应用程序(或 mongod)因任何原因必须重新启动,它将不得不重新处理它已经处理但仍在 oplog 中的所有 oplog 条目。如果应用程序确实有能力从 ts 值开始,那么只需在 oplog 中查询 ts 的最大值,并将其用作起点。