So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux

So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux

Vorwort

Backup ist die Grundlage der Notfallwiederherstellung. Es bezieht sich auf den Vorgang des Kopierens aller oder eines Teils des Datensatzes von der Festplatte oder dem Array des Anwendungshosts auf andere Speichermedien, um Datenverlust aufgrund von Systembetriebsfehlern oder Systemausfällen zu verhindern. Für manche Websites und Systeme ist die Datenbank alles. Daher ist es von entscheidender Bedeutung, die Datenbank zu sichern!

Was ist Backup?

Dieses Beispiel erstellt ein Verzeichnis im Verzeichnis /mnt. Sie können es je nach Bedarf auch in anderen Verzeichnissen platzieren:

CD/MNT
mkdir dbback
Passwort
/mnt/dbback

Erstellen eines Shell-Skripts

Der Skriptname kann nach eigenen Vorgaben angepasst werden:

vim bcmysql.sh

Rufen Sie den Editor auf und geben Sie Folgendes ein:

#!/bin/bash
mysqldump -uusername -ppassword demo > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql

Wenn Sie die Datei komprimieren müssen, geben Sie den folgenden Befehl ein:

#!/bin/bash
mysqldump -uusername -ppassword demo | gzip > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql.gz

Bei bestimmten Vorgängen müssen Sie Benutzername, Passwort und Demo durch den entsprechenden Datenbankbenutzernamen, das entsprechende Passwort bzw. den Datenbanknamen ersetzen.

Ausführbare Berechtigungen hinzufügen

chmod u+x bcmysql.sh

Nach dem Hinzufügen der Ausführungsberechtigung kann beim Ausführen dieses Skripts die folgende Ausnahme auftreten:

mysqldump: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.

Dieses Problem dürfte in MySQL Version 5.6+ aufgetreten sein und könnte auf einen Schutzmechanismus zurückzuführen sein, der zur Gewährleistung der Sicherheit der Datenbank eingeführt wurde. Die in diesem Beispiel verwendete MySQL-Version ist 5.7.22. Obwohl Warnmeldungen angezeigt werden, können die Daten erfolgreich gesichert werden.

Ändern Sie die MySQL-Konfigurationsdatei

Als Reaktion auf das oben genannte Problem können einige Versionen möglicherweise nicht erfolgreich gesichert werden. Darüber hinaus wird nicht empfohlen, das Datenbankkennwort im Skript zu konfigurieren. Sie können die MySQL-Konfigurationsdatei direkt ändern. Im Allgemeinen befindet sich die MySQL-Konfigurationsdatei in /etc/my.cnf.

vim /etc/meine.cnf

Fügen Sie in dieser Datei die folgende Konfiguration zu mysqldump hinzu:

[mysqldump]
Benutzer=Ihr_Backup-Benutzername
password=Ihr_Backup-Passwort

Ersetzen Sie den entsprechenden Benutzernamen und das entsprechende Kennwort und ändern Sie den Befehl im Skript bcmysql.sh, um die Parameter Benutzername und Kennwort zu löschen. Sie können die Sicherungsergebnisse anzeigen, indem Sie das Skript direkt ausführen, ohne MySQL neu zu starten.

demo_20181114_193425.sql

Frage 1

Wenn Sie vim verwenden, um den Inhalt der exportierten SQL-Datei anzuzeigen, werden Sie feststellen, dass die chinesischen Schriftzeichen verstümmelt sind. Dieses Problem wird durch zwei Situationen verursacht. Die erste ist, dass der Zeichensatz der Datenbank selbst latain1 ist. In diesem Fall müssen Sie den Zeichensatz angeben und den Ausführungsparametern die folgenden Parameter hinzufügen:

--default-character-set=gbk

Wenn es UTF-8 ist, ändern Sie GBK natürlich in UTF-8. Der Befehl zum Anzeigen des Datenbankzeichensatzes lautet wie folgt:

Variablen wie „%char%“ anzeigen; 
-- Abfrageergebnis character_set_client utf8
Zeichensatzverbindung utf8
Zeichensatzdatenbank utf8mb4
character_set_filesystem binär
Zeichensatzergebnisse utf8
Zeichensatzserver UTF-8
Zeichensatzsystem UTF8
Zeichensatzverzeichnis /usr/local/mysql/share/charsets/

Wenn der Zeichensatz korrekt geändert wurde, aber weiterhin unleserliche Zeichen erscheinen, versuchen Sie, die folgenden Parameter hinzuzufügen:

--hex-blob

Analysieren Sie die Tabellenstruktur sorgfältig. Die Tabellenstruktur kann Blob-Typen enthalten. Die Bedeutung dieses Parameters besteht darin, Daten vom Typ BINARY, VARBINARY und BLOB im Hexadezimalformat zu exportieren. Der geänderte Befehl lautet wie folgt:

mysqldump --default-character-set=utf8 --hex-blob demo > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql

