So implementieren Sie eine automatische Remote-Sicherung von MongoDB unter Linux

So implementieren Sie eine automatische Remote-Sicherung von MongoDB unter Linux

Vorwort

Nachdem ich den vorherigen Artikel über die Mühen der Übernahme eines alten Projekts gelesen hatte – das Erlernen und Erstellen eines MongoDB-Clusters –, erfuhr ich, dass ich kürzlich ein Projekt übernommen hatte, das von einer Stiefmutter geleitet wurde. Niemand pflegte die Datenbank des Projekts, und der DBA weigerte sich aus verschiedenen Gründen, dies vorerst zu übernehmen. Angesichts der nackten Datenbank ohne Backup war ich sehr besorgt und verbrachte einige Zeit damit, ein automatisches Backup der Produktionsumgebung einzurichten.

Werfen wir einen Blick auf die ausführliche Einführung.

Einige Vorbereitungen

Da alles gesichert wurde, werden das Backup und die Bibliothek aus Sicherheitsgründen nicht auf demselben Server abgelegt. Daher habe ich einen Server bei Betrieb und Wartung beantragt und gleichzeitig Mongo installiert. Wenn Sie nicht wissen, wie Sie Mongo installieren, können Sie meinen vorherigen Artikel lesen.

Testen Sie nach der Installation zunächst, ob Sie remote auf das Ziel-MongoDB zugreifen können. Wechseln Sie dazu in das Bin-Verzeichnis, in dem Mongo installiert ist.

./mongo 10.100.1.101:27017 #Ziel-IP und -Port von Mongo

Erstellen Sie dann einige erforderliche Verzeichnisse, beispielsweise das Verzeichnis, in dem die Sicherungsdateien abgelegt werden sollen.

Testen Sie als Nächstes die Verwendung von mongodump zum Sichern der Datenbank:

./bin/mongodump --host test/10.100.1.101:27017,10.100.1.102:27017 -d testdb --out /data/temp

# test ist der Name des Replikationssets# 10.100.1.101:27017,10.100.1.102:27017 sind Replikationssetknoten. Sie können mehrere Knoten haben# -d testdb ist der Name der zu sichernden Datenbank. Wenn nicht ausgefüllt, alle Knoten im Standardreplikatset# --out Speicherpfad

An diesem Punkt wurde die Mongo-Sicherung implementiert und jetzt müssen wir sie nur noch automatisieren.

Ein Skript schreiben

Die automatische, geplante Sicherung wird tatsächlich über den Befehl crontab durchgeführt. Voraussetzung ist jedoch, dass wir ein Skript schreiben müssen, das regelmäßig ausgeführt wird. Zuerst erstellen wir ein neues Skript:

vi /home/local/mongod_bak.sh

Schreiben Sie dann das entsprechende Skript. Es gibt entsprechende Kommentare zum Skript zu Ihrer Information. Hier gibt es drei Hauptaktionen. Die erste besteht darin, eine Sicherungskopie zu erstellen, dann die Sicherungsdatei zu komprimieren und dann nur die Dateien der letzten 7 Tage aufzubewahren.

#!/bin/bash
Quellpfad = '/home/local/mongodb/bin' #MongoDB-Dateipfad Zielpfad = '/home/local/mongodb_bak' #Sicherungspfad nowtime = $ (Datum + %Y-%m-%d-%H)
replicationname='test' #Name des Replikatsatzes dbname='testdb' #Datenbankname port='27017' #Port ip1='10.100.1.101' #IP
ip2='10.100.1.102'

echo "=============== Sicherung starten ${nowtime} ================="
Start()
{
 ${sourcepath}/mongodump --host ${Replikationsname}/${ip1}:${port},${ip2}:${port} -d ${dbname} --out ${targetpath}/${nowtime}
}
ausführen()
{
 Start
 wenn [ $? -eq 0 ]
 Dann
 echo "zurück erfolgreich!"
 anders
 Echo "Rückwärtsfehler!"
 fi
}
 
wenn [ ! -d "${Zielpfad}/${Jetztzeit}/" ]
Dann
 mkdir ${Zielpfad}/${Jetztzeit}
fi
ausführen
echo "=============== Back-End ${nowtime} ================="

echo "=============== Zip starten ${nowtime} ==============="
zip -r ${Zielpfad}/${jetztzeit}.zip ${Zielpfad}/${jetztzeit}
rm -rf ${Zielpfad}/${Jetztzeit}
echo "=============== zip end ${nowtime} ==============="

echo "================ Löschen vor sieben Tagen starten zurück ${nowtime} ================="
finde ${Zielpfad} -Typ f -mtime +7 -name "*" -exec rm -rf {} \; 
echo "=============== löschen Ende ${nowtime} ================="

Geben Sie der Datei nach dem Schreiben Ausführungsberechtigungen und führen Sie den Test manuell aus:

chmod +x /home/local/mongod_bak.sh

Geplante Aufgaben

