具有 TTL 索引和数据恢复的过期 mongo 数据

Bre*_*ett 5 indexing ttl mongodb

我正忙着考虑在 MongoDB 中的集合上使用 TTL 索引,并想知道恢复时会产生什么影响。

例如,如果我将集合的 TTL 设置为 2 天:

db.logEvents.ensureIndex({"datestamp":1},{expireAfterSeconds:172800})
Run Code Online (Sandbox Code Playgroud)

如果我一周后使用 mongodump Restore 备份每日日志,logEvents 集合是否为空?对于 mongodump / mongorestore,我正在考虑在恢复之前手动修改/删除索引logEvents.metadata.json- 这可行吗?

如果从原始数据文件恢复怎么办 - 如何在 datadir 中使用恢复的原始文件启动 mongod 服务而不立即使数据过期?

pro*_*r79 6

这是一个好问题!

检查我是否创建了一个集合并测试了您的场景,其中恢复的数据超出了 ttl。

记录被恢复并在接下来的几秒钟内从集合中删除。

更改元数据文件中的索引详细信息后,我能够列出原始 ttl 窗口之外的记录。

删除的条目:

,“秒后过期”:36.0

只要您使用NMAP引擎,从原始文件恢复也可以发挥作用。 WiredTiger在文件外部存储一些额外的数据,我无法从 WT 文件恢复集合。

玩得开心!