MySQL-Lösung für zeitgesteuerte Backups (mithilfe von Linux crontab)

MySQL-Lösung für zeitgesteuerte Backups (mithilfe von Linux crontab)

Vorwort

Obwohl manche Liebe auf dieser Welt ihren Preis hat, sind Daten unbezahlbar. Die Datensicherung ist besonders wichtig, damit Sie nicht in Eile davonlaufen müssen, wenn Sie die Datenbank eines Tages versehentlich löschen.

Die in diesem Artikel vorgestellte Lösung besteht darin, die Linux-eigene Crontab-Funktion für geplante Tasks zu verwenden, um das Datenbanksicherungsskript regelmäßig auszuführen.

Technische Punkte:

  • Befehl zum Speichern von Datenbanksicherungen
  • Shell-Skript
  • Crontab für geplante Linux-Aufgaben

Datensicherungsdump

Die Datenbank verfügt über einen Befehl zum Exportieren der Daten und der Struktur innerhalb der Datenbank. Dabei handelt es sich um das Backup.

Durch das Wiederherstellen der gesicherten Daten wird die Tabelle mit den Originaldaten gelöscht und neu erstellt. Anschließend werden die Daten in die Sicherung eingefügt. Dies ist eine Wiederherstellung.

Es ist wichtig zu beachten, dass, wenn die Datenmenge vor der Wiederherstellung größer ist als die in der Sicherung enthaltene, die zusätzlichen Daten nach der Wiederherstellung verloren gehen.

Liste der Backup- und Wiederherstellungsbefehle der beiden Datenbanken, die ich häufig verwende

postgresql:

Backup pg_dump -h [ip] -U [Benutzername] [Datenbankname] > [exportierte .sql-Datei]

Wiederherstellen psql -s [Datenbankname] -f [.sql-Datei exportieren]

MySQL:

Backup mysqldump -h -u [Benutzername] -p [Datenbankname] > [exportierte .sql-Datei]

Restore mysql -u [Benutzername] -p [Datenbankname] < [exportierte .sql-Datei]

Shell-Skript

Zur Vervollständigung einer voll funktionsfähigen Backup-Lösung benötigen Sie Shell-Skripte.

Wir möchten, dass dieses Skript in einem angegebenen Pfad ein Backup erstellt und in einem komprimierten Format speichert (bis zu 30 Dateien). Wenn mehr als 30 Dateien vorhanden sind, wird die älteste gelöscht und das Vorgangsprotokoll aufgezeichnet.

Mehr gibt es nicht zu sagen, es steht alles im Drehbuch, also los geht’s!

#Benutzername Benutzername=root
# Passwort password = nicai
#Die zu sichernde Datenbank database_name=l_love_you

#Die maximale Anzahl der zu speichernden Sicherungsdateien beträgt count=30
#Backup-Speicherpfad backup_path=/app/mysql_backup
#Datum date_time=`Datum +%Y-%m-%d-%H-%M`

#Falls der Ordner nicht existiert, erstellen Sie ihn, wenn [ ! -d $backup_path ]; 
Dann  
 mkdir -p $Backup-Pfad; 
fi
#Starten Sie backupmysqldump -u $Benutzername -p$Passwort $Datenbankname > $Backup-Pfad/$Datenbankname-$Datum_Uhrzeit.sql
#Komprimieren Sie die CD $backup_path
tar -zcvf $Datenbankname-$Datum_Uhrzeit.tar.gz $Datenbankname-$Datum_Uhrzeit.sql
#Löschen Sie die Quelldatei rm -rf $backup_path/$database_name-$date_time.sql
#Sicherungsprotokoll aktualisieren echo "create $backup_path/$database_name-$date_time.tar.gz" >> $backup_path/dump.log

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

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

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

Geben Sie dem Skript einen schönen, sinnvollen Namen, dump_mysql.sh

Geben Sie dem Skript Ausführungsberechtigungen: chmod +x dump_mysql.sh. Nach der Ausführung wird das Skript grün und ist eine ausführbare Datei.

Ausführungsmethode: ./ plus Skriptname

Die Bedeutung der chmod-Befehlsparameter -
+ steht für das Hinzufügen bestimmter Berechtigungen
x steht für ausführbare Berechtigung

Geplante Aufgaben crontab

Crontab ist eine geplante Task-Funktion, die mit Linux mitgeliefert wird. Wir können sie verwenden, um das Skript dump_mysql.sh einmal jeden Morgen auszuführen.

