Mehrere Möglichkeiten zum Planen der Sicherung einer MySQL-Datenbank (umfassend)

Mehrere Möglichkeiten zum Planen der Sicherung einer MySQL-Datenbank (umfassend)

1. mysqldump-Befehl zum Sichern von Daten

MySQL bietet mit mysqldump ein praktisches Tool zum Exportieren von Datenbankdaten und -dateien über die Befehlszeile. Wir können den Datenbankinhalt direkt über die Befehlszeile exportieren und sichern. Werfen wir zunächst einen kurzen Blick auf die Verwendung des Befehls mysqldump :

#MySQLdump häufig verwendet mysqldump -u root -p --databases Datenbank 1 Datenbank 2 > xxx.sql


2. Beispiele für gängige mysqldump-Operationen

Sichern Sie die Daten und die Struktur aller Datenbanken

mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql

Sichern Sie die Struktur der gesamten Datenbank (fügen Sie den Parameter -d hinzu).

mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql

Sichern Sie alle Datenbankdaten (fügen Sie den Parameter -t hinzu)

mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql

Sichern Sie die Daten und die Struktur einer einzelnen Datenbank (Datenbankname mydb).

mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql

Sichern der Struktur einer einzelnen Datenbank

mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql

Sichern einer einzelnen Datenbank

mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql

Sichern Sie die Daten und die Struktur mehrerer Tabellen (die Methode zum separaten Sichern von Daten und Strukturen ist dieselbe wie oben).

mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql

Sichern Sie mehrere Datenbanken gleichzeitig

mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql

3. MySQL-Backup-Inhalte wiederherstellen

Es gibt zwei Möglichkeiten zur Wiederherstellung: Die erste erfolgt über die MySQL-Befehlszeile, die zweite besteht darin, die Wiederherstellung über die SHELL-Zeile abzuschließen.

Geben Sie zur Wiederherstellung Folgendes in die Systembefehlszeile ein:

mysql -uroot -p123456 < /data/mysqlDump/mydb.sql

Nachdem Sie sich beim MySQL-System angemeldet haben, verwenden Sie den Quellbefehl, um die Datei im entsprechenden System zu finden und wiederherzustellen :

mysql> Quelle /data/mysqlDump/mydb.sql

Unter Linux werden BASH-Skripte normalerweise zum Schreiben des auszuführenden Inhalts verwendet, und der Befehl crontab wird zum Ausführen des Befehls zu einem geplanten Zeitpunkt verwendet, um die automatische Protokollgenerierung zu realisieren.

Die folgende Codefunktion dient zum Sichern von MySQL und sichert in Verbindung mit crontab die täglichen MySQL-Datenbankdatensätze des letzten Monats (31 Tage).

1. Schreiben Sie BASH, um eine feste Anzahl von Sicherungsdateien zu verwalten

Verwenden Sie unter Linux vi oder vim, um den Skriptinhalt zu schreiben, und benennen Sie ihn: mysql_dump_script.sh

#!/bin/bash

#Speichern Sie die Anzahl der Backups, sichern Sie 31 Tage Datenanzahl = 31
#Backup-Speicherpfad backup_dir=/root/mysqlbackup
#Datum dd=`Datum +%Y-%m-%d-%H-%M-%S`
#Sicherungstool tool=mysqldump
#Benutzername Benutzername=root
# Passwort password = TankB214
#Die zu sichernde Datenbank database_name=edoctor

#Falls der Ordner nicht existiert, erstellen Sie ihn, wenn [ ! -d $backup_dir ];
Dann     
    mkdir -p $backup_dir;
fi

#Einfache Möglichkeit, mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql zu schreiben
$tool -u $Benutzername -p$Passwort $Datenbankname > $Sicherungsverzeichnis/$Datenbankname-$dd.sql

#Schreiben, um Sicherungsprotokoll zu erstellen echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt

