Wie der Titel sagt, habe ich eine MongoDB
GridFS
-Datenbank mit einer ganzen Reihe von Dateitypen (z. B. text, pdf, xls), und ich möchte diese Datenbank am einfachsten sichern.
Die Replikation ist keine Option. Am liebsten würde ich es tun, die Datenbank in eine Datei zu speichern und dann diese Datei zu sichern (mit der man später die gesamte Datenbank zu 100% wiederherstellen könnte). Kann das mit mongodump
gemacht werden? Ich möchte auch, dass das Backup inkrementell ist. Ist das ein Problem mit GridFS
und mongodump
?
Am wichtigsten, ist das der beste Weg, es zu tun? Ich bin nicht so vertraut mit MongoDB
, wird mongodump
arbeiten sowie mysqldump
macht mit MySQL
? Was ist die beste Vorgehensweise für MongoDB
GridFS
und inkrementelle Backups?
Ich führe Linux
aus, wenn das einen Unterschied macht.
GridFS speichert Dateien in zwei Sammlungen: fs.files und fs. chunks.
Weitere Informationen hierzu finden Sie im Dokument "GridFS-Spezifikation": Ссылка
Beide Sammlungen können wie jede andere Sammlung mit mongodump gesichert werden. Die Dokumentation zu mongodump finden Sie hier: Ссылка
Von einem Terminal aus sieht das etwa so aus:
Für diese Demonstration lautet mein Datenbankname "gridFS":
Zunächst wird mongodump verwendet, um die Sammlungen fs.files und fs.chints in einem Ordner auf meinem Desktop zu speichern:
%Vor%Nun wird mongorestore verwendet, um die gesicherten Sammlungen in eine neue (zu Demonstrationszwecken dienende) Datenbank namens "gridFScopy"
zu übernehmen %Vor%Jetzt wird die Mongo-Shell gestartet, so dass die Wiederherstellung verifiziert werden kann:
%Vor%Die Sammlungen fs.chunks und fs.files wurden erfolgreich in der neuen DB wiederhergestellt.
Sie können ein Skript schreiben, um mongodump regelmäßig in Ihren fs.files- und fs.chunks-Sammlungen auszuführen.
Wie bei inkrementellen Backups werden sie von MongoDB nicht wirklich unterstützt. Eine Google-Suche nach "inkrementelles mongodb-Backup" zeigt eine gute Google Groups-Diskussion zu diesem Thema für Mongodb-Nutzer: Ссылка
Für kontinuierliche Sicherungen verwenden viele Benutzer einen Replikatsatz. (Sie haben festgestellt, dass Sie in Ihrer ursprünglichen Frage angegeben haben, dass dies keine Option ist. Dies ist für andere Mitglieder der Community eingeschlossen, die diese Antwort lesen.) Ein Mitglied eines Replikat-Sets kann ausgeblendet werden, um sicherzustellen, dass es nie wird Primary und wird nie von gelesen werden. Weitere Informationen hierzu finden Sie im Abschnitt "Member Options" der Replica Set Configuration-Dokumentation. Ссылка