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

Ein Artikel zeigt Ihnen, wie Sie den Watch-Listener von Vue verwenden

Inhaltsverzeichnis Hörer beobachten Format Richte...

Vue+video.js implementiert Video-Wiedergabelisten

In diesem Artikel wird der spezifische Code von v...

React implementiert eine mehrkomponentige Wertübertragungsfunktion über Conetxt

Die Wirkung dieser Funktion ist ähnlich wie vue的p...

Warum kann mein Tomcat nicht starten?

Inhaltsverzeichnis Phänomen: Portnutzung: Rechtsc...

Lösungen für den Fehler und die Ungültigkeit beim Öffnen von nginx.pid

Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...

Anweisungen zur Verwendung der Option --rm von Docker Run

Wenn der Docker-Container beendet wird, bleibt da...

So verwenden Sie die asynchrone Anforderungs-API von Axios in Vue

Inhaltsverzeichnis Einrichten einer einfachen HTT...

Führen Sie die Shell oder das Programm im Docker-Container auf dem Host aus.

Um zu vermeiden, dass für den Betrieb immer wiede...

Über 3 gängige Pakete der REM-Anpassung

Vorwort Ich habe bereits einen Artikel über REM-A...

Tutorial zum Bereitstellen von JDK und Tomcat auf CentOS7 ohne Schnittstelle

1. Installieren Sie xshell6 2. Stellen Sie eine S...

Beispielerklärung für langsame MySQL-Abfragen und -Protokolle

1. Einleitung Durch Aktivieren des Slow Query Log...

Was ist BFC? So löschen Sie Floats mithilfe von CSS-Pseudoelementen

BFC-Konzept: Der Blockformatierungskontext ist ei...

XHTML Basic 1.1, eine vom W3C empfohlene Auszeichnungssprache für mobiles Web

W3C hat kürzlich zwei Standards veröffentlicht, n...