#Suchen Sie das Backup, das gelöscht werden muss delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`

#Beurteilen Sie, ob die aktuelle Anzahl der Backups größer als $number ist
Anzahl=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`

wenn [ $Anzahl -gt $Zahl ]
Dann
  #Löschen Sie das am frühesten erstellte Backup und behalten Sie nur die Anzahl der Backups rm $delfile
  #Schreiben Sie das Löschdateiprotokoll echo "delete $delfile" >> $backup_dir/log.txt
fi

Die Hauptbedeutungen des obigen Codes sind wie folgt:

1. Legen Sie zunächst verschiedene Parameter fest, wie beispielsweise die maximale數目number sichernden Nummern, den路徑,用戶名,密碼usw.

2. Führen Sie den Befehl mysqldump aus, um die Sicherungsdatei zu speichern und den Vorgang in log.txt im selben Verzeichnis zu drucken, um das Vorgangsprotokoll zu markieren.

3. Definieren Sie die zu löschenden Dateien : Verwenden Sie den Befehl ls , um die neunte Spalte, dh die Dateinamenspalte, abzurufen, und implementieren Sie dann die Definition der Datei mit der letzten Vorgangszeit, die gelöscht werden muss.

4. Legen Sie die Anzahl der Sicherungen fest: Verwenden Sie den Befehl ls plus wc -l um die Anzahl der Zeilen in der Datei zu zählen, die mit sql enden.

5. Wenn die Datei das Limit überschreitet, löschen Sie die am frühesten erstellte sql Datei

2. Verwenden Sie crontab, um regelmäßig Backup-Skripte auszuführen

Unter Linux werden periodische Aufgaben normalerweise vom Cron-Daemon-Prozess [ps -ef | grep cron] ausgeführt. Cron liest eine oder mehrere Konfigurationsdateien, die Befehlszeilen und die Zeiten enthalten, zu denen sie aufgerufen werden. Die Cron-Konfigurationsdatei heißt „crontab“, die Abkürzung für „Cron Table“.

2.1 Cron-Dienst

Cron ist ein Tool zur geplanten Ausführung unter Linux, das Jobs ohne menschliches Eingreifen ausführen kann.

service crond start //Dienst starten service crond stop //Dienst beenden service crond restart //Dienst neu starten service crond reload //Konfiguration neu laden service crond status //Dienststatus prüfen

2.2crontab-Syntax

Mit crontab können Sie die Tabellen installieren, entfernen oder auflisten, die zum Ausführen des Cron-Daemons verwendet werden. Der Benutzer trägt die auszuführende Befehlsfolge in crontab Datei ein, um sie ausführen zu lassen. Jeder Benutzer kann seine eigene crontab Datei haben. Die crontab -Dateien unter / var/spool/cron können nicht direkt erstellt oder geändert werden. Die crontab Datei wird durch den Befehl crontab erstellt.

So geben Sie die Befehle und die Ausführungszeit in die crontab Datei ein. Jede Zeile in dieser Datei umfasst sechs Felder, die ersten fünf Felder geben den Zeitpunkt an, zu dem der Befehl ausgeführt werden soll, und das letzte Feld ist der auszuführende Befehl. Die einzelnen Felder sind durch Leerzeichen oder Tabulatoren getrennt.

Das Format ist wie folgt:

Minute Stunde Tag des Monats Monat des Jahres Tag der Woche Befehle 
Gesetzliche Werte: 00-59 00-23 01-31 01-12 0-6 (0 ist Sonntag) 

Neben Zahlen gibt es mehrere Sonderzeichen, nämlich "*" , "/" , "-" und "," . * steht für alle Zahlen innerhalb des Wertebereichs, " / " steht für jede ,"/5 " bedeutet alle 5 Einheiten, " - " steht für von einer bestimmten Zahl bis zu einer bestimmten Zahl und "," trennt mehrere diskrete Zahlen.

-l Zeigt die aktuelle Crontab in der Standardausgabe an.
-r Löscht die aktuelle Crontab-Datei.
-e Bearbeiten Sie die aktuelle Crontab-Datei mit dem durch die Umgebungsvariable VISUAL oder EDITOR angegebenen Editor. Wenn Sie mit der Bearbeitung fertig sind und das Programm beenden, wird die bearbeitete Datei automatisch installiert.

2.3 Erstellen Sie ein Cron-Skript

Schritt 1: Schreiben Sie eine Cron-Skriptdatei und nennen Sie sie mysqlRollBack.cron. 15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt bedeutet, dass der Befehl alle 15 Minuten ausgeführt und ausgedruckt wird.

Schritt 2: Fügen Sie eine geplante Aufgabe hinzu. Führen Sie den Befehl „crontab crontest.cron“ aus. Erledigt

Schritt 3: „crontab -l“ um zu prüfen, ob die geplante Aufgabe erfolgreich ist oder ob das entsprechende Cron-Skript in /var/spool/cron generiert wird

Hinweis: Dieser Vorgang ersetzt direkt die Crontab des Benutzers, anstatt eine neue hinzuzufügen

Führen Sie das geplante Task-Skript regelmäßig aus (denken Sie daran, dem Shell-Skript zuerst die Ausführungsberechtigung zu erteilen).

0 2 * * * /root/mysql_backup_script.sh


Verwenden Sie dann den Befehl crontab, um regelmäßig ein geplantes Skript zu schreiben

crontab mysqlRollback.cron


Überprüfen Sie anschließend mit dem folgenden Befehl, ob die geplante Aufgabe erstellt wurde:

4. Anbei ein Beispiel für die Verwendung von crontab:

(1) Täglich um 6:00 Uhr

0 6 * * * echo „Guten Morgen.“ >> /tmp/test.txt //Beachten Sie, dass Sie mit Echo allein keine Ausgabe auf dem Bildschirm sehen können, da cron alle Ausgaben per E-Mail an die Mailbox von root sendet.

(2) Alle zwei Stunden

0 */2 * * * echo "Machen Sie jetzt eine Pause." >> /tmp/test.txt

(3) Alle zwei Stunden zwischen 23 Uhr und 8 Uhr und um 8 Uhr

0 23-7/2,8 * * * echo "Träum schön" >> /tmp/test.txt

(4) Am 4. eines jeden Monats sowie jeden Montag bis Mittwoch um 11.00 Uhr.

0 11 4 * 1-3 Befehlszeile

(5) 1. Januar um 4:00 Uhr

0 4 1 1 * Kommandozeile SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //Wenn ein Fehler auftritt oder Daten ausgegeben werden, werden die Daten als E-Mail an dieses Konto gesendet HOME=/

(6) Führen Sie das Skript stündlich in /etc/cron.hourly aus.

01 * * * * root-run-parts /etc/cron.hourly

(7) Führen Sie das Skript täglich in /etc/cron.daily aus.

02 4 * * * root-Ausführungsteile /etc/cron.daily

(8) Führen Sie das Skript jede Woche in /etc/cron.weekly aus

22 4 * * 0 root-Ausführungsteile /etc/cron.weekly

(9) Führen Sie das Skript jeden Monat in /etc/cron.monthly aus

42 4 1 * * root-Ausführungsteile /etc/cron.monthly


Hinweis: Der Parameter „run-parts“. Wenn Sie diesen Parameter entfernen, können Sie anstelle des Ordnernamens den Namen eines auszuführenden Skripts schreiben.

(10) Führen Sie den Befehl täglich 5 Minuten, 15 Minuten, 25 Minuten, 35 Minuten, 45 Minuten und 55 Minuten nach 16.00, 17.00 und 18.00 Uhr aus.

5, 15, 25, 35, 45, 55, 16, 17, 18 * * * Befehl

(11) Das System wechselt jeden Montag, Mittwoch und Freitag um 15.00 Uhr in den Wartungsmodus und wird neu gestartet.

00 15 * * 1,3,5 Herunterfahren -r +5

(12) Führen Sie jeweils um 10 und 40 Minuten nach der vollen Stunde den Befehl innd/bbslin im Benutzerverzeichnis aus:

10,40 * * * * innd/bbslink

(13) Führen Sie stündlich im Abstand von einer Minute den Befehl bin/account im Benutzerverzeichnis aus:

1 * * * * Behälter/Konto


Nachfolgend sind die Screenshots meines Minutentests aufgeführt. Der entsprechende Code lautet wie folgt:

* * * * * /root/mysql_backup_script.sh


Screenshots der Effekte:

Damit ist dieser Artikel über verschiedene Möglichkeiten zum Planen der Sicherung einer MySQL-Datenbank (umfassend) abgeschlossen. Weitere Informationen zu verschiedenen Möglichkeiten zum Planen der Sicherung einer MySQL-Datenbank finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Shell-Skript zum regelmäßigen Sichern und Aufbewahren von MySQL-Datenbankdaten für einen bestimmten Zeitraum
  • Geplantes Teilen von Skripten für MySQL-Datenbanksicherungen
  • Beispiel für eine geplante MySQL-Datenbanksicherung
  • Linux implementiert geplante Sicherungen der MySQL-Datenbank und löscht Sicherungsdateien, die älter als 30 Tage sind
  • So implementieren Sie eine geplante Sicherung einer MySQL-Datenbank
  • Eine einfache Methode zum Implementieren einer geplanten Sicherung einer MySQL-Datenbank unter Linux
  • Der beste Weg zum automatischen Sichern der MySQL-Datenbank (Windows-Server)

<<:  Beispielcode für den dynamischen CSS-Ladebalkeneffekt

>>:  Maven-Projekte schneller in Docker erstellen

Artikel empfehlen

Verständnis und Lösungen für 1px-Linien in der mobilen Entwicklung

Gründe, warum die 1px-Linie dicker wird Wenn wir ...

MySQL 5.7.18 Green Edition Download- und Installations-Tutorial

Dieser Artikel beschreibt den detaillierten Vorga...

Implementierungsbeispiel für dynamische Routing-Breadcrumbs für Elemente

Zu meistern: localStorage, Komponentenkapselung Ä...

Einführung in die Containerfunktion of() in der Linux-Kernel-Programmierung

Vorwort Bei der Linux-Kernel-Programmierung werde...

Detaillierte Analyse des virtuellen Nginx-Hosts

Inhaltsverzeichnis 1. Virtueller Host 1.1 Virtuel...

Beispiel für die Verwendung von UserMap in IMG

usemap ist ein Attribut des <img>-Tags, das ...

Tutorial zur Installation und Konfiguration der Linux CentOS MySQL-Datenbank

Hinweise zur Installation der MySQL-Datenbank, mi...

Ein mobiler adaptiver Webseiteneffekt löst das Problem der kleinen Anzeigeseite

Für die Arbeit muss ich einen adaptiven Webseitene...

Das native VIDEO-Tag der HTML-Seite verbirgt die Download-Button-Funktion

Beim Schreiben eines Webprojekts stieß ich auf ei...

Schritte zum Aktivieren von TLS in Docker für eine sichere Konfiguration

Vorwort Ich hatte zuvor die 2375 Remote API von D...

Der Unterschied und die Verwendung von LocalStorage und SessionStorage in Vue

Inhaltsverzeichnis Was ist LocalStorage Was ist S...

MySQL implementiert eine Lösung ähnlich der Oracle-Sequenz

MySQL implementiert Oracle-ähnliche Sequenzen Ora...

Detaillierte Erklärung der grundlegenden Verwendung des SSH-Befehls ssh-keygen

Die SSH-Public-Key-Authentifizierung ist eine der...