Ich möchte tägliche Backups für eine einzige Mongodb-Datenbank, wahrscheinlich mit Mongodump. Um keine Daten zu verlieren, möchte ich, dass dies inkrementell geschieht. Wenn also etwas mitten am Tag schief geht, muss ich die Änderungen für diesen Tag bis zum Zeitpunkt des Fehlers nach dem Erstellen eines Mongorestores wiederholen können.Möchten Sie ein inkrementelles Backup für Mongodb tun. Journaling? Oplog?
Verstehe ich richtig, dass ich ein oplog dafür verwenden muss? Oder journalisiert man die Antwort? Ich habe folgendes versucht:
- Meine Mongo-Datenbank in ein Replikat-Set von nur einem, so dass es ein Oplog erstellt. (Das fühlt sich ziemlich hacky)
- Neustarten mongod mit der --oplog Option
- Änderungen durchführen, die in der oplog aufgezeichnet werden soll
jedoch nichts jemals in der oplog gespeichert wird. Was ist der beste Weg, um solche inkrementellen Backups durchzuführen? Ich bin im Grunde auf der Suche nach einem ähnlichen Ansatz für die Wiedergabe des mysql binlog.
Dank
Danke für die Klarstellung, ich habe mir das gestern genauer angeschaut und ich verstehe was passieren muss. Was ich machen möchte, ist einen täglichen Mongodump zu machen, es in S3 zu speichern und jede Stunde mein Oplog in S3 zu speichern. Ich habe zwei Follow-up-Fragen, wenn Sie so freundlich wären: 1. Mein oplog ist in der lokalen Datenbank gespeichert und ich kann jetzt von der Mongo-Shell darauf zugreifen. Um das oplog zu sichern, kann ich einfach alle meine lokalen (1-N) und local.ns Dateien nach s3 kopieren? 2. Wie können oplogs am besten wiedergegeben werden? Ist mongorestore --oplogReplay genug dafür? Vielen Dank! –
mongodump --oplog stellt sicher, dass alle Oplog-Einträge, die während des Speicherabzugs erstellt wurden, mit mongorestore --oplogReplay wiedergegeben werden können. Sie können mongorestore --oplogReplay nicht verwenden, um die nach dem Abschluss des Speicherabzugs aufgetretenen oplog-Vorgänge erneut anzuzeigen. Eine Lösung, die Sie untersuchen können, ist, die oplog-Sammlung stündlich auszugeben und den Befehl applyOps zu verwenden: http://docs.mongodb.org/manual/reference/commands/#applyOps – Jenna
Dies könnte hacky sein .. aber ich denke mit mongorestore --oplogReplay hat tatsächlich funktioniert. Was ich getan habe, war das Moglove des Oplogs, bewegte die resultierenden 'oplog.rs'.bson 'zu' dump/oplog.bson 'und rannte mongorestore --oplogReplay. Ist das gefährlich? Wenn es so ist werde ich definitiv mit der applyOps Technik gehen. –