Der letzte Schritt besteht darin, einen Ausführungsplan hinzuzufügen und /etc/crontab zu ändern

crontab -e

Fügen Sie das Ausführungsskript hinzu und speichern Sie es.

30 1 * * * /home/local/mongod_bak.sh #Gibt an, dass die Sicherung jeden Tag um 1:30 Uhr durchgeführt wird

Hier ist eine kurze Einführung in crontab.

Der Befehl crontab ist in Unix- und Unix-ähnlichen Betriebssystemen weit verbreitet und wird zum Festlegen von Anweisungen verwendet, die regelmäßig ausgeführt werden sollen. Dieser Befehl liest Anweisungen vom Standardeingabegerät und speichert sie zum späteren Lesen und Ausführen in der Crontab-Datei.

Normalerweise werden die in crontab gespeicherten Anweisungen vom Daemon-Prozess aktiviert. Crond läuft oft im Hintergrund und prüft jede Minute, ob geplante Jobs zur Ausführung vorhanden sind. Diese Jobs werden allgemein als Cron-Jobs bezeichnet.

Nachfolgend finden Sie einige häufig verwendete Befehle:

#Dienst starten /sbin/service crond start 

#Beenden Sie den Dienst /sbin/service crond stop 

#Dienst neu starten /sbin/service crond restart 

#Konfiguration neu laden /sbin/service crond reload 

#Crontab-Dienststatus anzeigen Dienst Crond-Status 

#Starten Sie den Crontab-Dienst manuell service crond start 

#Überprüfen Sie, ob der Crontab-Dienst so eingestellt ist, dass er beim Booten gestartet wird, und führen Sie den Befehl aus:
ntsysv

#Automatischen Start hinzufügen:
chkconfig --level 35 crond ein

# Crontab-Dateien auflisten crontab -l

#Crontab-Datei bearbeiten crontab -e

#Crontab-Datei löschen $ crontab -r

#Stellen Sie die verlorene Crontab-Datei wieder her. #Angenommen, Sie haben eine Sicherungskopie in Ihrem $HOME-Verzeichnis, können Sie diese nach /var/spool/cron/<username> kopieren, wobei <username> Ihr Benutzername ist. #Oder verwenden Sie den folgenden Befehl, wobei <filename> der Dateiname Ihrer Kopie im $HOME-Verzeichnis ist: crontab <filename>

Zusammenfassen

Langsames Arbeiten führt zu guter Arbeit. Manche Dinge mögen zunächst schwierig und mühsam erscheinen, aber wenn Sie sich beruhigen und sie sorgfältig studieren, sind sie dennoch leicht zu verstehen. Schließlich sind Sie nicht der Erste, der in die Falle tappt, also sollten Sie fleißig lernen.

Nun, das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Batch-Skript zum automatischen Sichern von MongoDB unter Windows
  • Detaillierte Erläuterung der automatischen Sicherung der MongoDB-Datenbank unter Linux
  • MongoDB erreicht vollständige Prozessaufzeichnung der automatischen Sicherung

<<:  Detaillierte Erläuterung der Selbstimplementierung von Dispatch und Broadcast (Dispatch und Broadcast) durch Vue

>>:  Installieren Sie mysql5.7.13 mit RPM in CentOS 7

Artikel empfehlen

Allgemeine Struktur-Tags in XHTML

Struktur Text, Kopf, HTML, Titel Text abbr, Akron...

React implementiert dynamische Popup-Fensterkomponente

Wenn wir beim Schreiben einiger UI-Komponenten di...

Grundlegende Kenntnisse zur MySQL-Wurmreplikation

Würmer replizieren sich, wie der Name schon sagt,...

Verwenden Sie momentJs, um eine Countdown-Komponente zu erstellen (Beispielcode)

Heute möchte ich einen Countdown von Vue und Mome...

Implementierungscode für den MySQL-Protokolltrigger

SQL-Anweisung DROP-TRIGGER WENN EXISTIERT sys_men...

Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status

Bei einem aktuellen Problem gibt es folgendes Phä...

Wer ist ein User Experience Designer?

Beängstigend, nicht wahr? Übersetzung im Bild: (v...

Was sind die Kernmodule von node.js

Inhaltsverzeichnis Globales Objekt Globale Objekt...

Eine kurze Diskussion über einige Vorteile von Vue3

Inhaltsverzeichnis 1. Quellcode 1.1 Monorepo 1.2 ...

Besprechen Sie die Anwendung von Mixin in Vue

Mixins bieten eine sehr flexible Möglichkeit, wie...

Installieren von MySQL 8.0.12 basierend auf Windows

Dieses Tutorial ist nur auf Windows-Systemen anwe...

Detaillierte Analyse der Kompilierung und Installation von vsFTP 3.0.3

Details zur Sicherheitsanfälligkeit VSFTP ist ein...

Ein Beispiel für die Implementierung eines adaptiven Quadrats mit CSS

Die traditionelle Methode besteht darin, ein Quad...