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

JavaScript implementiert den Farbänderungseffekt durch Klicken mit neun Rastern

In diesem Artikel wird der spezifische JavaScript...

So ändern Sie die inländische Quelle von Ubuntu 20.04 apt

UPD 2020.2.26 Derzeit ist Ubuntu 20.04 LTS noch n...

Detaillierte Erklärung zur Konfiguration einer statischen IP in Centos8

Nach der Installation von CentOS 8 wird beim Neus...

Detaillierte Erklärung, wie eine SQL-Anweisung in MySQL ausgeführt wird

Überblick Ich habe vor Kurzem begonnen, mir Wisse...

Analyse von MySQL-Beispielen für doppelte und redundante Indizes

In diesem Artikel werden MySQL-Duplikatsindizes u...

js implementiert dynamisch Operationen zum Hinzufügen und Löschen von Tabellen

In diesem Artikelbeispiel wird der spezifische Co...

So erreichen Sie die maximale Anzahl von Verbindungen in MySQL

Inhaltsverzeichnis Was ist der Grund für den plöt...

Änderung und Abfrage von Python MySQL-Datenbanktabellen

Python stellt eine Verbindung zu MySQL her, um Da...

Detaillierte Erklärung der JS-Array-Methoden

Inhaltsverzeichnis 1. Das ursprüngliche Array wir...

Verstehen Sie die Implementierung des Nginx-Standortabgleichs in einem Artikel

Da das Team Front-End und Back-End trennt, überni...