Geplante vollständige MySQL-Datenbanksicherung

Geplante vollständige MySQL-Datenbanksicherung

1. MySQL-Datensicherung

1.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

1.2. Allgemeine Betriebsbeispiele für mysqldump

1. Sichern Sie die Daten und die Struktur aller Datenbanken

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

2. Sichern Sie die Struktur der gesamten Datenbank (Parameter -d hinzufügen)

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

3. Sichern Sie alle Datenbankdaten (Parameter -t hinzufügen)

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

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

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

5. Sichern Sie die Struktur einer einzelnen Datenbank

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

6. Daten einer einzelnen Datenbank sichern

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

7. 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

8. Sichern Sie mehrere Datenbanken gleichzeitig

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

1.3. MySQL-Backup-Inhalte wiederherstellen

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

1. Geben Sie zur Wiederherstellung Folgendes in die Systembefehlszeile ein:

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

2. 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

2. Schreiben Sie Skripte zur Verwaltung von Backup-Datenbankdateien

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).

2.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 Anzahl der zu sichernden Nummern, den Sicherungspfad, den Benutzernamen, das Passwort 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 abzurufen, die die Dateinamenspalte ist, und verwenden Sie dann

Kopf -1

Die Datei mit dem aktuellsten Betriebszeitpunkt wird durch die Implementierung festgelegt und muss gelöscht werden.

4. Definieren Sie die Anzahl der Backups: Fügen Sie den Befehl ls hinzu

Toilette -l

Zählen Sie die Anzahl der Zeilen in Dateien, die mit SQL enden.

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

2.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“.

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. Crontab-Syntax
Mit dem Befehl 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 die Crontab-Datei ein, um sie ausführen zu lassen. Jeder Benutzer kann seine eigene Crontab-Datei haben. Die Crontab-Datei in /var/spool/cron kann 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 "*", "/", "-", "", "*" steht für alle Zahlen innerhalb des Wertebereichs, "/" bedeutet 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.

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 Druckbefehl alle 15 Minuten ausgeführt wird. Schritt 2: Fügen Sie eine geplante Aufgabe hinzu. Führen Sie den Befehl „crontab crontest.cron“ aus. Führen Sie den dritten Schritt aus: „crontab -l“, um zu prüfen, ob die geplante Aufgabe erfolgreich war, oder ob das entsprechende Cron-Skript in /var/spool/cron generiert wurde.

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:

crontab -l

Anbei ein Beispiel für die Verwendung von crontab:

1. Jeden Tag um 6 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 und jeden Montag bis Mittwoch um 11 Uhr

0 11 4 * 1-3 Befehlszeile

5. 1. Januar um 4 Uhr morgens

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 jeden Tag 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 um 16, 17 und 18 Uhr nach 5, 15, 25, 35, 45 und 55 Minuten aus.

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

11. Das System wechselt in den Wartungsmodus und wird jeden Montag, Mittwoch und Freitag um 15:00 Uhr neu gestartet.

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

12. Führen Sie jede Stunde zur 10. und 40. Minute den Befehl innd/bbslin im Benutzerverzeichnis aus:

10,40 * * * * innd/bbslink

13. Führen Sie stündlich im Abstand von 1 Minute den Befehl bin/account im Benutzerverzeichnis aus:

1 * * * * Behälter/Konto

3. Screenshot des Ausführungseffekts

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

* * * * * /root/mysql_backup_script.sh

Screenshots der Effekte:

Die Datei log.txt zeichnet das detaillierte Protokoll des Sicherungsvorgangs auf:

Quellenangaben zu diesem Artikel:

1. Allgemeine Befehle für MySQLdump: https://www.cnblogs.com/smail-bao/p/6402265.html (Blog Park)

2. Verwenden Sie ein Shell-Skript, um die MySQL-Datenbank zu sichern: https://www.cnblogs.com/mracale/p/7251292.html (Blog Park)

3. Detaillierte Erläuterung des Crontab-Befehls zur geplanten Ausführung von Aufgaben unter Linux: https://www.cnblogs.com/longjshz/p/5779215.html (Blog Park)

Dies ist das Ende dieses Artikels über die geplante MySQL-Datenbanksicherung (vollständige Datenbanksicherung). Weitere relevante Inhalte zur geplanten MySQL-Datenbanksicherung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verwenden von MySQL unter Windows: Implementieren automatischer zeitgesteuerter Sicherungen
  • So implementieren Sie eine geplante Sicherung einer MySQL-Datenbank
  • MySQL-geplante Sicherung mit Crontab-geplantem Sicherungsbeispiel unter Linux
  • Beispiel für eine geplante MySQL-Datenbanksicherung
  • Shell-Skript zum regelmäßigen Sichern und Aufbewahren von MySQL-Datenbankdaten für einen bestimmten Zeitraum

<<:  Nach der Installation von Apache kann der Dienst nicht gestartet werden (beim Starten des Dienstes wird der Fehlercode 1 angezeigt).

>>:  Beispiel für asynchronen Dateiupload in HTML

Artikel empfehlen

Implementierung der Benutzerregistrierungsfunktion mit js

In diesem Artikelbeispiel wird der spezifische Co...

Lombok-Implementierung JSR-269

Vorwort Einführung Lombok ist ein praktisches Too...

JavaScript zum Anzeigen und Ausblenden von Bildern

JavaScript zeigt und verbirgt Bilder. Zu Ihrer In...

So verwenden Sie Axios, um Netzwerkanforderungen in React Native zu stellen

In der Front-End-Entwicklung gibt es viele Möglic...

Eine kurze Analyse des Zeitproblems von MySQL

Der Standardzeittyp (Datum/Uhrzeit und Zeitstempe...

So implementieren Sie die Vue-Bindungsklasse und den Inline-Bindungsstil

Inhaltsverzeichnis Bindungsklasse Inline-Stile bi...

jQuery implementiert Akkordeoneffekte

Dieser Artikel gibt Ihnen den spezifischen Code v...

Der Aufruf der Suchmaschine auf der Seite erfolgt am Beispiel von Baidu

Heute ist mir plötzlich eingefallen, dass es cool ...

Schreibreihenfolge und Namenskonventionen sowie Vorsichtsmaßnahmen im CSS-Stil

Die Bedeutung der Schreibreihenfolge Reduzieren S...

Detaillierter Code zur Implementierung einer 3D-Tag-Cloud in Vue

Vorschau: Code: Seitenabschnitte: <Vorlage>...

Eingabedatei zur benutzerdefinierten Schaltflächenverschönerung (Demo)

Ich habe schon einmal einen solchen Artikel gesch...

Beispiel für das Hinzufügen und Löschen von Bereichspartitionen in MySQL 5.5

einführen Die RANGE-Partitionierung basiert auf e...

Detaillierte Erklärung von as, Fragezeichen und Ausrufezeichen in Typescript

1. Das Schlüsselwort as gibt eine Behauptung an I...