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

Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL

In MySQL werden viele Typen von Auto-Increment-ID...

Vue realisiert kaskadierende Auswahl von Provinzen, Städten und Bezirken

Vor Kurzem musste ich einen kaskadierenden Auswah...

Lösung für die Auswirkungen leerer Pfade auf die Seitenleistung

Vor ein paar Tagen habe ich einen von Yu Bo getei...

Pessimistisches Sperren und optimistisches Sperren in MySQL

In relationalen Datenbanken sind pessimistisches ...

Installations-Tutorial zur komprimierten Version von MySQL 8.0.11

In diesem Artikel finden Sie das Installations-Tu...

Detailliertes Beispiel der MySQL curdate()-Funktion

Einführung in die MySQL CURDATE-Funktion Bei Verw...

Detaillierte Erläuterung der Live-Übertragungsfunktion von Vue

Vor kurzem hat das Unternehmen zufällig Live-Über...

Einführung in geplante Aufgaben im Linux-System

Inhaltsverzeichnis 1. Planaufgaben anpassen 2. Ze...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.27

Detailliertes Download-, Installations- und Konfi...