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

Wie kann ich mich von einem MongoDB-Rollback erholen?

Wenn Sie einen MongoDB-Replikatsatz in einer öffentlichen Cloud-Umgebung für einen angemessenen Zeitraum ausführen, stehen die Chancen gut Sie haben einen „Rollback“ erlebt. Es klingt entmutigend, aber es gibt einfache Schritte, um Ihre Daten wiederherzustellen, falls Ihr System einen Rollback erleidet.

Wann erfolgt ein Rollback?

Ein Rollback in einem MongoDB-Replikatsatz kann in der folgenden Abfolge von Schritten erfolgen
1. Eine primäre MongoDB akzeptiert Schreibvorgänge, die noch nicht auf andere sekundäre Datenbanken repliziert wurden, und stürzt dann ab
2. Ein anderer Server wird primär und akzeptiert andere Schreibvorgänge
3. Wenn die vorherige Primärseite wieder hochgefahren wird und ihren Zustand mit der Mehrheit neu synchronisiert

Kann ich verhindern, dass Rollbacks überhaupt stattfinden?

Sicher. Aber wie immer hat es seinen Preis. Sie können Ihr Schreibinteresse auf „MAJORITY“ setzen. Dies erfordert, dass alle Ihre Schreibvorgänge an eine Mehrheit der Knoten im Replikatsatz übergeben werden, bevor MongoDB sie erfolgreich bestätigen kann. Dies wirkt sich jedoch dramatisch auf Ihren Schreibdurchsatz aus. In der realen Welt könnte es also ein guter Ausgleich sein, den Schreibbereich „MAJORITY“ nur für Schreibvorgänge wichtiger Transaktionsdaten zu verwenden

Wie stellt man Daten nach einem Rollback wieder her?

Im Folgenden finden Sie vier einfache Schritte zur Wiederherstellung Ihrer Daten im Falle eines Rollbacks

1.  Die Rollback-Dateien finden
Wenn ein Rollback auftritt, werden die BSON-Dateien der Rollback-Daten im „Rollback“-Verzeichnis Ihres MongoDB-Datenpfads platziert. Die Dateien sehen in etwa so aus

<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson

2. Laden Sie die Daten aus dem Rollback in eine separate Datenbank oder einen separaten Server
Ich ziehe es vor, die Rollback-Dateien auf einen neuen Server zu kopieren und Mongorestore zu verwenden, um sie auf den Server zu laden. Hier ist die Syntax, die Sie verwenden können

mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>

3.  Sichten Sie die Daten und bereinigen Sie nicht benötigte Daten
An dieser Stelle müssen Sie als Datenbankadministrator nach eigenem Ermessen entscheiden, welche Daten aus dem Rollback Sie behalten möchten und welche Daten keinen Sinn mehr machen. In den meisten Fällen ist es unwahrscheinlich, dass Sie einfach alle Daten importieren können. Dies ist wahrscheinlich der schwierigste Schritt bei der Rollback-Wiederherstellung.

4. Importieren Sie Daten in den primären Cluster
Verwenden Sie die Tools mongodump und mongorestore, um die bereinigten Daten herunterzuladen und sie erneut in Ihren ursprünglichen Produktionscluster zu importieren.

Weitere Informationen zu Rollback-Vorgängen finden Sie in der offiziellen MongoDB-Dokumentation