MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Grundlegendes zu MongoDB-Sicherungsoptionen

Sicherungs- und Wiederherstellungsworkflows sind für jeden MongoDB-Produktionscluster äußerst wichtig. Abgesehen von der eigentlichen Funktionalität der Sicherung und Wiederherstellung müssen Sie auch andere nicht funktionale Aspekte wie die Verfügbarkeit von Sicherungen, Sicherheit, Wiederherstellungszeit, Wiederherstellungsgranularität usw. berücksichtigen. Auf hoher Ebene haben Sie drei Optionen zum Sichern Ihres MongoDB-Servers:

  1. Mongodump / Mongorestore
  2. MongoDB-Cloud-Manager
  3. Festplatten-Snapshots

Jede der drei oben genannten Techniken hat ihre eigenen Vor- und Nachteile. Lesen Sie unten, um mehr Details zu verstehen.

1. Mongodump / Mongorestore

Mongodump ist das Backup-Tool für die ersten Schritte für die meisten MongoDB-Entwickler. Auf diese Weise beginnen wahrscheinlich die meisten Entwickler mit der Sicherung ihrer MongoDB-Datenbank. Das Mongodump-Tool ist wirklich einfach zu verwenden und gibt alle Daten in der Datenbank im Binärformat (BSON) aus, die Sie an einem Ort Ihrer Wahl speichern können.

Vorteile:

  1. Einfach zu bedienen.
  2. Flexibilität beim Speicherort der Sicherung - Sobald der Dump abgeschlossen ist, können Sie ihn an einen beliebigen Ort Ihrer Wahl verschieben – NFS-Freigaben, AWS S3 usw.

Nachteile:

  1. Vollständige Sicherung, immer – Es ist ein vollständiges Backup, kein Unterschied zu Ihrem vorherigen Backup. Wenn Ihre Datenbank also groß wird, kann es Stunden dauern, bis die Sicherung abgeschlossen ist, und es ist unhandlich, sie zu speichern.
  2. Kein Zeitpunkt – Die von Mongodump erstellte Sicherung ist standardmäßig kein Point-in-Time-Snapshot. Wenn sich also Ihre Daten während des Backups ändern, kann dies zu einem Mongodump führen, der aus Anwendungssicht inkonsistent ist. Sie können dies beheben, indem Sie die Option „–oplog“ verwenden, die am Ende des Mongodump-Prozesses einen Schnappschuss erstellt. Diese Option ist jedoch nicht für eigenständige Datenbanken verfügbar

2. MongoDB Cloud-Manager

Cloud Manager ist ein Clouddienst, der vom MongoDB-Team bereitgestellt wird, um Ihnen bei der Sicherung Ihres MongoDB-Clusters zu helfen.

Vorteile:

  1. Einfach zu bedienen – Installieren Sie den MongoDB Cloud Manager-Agenten, um die Sicherung/Wiederherstellung Ihres Clusters zu verwalten. Es ist etwas komplizierter als die Verwendung von Mongodump, aber nicht viel.
  2. Kontinuierliche Sicherung – Der Cloud Manager fragt Ihr Oplog kontinuierlich ab und sichert es. Auf diese Weise können Sie zu einem beliebigen Zeitpunkt wiederherstellen, anstatt zu bestimmten Zeiten, zu denen die Sicherung erstellt wurde, wodurch Ihr Risiko von Datenverlusten minimiert wird.

Nachteile:

  1. Datenkontrolle – Die Sicherungsdaten werden außerhalb Ihrer Kontrolle im MongoDB-Rechenzentrum gespeichert. In einigen Teilen der Welt (z. B. Europa) und abhängig von Ihren Sicherheitsanforderungen kann dies ein großes Problem darstellen.
  2. Zusätzliche Kosten – Sie zahlen nach der Größe der Daten und der Menge der Oplog-Änderungen. Wenn Sie über eine große Datenbank oder eine hohe Anzahl von Schreibvorgängen verfügen, können sich diese Kosten summieren.
  3. Langsame Wiederherstellungen – Um Ihre Daten aus dem MongoDB Cloud Manager wiederherzustellen, müssen die Daten physisch aus dem Cloud Manager-Rechenzentrum heruntergeladen werden. Dies kann ein sehr zeitaufwändiger Vorgang sein, wenn Sie beispielsweise über eine große Datenbank verfügen. Wenn Ihre Daten beispielsweise 1 TB groß sind, kann es mehrere Stunden dauern, die Daten herunterzuladen und zu verwenden.

3. Festplatten-Snapshots

Snapshots können sich entweder auf Cloud-Ebene (z. B. AWS EBS-Festplatten-Snapshots) oder auf Betriebssystemebene (LVM-Snapshots) befinden. LVM-Snapshots sind zwar bequem, aber nicht einfach außerhalb der Maschine zu transportieren. Daher werden wir uns für den Rest dieser Diskussion auf Cloud-Festplatten-Snapshots wie AWS EBS-Snapshots konzentrieren.

Vorteile:

  1. Einfach und benutzerfreundlich – Relativ trivial um einen Snapshot einer EBS-Festplatte auszulösen.
  2. Portabilität – Sie können Ihre Snapshots in andere Rechenzentren verschieben, wenn Sie eine höhere Verfügbarkeit für Ihre Sicherungen benötigen.
  3. Diff-Snapshots – Die Snapshots sind Diff-Snapshots, sie speichern also nur die Änderungen Ihres vorherigen Snapshots. Dadurch wird der für Ihre Sicherung benötigte Speicherplatz reduziert.
  4. Keine Datenkopie – Es ist keine Datenkopie erforderlich, um Ihre Daten wiederherzustellen. Z.B. Wenn Sie einen 1-TB-Snapshot wiederherstellen möchten, können Sie einfach ein neues Volume aus dem Snapshot erstellen, und dies führt nicht zu einer tatsächlichen Datenkopie. Dies ist eine *große Sache* , wenn es um große Datenmengen geht.
  5. Backup-Steuerung – Die Backups verbleiben im selben Rechenzentrum wie Ihre primären Daten und werden durch dieselben Authentifizierungsmechanismen wie Ihre primären Datenserver gesichert.

Nachteile:

  1. Kein kontinuierliches Backup – Es handelt sich um eine Point-in-Time-Sicherung, die nur bis zu den Sicherungspunkten wiederhergestellt werden kann.
  2. Physische Maschinen - Physische Maschinen vor Ort können mit dieser Technik nicht gesichert werden.

Am Ende des Tages werden alle drei Optionen gut funktionieren, wenn Ihre Daten klein sind. Wenn Sie größere Datenmengen haben, müssen Sie Zeit investieren und die Option auswählen, die für Ihr Szenario am besten geeignet ist.