我正在使用Elastich Search和MongoDB開發應用程序。彈性搜索使用MongoDB oplog通過稱爲河流的組件對內容進行索引。重置MongoDB oplog
是否可以重置MongoDB oplog,以便所有以前的條目消失?
我正在使用Elastich Search和MongoDB開發應用程序。彈性搜索使用MongoDB oplog通過稱爲河流的組件對內容進行索引。重置MongoDB oplog
是否可以重置MongoDB oplog,以便所有以前的條目消失?
oplog用於複製,不應該被篡改。
的OPLOG是一個上限集合:
您不能刪除由封閉的託收。要從加蓋集合中刪除所有 記錄,請使用'emptycapped'命令。至 完全刪除集合,使用drop()方法。
http://docs.mongodb.org/manual/core/capped-collections/
您可能需要使用一個tailable cursor和尾部的OPLOG在河中。
如果您的應用程序要持續讀取oplog,它需要能夠以特定時間戳(ts)值開始的功能。如果沒有這種能力,如果應用程序(或mongod)因任何原因必須重新啓動,則必須重新處理它已經處理但仍在oplog中的所有oplog條目。如果應用程序具有以ts值開始的能力,那麼只需查詢oplog以獲取ts的最大值,並將其用作起點。
根據MongoDB文檔(http://docs.mongodb.org/manual/core/capped-collections/#recommendations-and-restrictions),有一個可以工作的空白命令。這聽起來對我來說不太好,因爲oplog對複製至關重要。清空它可能會破壞你的輔助。我不熟悉河流,但是可以忽略比X更老的條目嗎? –