Hinzufügen einer geplanten Aufgabe

Crontab erkennen oder installieren

Wenn der Crontab-Befehl bei seiner Ausführung meldet, dass der Befehl nicht gefunden wurde, bedeutet dies, dass er nicht installiert ist.

# crontab
-bash: crontab: Befehl nicht gefunden

Wenn es nicht installiert ist, können Sie es über den Yum-Befehl installieren:

# yum -y installiere vixie-cron

Obwohl crontab die Befehle -h und –help nicht unterstützt, können Sie mit diesem Befehl überprüfen, ob die Installation erfolgreich war:

[root@iZ2zeck5vZ ~]# crontab -hilfe
crontab: ungültige Option --h
crontab: Nutzungsfehler: nicht erkannte Option
Verwendung:
crontab [Optionen] Datei
crontab [Optionen]
crontab -n [Hostname]
Optionen:
-u <Benutzer> Benutzer definieren
-e Crontab des Benutzers bearbeiten
-l Listet die Crontab des Benutzers auf
-r löscht die Crontab des Benutzers
-i Eingabeaufforderung vor dem Löschen
-n <host> Host im Cluster festlegen, um die Crontabs der Benutzer auszuführen
-c Host im Cluster abrufen, um Crontabs der Benutzer auszuführen
-s Selinux-Kontext
-x <Maske> aktiviert das Debuggen
Der Standardvorgang ist Ersetzen gemäß 1003.2

Hinzufügen einer geplanten Aufgabe

Durch die obigen Befehlsparameter können wir den Befehl zum Ändern von Crontab sehen und den Befehl ausführen:

crontab -e

Rufen Sie die Seite mit den Crontab-Bearbeitungsvorgängen auf und bearbeiten Sie deren Inhalt genau wie vi und vim. Fügen Sie den folgenden Befehl hinzu:

*/1 * * * * /mnt/dbback/bcmysql.sh

Diese Befehlszeile wird verwendet, um bcmysql.sh jede Minute auszuführen. Warten Sie eine Minute und überprüfen Sie dann mit dem Befehl ls, ob die Sicherungsdatei erstellt wurde. Es wurde festgestellt, dass die Datei normal generiert werden kann. Natürlich müssen wir nicht jede Minute ein Backup erstellen, daher ändern Sie den Befehl wie folgt:

0 1 * * * /mnt/dbback/bcmysql.sh

Jeden Tag um 1:00 Uhr wird ein Sicherungsvorgang durchgeführt.

Protokollansicht

Wenn die Ausführung fehlschlägt, können Sie das Aufgabenprotokoll anzeigen:

# tail -f /var/log/cron

Zusammenfassung

Bisher wurde eine einfache Version der MySQL-Datensicherungsfunktion für geplante Aufgaben unter Linux implementiert. Selbstverständlich können Sie auch Verzeichnisverwaltung, Verlaufslöschung und weitere Erweiterungen auf Basis dieser Version durchführen.

Zusammenfassen

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:
  • So konfigurieren Sie geplante MySQL-Aufgaben (EVENT-Ereignisse) im Detail
  • Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben
  • Analyse der Methode zum Einrichten geplanter Aufgaben in MySQL
  • Detaillierte Erläuterung der geplanten MySQL-Aufgaben (Ereignisereignisse)
  • Beispiel-Tutorial für geplante MySQL-Aufgaben
  • So implementieren Sie geplante MySQL-Aufgaben unter Linux
  • Analyse und Lösung der Gründe, warum geplante MySQL-Aufgaben nicht normal ausgeführt werden können

<<:  Beispiel für die Verwendung von MySQL zum Zählen der Anzahl unterschiedlicher Werte in einer Spalte

>>:  js zum Aufrufen der Netzwerkkamera und Behandeln häufiger Fehler

Artikel empfehlen

Gutes Website-Copywriting und gute Benutzererfahrung

Das Betrachten einer Website ist eigentlich wie di...

Details zu gängigen Javascript-Funktionen höherer Ordnung

Inhaltsverzeichnis 1. Gemeinsame Funktionen höher...

So richten Sie den Ziellink eines Tags auf ein Iframe

Code kopieren Der Code lautet wie folgt: <ifra...

7 Möglichkeiten zum Schreiben einer Vue v-for-Schleife

Inhaltsverzeichnis 1. Verwenden Sie in der v-for-...

Die ultimative Lösung zum Schreiben von Bash-Skripten mit Node.js

Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...

So ändern Sie das MySQL-Passwort unter Centos

1. MySQL-Anmeldeeinstellungen ändern: # vim /etc/...

Der Prozess der Installation von Docker im Linux-System

In diesem Blog führe ich Sie in einfachen Schritt...

Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7

yum oder rpm? Die Yum-Installationsmethode ist se...

Methode und Optimierungsprinzip für langsame MySQL-Abfragen

1. Zum Vergleich der Datumsgröße muss das an XML ...