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:
|
>>: Installieren Sie mysql5.7.13 mit RPM in CentOS 7
Struktur Text, Kopf, HTML, Titel Text abbr, Akron...
Wenn wir beim Schreiben einiger UI-Komponenten di...
Würmer replizieren sich, wie der Name schon sagt,...
Heute möchte ich einen Countdown von Vue und Mome...
SQL-Anweisung DROP-TRIGGER WENN EXISTIERT sys_men...
Bei einem aktuellen Problem gibt es folgendes Phä...
Beängstigend, nicht wahr? Übersetzung im Bild: (v...
Inhaltsverzeichnis 1. Einleitung: 2. Docker: 1 Be...
Inhaltsverzeichnis Globales Objekt Globale Objekt...
Inhaltsverzeichnis 1. Quellcode 1.1 Monorepo 1.2 ...
Mixins bieten eine sehr flexible Möglichkeit, wie...
XML/HTML-CodeInhalt in die Zwischenablage kopiere...
Dieses Tutorial ist nur auf Windows-Systemen anwe...
Details zur Sicherheitsanfälligkeit VSFTP ist ein...
Die traditionelle Methode besteht darin, ein Quad...