Tägliches automatisches Backup der MySQL-Datenbank mit mysqldump in Centos7 schreiben

Tägliches automatisches Backup der MySQL-Datenbank mit mysqldump in Centos7 schreiben

1. Voraussetzungen:

Die Datenbanksicherung ist besonders für Produktionsumgebungen wichtig. Die Datenbanksicherung wird in physische und logische Sicherungen unterteilt.

Physische Sicherung: Verwenden Sie entsprechende Kopierbefehle, um die Daten direkt in das Datenverzeichnis der Datenbank zu kopieren oder mehrere Kopien zu erstellen. Häufig verwendete Tools: XtraBackup.

Logische Sicherung: Verwenden Sie den mit MySQL mitgelieferten Befehl mysqldump, um die zu sichernden Daten in Form von SQL-Anweisungen zu speichern.

Als Nächstes verwenden wir den Befehl mysqldump, um Daten zu sichern. Verwenden Sie automatisierte Aufgaben für tägliche Backups.

2. Ausführbare Datei schreiben:

1. Erstellen Sie einen Ordner. Die ausgeführte SH-Datei und die Datenbanksicherungsdatei werden in diesem Ordner gespeichert

mkdir /usr/local/mysqlDataBackup
cd /usr/local/mysqlDataBackup

2. Erstellen Sie eine SH-Datei und schreiben Sie ein Shell-Skript:

Backup.sh

Einzelnes Datenbankskript:

#!/bin/bash
#Dieses Skript dient zur automatischen Sicherung von Datenbanken
#create von weijb am 28.07.2021
#Daten vom 7. Tag davor löschen

DATAdelete='Datum +%F -d "-7 Tag"'
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz

MYSQL_CMD=/usr/bin/mysqldump
MYSQL_USER=Konto MYSQL_PWD=Passwort DATA='Datum +%F'
DBname=test_db

