In den meisten Anwendungsszenarien müssen wir wichtige Daten sichern und für den Notfall an einem sicheren Ort aufbewahren. Zu den gängigen Methoden zur MySQL-Datensicherung gehören das direkte Verpacken und Kopieren der entsprechenden Datenbank- oder Tabellendateien (physische Sicherung), die vollständige logische Sicherung mit mysqldump, die inkrementelle logische Sicherung mit xtrabackup usw. Zu den gängigen Datenspeichermethoden gehören lokale Speicherung, FTP-Upload auf einen Remote-Server, Cloud-Speicher (wie Alibaba Cloud OSS, Qiniu Cloud Storage usw.) und sogar lokale Speicherung. Möglicherweise möchten wir nicht jedes Mal manuell eine Sicherung durchführen, noch möchten wir bei jedem Herunterladen so viel Zeit aufwenden, noch möchten wir die Daten auf dem Server verlieren, weil wir eine externe Sicherung benötigen. Dann können wir versuchen, ein Skript zu schreiben, um die Datenbank regelmäßig zu sichern und sie dann automatisch auf einen bestimmten Server oder in einen Cloud-Speicher hochzuladen. Hier sprechen wir darüber, wie Sie MySQL auf einem Linux-Server sichern und in den Qiniu Cloud Storage hochladen. Vorbereitung • Linux •Crontab-Dienst Sie müssen sicherstellen, dass sich der Crond-Dienst im gestarteten und automatisch gestarteten Zustand befindet. •gzip-Befehl Das System muss in der Lage sein, den Befehl gzip normal auszuführen, um Dateien zu komprimieren. •mysqldump-Befehl Zur logischen Datensicherung muss das System in der Lage sein, den Befehl mysqldump normal auszuführen. Die von mysqldump gesicherten Daten bestehen aus ausführbarem SQL und es liegt kein Problem mit Versionsinkompatibilität vor. •qshell-Werkzeug qshell ist ein Befehlszeilentool, das Qiniu Cloud offiziell unter Verwendung der öffentlichen API in Qiniu-Dokumenten implementiert, um Entwicklern das Testen und Verwenden von Qiniu-API-Diensten zu erleichtern. Spezifische Dokumente und Download-Adresse: https://developer.qiniu.com/kodo/tools/1302/qshell • Qiniu Cloud-Konto Voraussetzung für die Datenspeicherung ist natürlich ein Qiniu-Konto. Qiniu stellt Privatpersonen 10 GB kostenlosen Speicherplatz zur persönlichen Nutzung zur Verfügung. Registrierte Adresse: • Qiniu-Lagerraum Nachdem Sie ein Qiniu Cloud-Konto haben, müssen Sie in der Konsole manuell einen Speicherplatz (Bucket) zum Speichern von Daten erstellen. Qshell-Konfiguration Die von der offiziellen Adresse heruntergeladene Qshell ist ein komprimiertes Paket, das mehrere Systemplattformen unterstützt. Wählen Sie die Binärdatei unseres entsprechenden Systems aus und erteilen Sie ihr Ausführungsberechtigungen. Es kann auch in einem Verzeichnis wie /usr/local/bin/ platziert werden, um den direkten Aufruf des qshell-Befehls zu erleichtern. Konfigurieren Sie das Qiniu-Konto. ak und sk befinden sich in der Qiniu Cloud Console > Persönliches Center > Schlüsselverwaltung. Dieser Befehl schreibt das ak/sk-Konto in ~/.qshell/account.json und es ist keine weitere Konfiguration erforderlich. Der Qshell-Befehl, den wir hier verwenden, ist rput. Er dient zum Hochladen einer Datei im mehrteiligen Upload-Modus. Verwenden Sie das Dokument: https://github.com/qiniu/qshell/blob/master/docs/rput.md qshell rput <Bucket> <Schlüssel> <LokaleDatei> true Weitere detaillierte Funktionen von qshell finden Sie in der Dokumentation. Skriptinhalt #!/bin/sh #mysql-Datensicherungsskript # # Verwenden Sie mysqldump --help, um weitere Einzelheiten zu erhalten. dbname=Ihr_Datenbankname Benutzer=Ihr_Datenbankbenutzername password=Ihr_Datenbankpasswort bakDir=/opt/backup/sql logFile=/opt/backup/mysqlbak.log Datum/Uhrzeit = `Datum + %J%m%d%H%M%S` keepDay=7 echo "------------------------------------------" >> $logFile echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile echo "--------------------------" >> $logFile cd $bakDir bakFile=$dbname.$datetime.sql.gz mysqldump -u $user -p $password $dbname | gzip > $bakFile echo "Datenbank [$dbname] Sicherung abgeschlossen" >> $logFile echo "$bakDir/$bakFile" >> $logFile echo "Starten Sie das Hochladen der Sicherungsdateien in den Qiniu Cloud Storage" >> $logFile /usr/local/bin/qshell rput <Bucket> Datenbank/$bakFile $bakFile true | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" >> $logFile 2>&1 echo "Lösche die Sicherungsdatei vor ${keepDay} Tagen" >> $logFile finde $bakDir -ctime +$keepDay >> $logFile finde $bakDir -ctime +$keepDay -exec rm -rf {} \; echo " " >> $logFile echo " " >> $logFile Die Datenbankkonfiguration, Protokolldateien, Speicherpfad, <Bucket> usw. im Skript müssen von Ihnen selbst geändert werden und sind vorhanden. database/$bakFile steht für <Schlüssel>, also den Pfad und Dateinamen im Qiniu-Speicher, der angepasst werden kann. Die Skriptdatei muss über Ausführungsberechtigungen verfügen. Erst dann kann das Skript zum Testen ausgeführt werden. Geplante Aufgaben # Führen Sie das Backup-Skript jeden Tag um 2 Uhr morgens aus * 2 * * * /opt/backup/baksql.sh Wenn die geplante Aufgabe nicht ausgeführt wird, können Sie zur Behebung des Problems das Protokoll /var/log/cron überprüfen oder prüfen, ob crond ausgeführt wird. Zusammenfassen Oben ist die Methode, die ich Ihnen vorgestellt habe, um MySQL regelmäßig zu sichern und auf Qiniu hochzuladen. Ich hoffe, sie wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Die Vollversion des gängigen Linux-Tools vi/vim
>>: Detaillierte Erläuterung der Angular-Routing-Grundlagen
So schreiben Sie DROP TABLE in verschiedene Daten...
docker-compose-monitor.yml Version: '2' N...
Eine Anwendung einer CSS-Animation mit demselben ...
Codebeispiel: öffentliche Klasse JDBCDemo3 { öffe...
Es gibt zwei Möglichkeiten, nodejs unter Linux zu...
Das Pre-Element definiert vorformatierten Text. In...
brauchen Unabhängig davon, ob es sich um ein Wind...
netem und tc: netem ist ein Netzwerksimulationsmo...
Jeder muss mit Tabellen vertraut sein. Wir stoßen...
Während des täglichen Optimierungsprozesses stell...
Die Javascript-Funktion zum Konvertieren von <t...
1. MySQL installieren Dieser Artikel wird über AP...
In der Datenbank führen sowohl die Schlüsselwörte...
1.17.9 Wirklich leckerer Nginx-Download-Adresse: ...
Inhaltsverzeichnis MySQL-Client/Server-Protokoll ...