2016-06-03 6 views
2

Ich beschäftige mich mit der Verwendung eines TTL-Index für eine Sammlung in MongoDB und frage mich, wie der Effekt im Falle einer Wiederherstellung aussehen würde.Abgelaufene Mongo-Daten mit TTL-Index und Datenwiederherstellungen

Zum Beispiel, wenn ich die TTL auf einer Sammlung zu 2 Tagen eingestellt:

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

Wenn ich die täglichen Verwendung sichern war eine Woche später mongodump wieder herzustellen, würde die LogEvents Sammlung leer sein? Für mongodump/mongorestore habe ich erwogen, den Index manuell in logEvents.metadata.json vor dem Wiederherstellen zu ändern/entfernen - würde das funktionieren?

Wie sieht es mit dem Wiederherstellen von Rohdatendateien aus - wie kann ich den mongod-Dienst mit wiederhergestellten Raw-Dateien im Datadir starten, ohne dass Daten sofort ablaufen?

Antwort

2

Das ist ein schönes Problem!

Um zu überprüfen, dass ich eine Sammlung erstellt und Ihr Szenario getestet, wo Daten wiederhergestellt werden außerhalb der TTL.

Die Datensätze wurden wiederhergestellt und in den nächsten paar Sekunden aus der Sammlung entfernt.

Nach dem Ändern der Indexdetails in metadatafile konnte ich Datensätze außerhalb Original-TTL-Fenster auflisten.

entfernt Eintrag:

"expireAfterSeconds": 36,0

von Raw-Dateien wiederherstellen auch so lange ein Spiel haben könnte, wie Sie NMAP-Engine verwenden. WiredTiger speichert einige zusätzliche Daten außerhalb der Dateien und ich konnte die Sammlung aus der WT-Datei wiederherstellen.

Viel Spaß!

+0

Vielen Dank Prof, Ihre Antwort als das richtige sehen, als ob Sie getestet und bestätigt den Ansatz funktioniert. – Brett

+0

@Brett es ist mir ein Vergnügen :-) – profesor79

Verwandte Themen