${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz

Analyse:

(1) Löschen Sie Sicherungsdaten von vor 7 Tagen, um Speicherplatz zu sparen:
DATAdelete='date +%F -d "-7 day"' Das Datum 7 Tage vor der aktuellen Zeit

rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz Löscht die Backup-Daten der letzten 7 Tage, um Platz zu sparen und behält nur die Daten der letzten 7 Tage.

(2) Variablen definieren:
MYSQL_CMD=/usr/bin/mysqldump Der Speicherort des mysqldump-Befehls, der mit mysql geliefert wird. MYSQL_USER=Account Das Konto für die Verbindung mit mysql. MYSQL_PWD=Password Das Passwort für die Verbindung mit mysql. DATA='date +%F' Ruft das aktuelle Datum ab, %F steht für das Format: %Y-%m-%d. Beispiel: 2021-07-28
DBname=test_db Der Name der zu sichernden Datenbank. Der aktuelle Datenbankname lautet: test_db
(3) Führen Sie den Backup-Befehl aus:
${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
--compact optimiert die Ausgabeinformationen -B enthält Anweisungen zum Erstellen der Datenbank gzip-komprimiertes Backup zur Reduzierung der Backup-Dateigröße usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz Backup-Datei – Speicherpfad und -name

Sicherung mehrerer Datenbanken:

#!/bin/bash
#Dieses Skript dient zur automatischen Sicherung von Datenbanken
#create von weijb am 28.07.2021
#Daten vom 7. Tag davor löschen
DATAdelete='Datum +%F -d "-7 Tag"'
rm -rf /usr/local/mysqlDataBackup/*_${DATAdelete}.sql.gz

MYSQL_CMD=/usr/bin/mysqldump
MYSQL_USER=Konto MYSQL_PWD=Passwort DATA='Datum +%F'
DBname='mysql -u${MYSQL_USER} -p${MYSQL_PWD} -e "Datenbanken anzeigen;" | sed '1,5d''

für DBname in ${DBname}
Tun 
  ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/usr/local/mysqlDataBackup/${DBname}_${DATA}.sql.gz
Erledigt

Analyse:

(1) Abfangen der Datenbank, die gesichert werden muss

-e „Datenbanken anzeigen;“ | sed '1,5d'' zeigt alle Datenbanken an und erfasst alle Datenbanken außer MySQLs eigenem Information_Schema, MySQL, Performance_Schema und Sys.

(2) Die übrigen Details sind dieselben wie bei der Sicherung einer einzelnen Datenbank

3. Überprüfen Sie, ob das Skript erfolgreich geschrieben wurde:

(1) Autorisierung der Skriptdatei:

cd /usr/local/mysqlDataBackupchmod +x backup.sh

(2) Führen Sie das Skript aus:

sh Backup.sh

Die unter /usr/local/mysqlDataBackup generierten Dateien zeigen an, dass der Schreibvorgang erfolgreich war.

4. Automatische Aufgaben schreiben:

Sichern Sie die Datenbank täglich um 1 Uhr:

crontab -e

Geben Sie „i“ ein, um Folgendes zu bearbeiten:

00 01 * * * /usr/local/mysqlDataBackup/backup.sh

Verwenden Sie Esc, um die Dateibearbeitung zu beenden, und geben Sie :wq ein, um zu speichern und zu beenden.

Prüfen Sie, ob die Aufgabe erfolgreich gestellt wurde:

crontab -l

Starten Sie den Crontab-Dienst neu:

Service Crond Neustart

An diesem Punkt ist das automatische MySQL-Task-Skript zum Sichern der Datenbank abgeschlossen.

Dies ist das Ende dieses Artikels über die Verwendung von mysqldump zur täglichen automatischen Sicherung der MySQL-Datenbank in CentOS 7. Weitere relevante automatische MySQL-Sicherungen mit mysqldump 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:
  • Implementierung der Stapelverarbeitung automatischer MySQL-Sicherungen unter Windows (Kopieren von Verzeichnissen oder mysqldump-Sicherung)
  • MySQL-Datenmigration mit dem Befehl MySQLdump
  • Detaillierte Erklärung zur Verwendung des MySQL-Sicherungsskripts mysqldump
  • Detaillierte Erklärung zum Exportieren von Datenbank-, Daten- und Tabellenstrukturen mit Linux mysqldump
  • Detaillierte Diskussion zum Thema mysqldump-Datenexport
  • Eine kurze Erläuterung zur Verwendung von mysqldump (Sicherung und Wiederherstellung von MySQL-Datenbanken)
  • 8 Möglichkeiten zum manuellen und automatischen Sichern Ihrer MySQL-Datenbank
  • Linux führt jeden Tag eine automatische und geplante Sicherung der MySQL-Datenbank durch
  • Detaillierte Erläuterung mehrerer Methoden zur automatischen Sicherung und Wiederherstellung von MySQL (grafisches Tutorial)
  • So richten Sie eine automatische tägliche Sicherung von MySQL im CentOS-System ein

<<:  So aktivieren Sie TLS- und CA-Authentifizierung in Docker

>>:  Die 6 effektivsten Möglichkeiten zum Schreiben von HTML und CSS

Artikel empfehlen

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon me...

Was ist SSH-Portweiterleitung? Was nützt das?

Inhaltsverzeichnis Vorwort 1. Lokale Portweiterle...

Einführung und Verwendungszusammenfassung der negativen Margenfunktion

Bereits in den CSS2-Empfehlungen von 1998 verschwa...

So konfigurieren Sie die MySQL-Master-Slave-Synchronisierung in Ubuntu 16.04

Vorbereitung 1. Die Master- und Slave-Datenbankve...

Analyse des Benchmarking-Prozesses von Sysbench für MySQL

Vorwort 1. Benchmarking ist eine Art Leistungstes...

25 Vue-Tipps, die Sie kennen müssen

Inhaltsverzeichnis 1. Beschränken Sie Requisiten ...

Join-Operation in MySQL

Arten von Verknüpfungen 1. Innerer Join: Die Feld...

So weisen Sie Feldern bei der MySQL-Abfrage Standardwerte zu

brauchen Wenn Sie ein Feld abfragen, müssen Sie e...

Implementierungsprozess des Lupeneffekts im Javascript-Beispielprojekt

Inhaltsverzeichnis Vorwort Fall: Nachahmung des L...

Zusammenfassung einiger Gedanken zur Binlog-Optimierung in MySQL

Frage Frage 1: Wie kann der Leistungsverlust beho...

CSS erreicht hochadaptiven Vollbildmodus

Beim Schreiben meiner eigenen Demo möchte ich dis...

Detaillierte Erklärung zum Bereitstellen von H5-Spielen auf einem Nginx-Server

Auf dem Weg zur selbstlernenden Spieleentwicklung...