Crontab-Verwendung:

  • crontab -l Zeigen Sie die Liste der geplanten Aufgaben an
  • crontab -e Geplante Aufgaben bearbeiten (hinzufügen/löschen)

Führen Sie crontab -e aus, öffnen Sie ein editierbares Textfeld und geben Sie 00 01 * * * /app/dump_mysql.sh ein.

Die Einzahlung ist abgeschlossen, wenn das Kapital geschützt und die Auszahlung abgeschlossen ist.

Inhaltserklärung:

00 01 * * * /app/dump_mysql.sh ist in zwei Teile unterteilt.

Der erste Teil 00 01 * * * ist der Zeitraum der geplanten Aufgabe und der zweite Teil /app/dump_mysql.sh gibt an, was zum angegebenen Zeitpunkt zu tun ist.

Der Zeitraumausdruck besteht aus fünf Platzhaltern, die Folgendes darstellen: Minuten, Stunden, Tage, Monate und Wochen.

Der Platzhalter * steht für „jedes“. Die erste Stelle steht für „jede Minute“, die zweite Stelle für „jede Stunde“ und so weiter.

Platzhalter verwenden bestimmte Zahlen, um bestimmte Zeiten darzustellen. 10 an der ersten Stelle bedeutet 10 Minuten, 10 an der dritten Stelle bedeutet die 10. und so weiter.

Der Platzhalter - gibt ein Intervall an. 5-7 an erster Stelle bedeutet 5 Minuten bis 7 Minuten, an fünfter Stelle bedeutet Freitag bis Sonntag und so weiter.

Der Platzhalter / gibt das Intervall an. 5-10/2 wird an der ersten Stelle verwendet, um das Intervall von 5 bis 10 Minuten anzuzeigen, und an der zweiten Stelle, um das Intervall von 5 bis 10 Uhr bis 2 Stunden anzuzeigen, und so weiter.

Platzhalter verwenden , um eine Liste anzuzeigen. 5,10 an der ersten Stelle bedeutet 5 Punkte und 10 Punkte, an der vierten Stelle bedeutet Mai und Oktober und so weiter.

Zusammenfassen

Dies ist das Ende dieses Artikels über die MySQL-Lösung für geplante Backups. Weitere relevante Inhalte zu geplanten MySQL-Backups 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:
  • Detaillierte Erläuterung der Idee, mysqldump + expect + crontab zur Implementierung eines regelmäßigen MySQL-Cold-Backups unter Linux zu verwenden
  • Analyse der Gründe, warum der mit Linux 6.7 gelieferte crontab-Befehl mysql-libs * nach der Deinstallation nicht verwendet werden kann
  • MySQL-geplante Sicherung mit Crontab-geplantem Sicherungsbeispiel unter Linux
  • So verwenden Sie crontab, um MySQL-Datenbanken regelmäßig im Linux-System zu sichern

<<:  Lösung für den Absturz der Grafikkarte auf Linux-Servern

>>:  Reagieren Sie auf den nativen ScrollView-Pulldown-Aktualisierungseffekt

Artikel empfehlen

Implementierung einer Suchfeldfunktion mit Suchsymbol basierend auf HTML-CSS

Vorwort Ich möchte Ihnen zeigen, wie Sie ein Such...

Beispiel einer JSON-Ausgabe im HTML-Format (Testschnittstelle)

Um die JSON-Daten in einem schönen eingerückten F...

Details der benutzerdefinierten Vue-Anweisung

Inhaltsverzeichnis 1. Hintergrund 2. Lokale benut...

Detaillierte Erklärung der JavaScript-Ereignisse onblur und onfocus

Auf HTML-Seiten verfügen visuelle Elemente wie Sc...

Zwei Möglichkeiten zum Deklarieren privater Variablen in JavaScript

Vorwort JavaScript unterscheidet sich von anderen...

Tutorial zu XHTML-Webseiten

Dieser Artikel soll vor allem Anfängern einige gr...

Verwendung des Linux-Befehls „userdel“

1. Befehlseinführung Der Befehl userdel (User Del...

Installation und Verwendung von MySQL unter Ubuntu (allgemeine Version)

Unabhängig von der verwendeten Ubuntu-Version ist...

Tutorial zur Installation der komprimierten MySQL8-Paketversion unter Win10

1 Laden Sie MySQL8 von der offiziellen Website he...

So starten Sie ein Vue-Projekt mit dem M1 Pro-Chip

Inhaltsverzeichnis Einführung Homebrew installier...