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

时间:2016-06-03 14:17:53

标签: mongodb indexing ttl

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

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

db.logEvents.ensureIndex({"datestamp":1},{expireAfterSeconds:172800})

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

如果从原始数据文件恢复怎么办?如何在数据库中恢复原始文件的情况下启动mongod服务而不会立即使数据过期?

1 个答案:

答案 0 :(得分:3)

这是一个很好的问题!

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

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

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

删除了条目:

  

, “expireAfterSeconds”:36.0

只要您使用NMAP引擎,从原始文件恢复也可能有效。 WiredTiger在文件外部存储了一些额外的数据,我无法从WT文件中恢复收集。

玩得开心!

相关问题