Die Notfallwiederherstellung wird ohne ein geeignetes Sicherungssystem nicht abgeschlossen. Wenn etwas Schlimmes passiert, können die Daten wiederhergestellt werden, indem die Sicherung vorzugsweise mit der neuesten verwendet wird. Möglicherweise möchten wir vermeiden, dass Daten wiederhergestellt werden, die nicht aktualisiert wurden. Wahrscheinlich fehlen bei der alten Sicherung einige Informationen. Aus diesem Grund ist eine gute Backup-Praxis heutzutage für die meisten Systeme entscheidend.
MongoDB wird von Jahr zu Jahr beliebter. Viele Unternehmen haben begonnen, MongoDB als eine ihrer Datenbanken zu verwenden. Eines der Merkmale und wahrscheinlich der Grund, warum MongoDB so beliebt ist, ist seine Geschwindigkeit und MongoDB ist einfach zu skalieren. MongoDB ist eine der unterstützten Datenbanken in ClusterControl. Sie können mit ClusterControl bereitstellen, importieren, skalieren und sogar die Sicherung durchführen. In diesem Blogbeitrag gehen wir auf die erweiterte Sicherungsfunktion für den MongoDB-Replikatsatz und den fragmentierten Cluster ein.
MongoDB-Sicherungstypen
MongoDB unterstützt sowohl logische als auch physische Sicherungen. Darüber hinaus unterstützt MongoDB auch Point-In-Time-Recovery (PITR). Sehen wir uns an, was der Unterschied zwischen allen 3 Sicherungsarten ist.
Logisches Backup | mongodump | Dieses Dienstprogramm erstellt einen binären Export des Inhalts einer Datenbank. Nicht nur das, mongodump kann Daten entweder aus mongod- oder mongos-Instanzen exportieren, kann Daten aus Standalone-, Replikat-Set- und Sharding-Cluster-Bereitstellungen exportieren |
Physische Sicherung | NA | Physische Sicherung in MongoDB konnte nur auf Systemebene durchgeführt werden. Derzeit ist in ClusterControl kein physisches Backup verfügbar. Die Art und Weise, wie eine physische Sicherung funktioniert, besteht darin, einen Snapshot auf LVM oder einer Speicher-Appliance zu erstellen. |
PITR | Percona-Sicherung für MongoDB | Percona Backup for MongoDB geerbt von und ersetzt mongodb_consistent_backup, das bereits veraltet ist. Es handelt sich um eine verteilte Lösung mit geringen Auswirkungen, um konsistente Sicherungen sowohl für MongoDB-Shard-Cluster als auch für Replikatsätze zu erreichen. Diese Art der Sicherung ist logisch, könnte aber gleichzeitig als PITR-Sicherung dienen. |
Nun, da wir wissen, was der Unterschied zwischen den Backup-Typen ist.
MongoDB-Sicherungsverwaltung
ClusterControl ermöglicht es Ihnen, das Backup in Echtzeit zu erstellen und es nach Ihrem gewünschten Zeitplan zu planen. Eine erwähnenswerte Sache, falls Sie planen möchten, verwendet ClusterControl die UTC-Zeitzone. Sie müssen also die richtige Zeit auswählen, die zu Ihrer Zeitzone passt, damit der Zeitplan in der weniger ausgelasteten Zeit ausgeführt wird.
Lassen Sie uns weitermachen und versuchen, die Sicherungsfunktion in ClusterControl zu verwenden. Darüber hinaus werden wir auch eine der erweiterten Funktionen überprüfen, nämlich das Hochladen des Backups in die Cloud. Beginnend mit ClusterControl 1.9.0 unterstützt MongoDB Cloud-Upload, mit dem Sie das Backup auf Ihren bevorzugten Cloud-Speicheranbieter hochladen können.
Logische MongoDB-Sicherung
Beginnen wir mit dem logischen Backup. Bevor die Funktion zum Hochladen des Backups in die Cloud verwendet werden kann, müssen Sie sie bei Ihrem bevorzugten Cloud-Anbieter integrieren. In unserem Fall werden wir es in die AWS-Cloud integrieren. Um die vollständige AWS-Integration durchzuführen, können Sie die folgenden Schritte ausführen:
-
Verwenden Sie die E-Mail-Adresse und das Passwort Ihres AWS-Kontos, um sich bei der AWS-Managementkonsole als Root-Benutzer des AWS-Kontos anzumelden .
-
Wählen Sie auf der IAM-Dashboard-Seite Ihren Kontonamen in der Navigationsleiste und dann Meine Sicherheitsanmeldeinformationen aus.
-
Wenn Sie eine Warnung bezüglich des Zugriffs auf die Sicherheitsanmeldeinformationen für Ihr AWS-Konto sehen, wählen Sie Weiter zu Sicherheitsanmeldeinformationen.
-
Erweitern Sie den Abschnitt Zugriffsschlüssel (Zugriffsschlüssel-ID und geheimer Zugriffsschlüssel).
-
Wählen Sie Neuen Zugriffsschlüssel erstellen. Wählen Sie dann Download Key File (Schlüsseldatei herunterladen), um die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel in einer Datei auf Ihrem Computer zu speichern. Nachdem Sie das Dialogfeld geschlossen haben, können Sie diesen geheimen Zugriffsschlüssel nicht erneut abrufen.
Angenommen, Sie haben den MongoDB-Cluster bereits bereit, beginnen wir mit unserem Backup-Prozess. Gehen Sie zuerst zu MongoDB-Cluster -> Sicherung -> Sicherung erstellen
Auf der nächsten Seite können Sie entweder die Verschlüsselung aktivieren oder angeben nicht. Zur Verschlüsselung verwendet ClusterControl OpenSSL, um die Sicherung mit dem AES-256 CBC-Algorithmus zu verschlüsseln. Die Verschlüsselung erfolgt auf dem Backup-Knoten. Wenn Sie sich dafür entscheiden, die Sicherung auf dem Controller-Knoten zu speichern, werden die Sicherungsdateien in verschlüsseltem Format über socat oder netcat gestreamt. Die Verschlüsselung wird als eine der erweiterten Sicherungsfunktionen angesehen, die verwendet werden könnten, daher werden wir diese Option in unserem Fall aktivieren. Auf dieser Seite können Sie auch die Aufbewahrungsfrist Ihres Backups definieren. In unserem Fall verwenden wir die Standardeinstellung von 31 Tagen.
Auf der dritten Seite müssen Sie den Login für den Cloud-Anbieter angeben , wählen/erstellen Sie den Bucket. Sie können auch die Aufbewahrung für Ihr Cloud-Backup festlegen, die Standardeinstellung ist 180 Tage.
Sobald Sie auf die Schaltfläche Sicherung erstellen klicken, wird der Job sofort gestartet und wird je nach Datenbankgröße eine Weile dauern. Gleichzeitig wird das Backup in den Cloud-Speicher (AWS) hochgeladen. Möglicherweise bemerken Sie, dass die Symbole „Schlüssel“ und „Wolke“ hervorgehoben werden, nachdem die Sicherung wie folgt abgeschlossen ist:
Da Sie nun die Sicherung bereit haben, müssen Sie die Sicherung wiederherstellen sehr einfach. Alles, was Sie tun müssen, ist, auf den Link „Wiederherstellen“ zu klicken und auf der Wiederherstellungsseite wie folgt auf die Schaltfläche „Fertig stellen“ zu klicken:
MongoDB-PITR-Sicherung
Wie bereits erwähnt, ist Percona Backup for MongoDB ein PITR-Sicherungstyp. Bevor Sie diesen Sicherungstyp verwenden können, müssen Sie den Agenten (pbm-agent) auf allen MongoDB-Knoten/-Instanzen installieren. Zuvor müssen Sie auch auf allen Knoten ein freigegebenes Verzeichnis einhängen. Fangen wir an!
Zunächst müssen Sie den NFS-Server konfigurieren. Um einen NFS-Server zu installieren, müssen Sie eine beliebige virtuelle Maschine auswählen oder bereitstellen, in unserem Fall installieren wir den NFS-Server im ClusterControl-Knoten (Centos):
[[email protected] ~]# dnf install nfs-utils
Sobald das NFS-Dienstprogramm installiert ist, können Sie den Dienst starten und beim Systemstart aktivieren:
[[email protected] ~]# # systemctl start nfs-server.service
[[email protected] ~]# # systemctl enable nfs-server.service
[[email protected] ~]# # systemctl status nfs-server.service
Der nächste Schritt besteht darin, die Datei /etc/exports so zu konfigurieren, dass das Verzeichnis für die NFS-Clients zugänglich ist:
[[email protected] ~]# vi /etc/exports
/mnt/backups 10.10.80.10(rw,sync,no_root_squash,no_subtree_check)
Im Kundenknoten, der unser Datenbankknoten ist, müssen wir auch die notwendigen NFS-Pakete installieren:
[[email protected] ~]# dnf install nfs-utils nfs4-acl-tools
Sobald die Pakete installiert sind, können wir das Verzeichnis erstellen und einhängen:
[[email protected] ~]# mkdir -p /mnt/backups
[[email protected] ~]# mount -t nfs 10.10.80.10:/mnt/backups /mnt/backups
Stellen Sie sicher, dass alle Datenbankknoten gemountet sind, damit wir den pbm-agent installieren können. In Anbetracht der Tatsache, dass alle Knoten bereits das NFS-gemountete Verzeichnis haben, werden wir jetzt mit der Installation des Agenten fortfahren. Gehen Sie zu MongoDB-Cluster -> Sicherung -> Einstellungen -> Percona-Sicherung
Sobald Sie auf die Schaltfläche Percona Backup installieren klicken, wird der folgende Bildschirm angezeigt . Hier müssen Sie das freigegebene Verzeichnis angeben. Stellen Sie erneut sicher, dass das Verzeichnis in allen Ihren MongoDB-Knoten gemountet wurde. Nachdem das Sicherungsverzeichnis angegeben wurde, können Sie auf die Schaltfläche Installieren klicken und warten, bis die Installation abgeschlossen ist.
Die erfolgreiche Installation sollte wie im folgenden Screenshot aussehen. Jetzt könnten wir mit dem Sicherungsvorgang fortfahren:
Um die Sicherung mit Percona Backup zu erstellen, sind die Schritte einfach. Leider konnten Sie die Option zum Verschlüsseln des Backups mit dieser Methode nicht nutzen. Um die Funktion zum Hochladen in die Cloud zu verwenden, müssen Sie die Option aktivieren, bevor Sie den Backup-Typ auswählen, sonst wird Ihr Backup nicht hochgeladen. Sie werden feststellen, dass die Upload-Funktion verschwindet, sobald Sie „percona-backup-mongodb“ auswählen.
Auf der zweiten Seite können Sie die lokale Aufbewahrung angeben:
Auf der letzten Seite können Sie die Cloud-Details und die Aufbewahrung angeben im vorherigen Beispiel. Der Wiederherstellungsprozess ist derselbe wie im vorherigen Beispiel, Sie müssen lediglich auf den Link „Wiederherstellen“ klicken und den Schritten auf der Wiederherstellungsseite folgen:
Fazit
Mit ClusterControl können Sie Ihr MongoDB-Backup erstellen und in die Cloud hochladen. Das Hochladen in die Cloud ist eine der neuen und erweiterten Funktionen für MongoDB, die ab ClusterControl 1.9.0 eingeführt wurde, vorausgesetzt, die Integration in den Cloud-Anbieter wurde erfolgreich durchgeführt. Sie können Ihr Backup auch mit ClusterControl verschlüsseln, wenn Sie Ihr Backup schützen möchten.