So sichern Sie MySQL regelmäßig und laden es auf Qiniu hoch

So sichern Sie MySQL regelmäßig und laden es auf Qiniu hoch

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:
https://portal.qiniu.com/signup?code=3looatwobaxci

• 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.
Qshell-Konto ak sk

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:
  • Shell-Skript zum Implementieren geplanter MySQL-Sicherungs-, Lösch- und Wiederherstellungsfunktionen
  • Freigabe des Shell-Skripts für die geplante MySQL-Sicherung unter CentOS
  • MySQL-Lösung für zeitgesteuerte Backups (mithilfe von Linux crontab)
  • Kurze Analyse der geplanten MySQL-Sicherungsaufgaben
  • Beispiel für eine geplante MySQL-Datenbanksicherung
  • So implementieren Sie eine geplante Sicherung einer MySQL-Datenbank
  • Eine einfache Methode zum Implementieren einer geplanten Sicherung einer MySQL-Datenbank unter Linux
  • Linux führt jeden Tag eine automatische und geplante Sicherung der MySQL-Datenbank durch
  • Geplantes Teilen von Skripten für MySQL-Datenbanksicherungen
  • Implementierung eines geplanten MySQL-Sicherungsskripts unter Windows
  • Der beste Weg zum automatischen Sichern der MySQL-Datenbank (Windows-Server)
  • Verwenden von MySQL unter Windows: Implementieren automatischer zeitgesteuerter Sicherungen

<<:  Die Vollversion des gängigen Linux-Tools vi/vim

>>:  Detaillierte Erläuterung der Angular-Routing-Grundlagen

Artikel empfehlen

So schreiben Sie DROP TABLE in verschiedene Datenbanken

So schreiben Sie DROP TABLE in verschiedene Daten...

Stellen Sie die Grafana+Prometheus-Konfiguration mit Docker bereit

docker-compose-monitor.yml Version: '2' N...

Implementieren eines Tabellen-Scrollkarusselleffekts durch CSS-Animation

Eine Anwendung einer CSS-Animation mit demselben ...

Beispiel und Lösung für einen SQL-Injection-Sicherheitslückenprozess

Codebeispiel: öffentliche Klasse JDBCDemo3 { öffe...

Beispielcode zum automatischen Umbrechen des Pre-Tags

Das Pre-Element definiert vorformatierten Text. In...

CentOS 7 - Lösungsprozessdiagramm für vergessene Passwörter

brauchen Unabhängig davon, ob es sich um ein Wind...

So simulieren Sie Netzwerkpaketverlust und -verzögerung in Linux

netem und tc: netem ist ein Netzwerksimulationsmo...

5 Möglichkeiten, den diagonalen Kopfzeileneffekt in der Tabelle zu erzielen

Jeder muss mit Tabellen vertraut sein. Wir stoßen...

Der Prozess der schnellen Konvertierung eines MySQL-Left-Joins in einen Inner-Join

Während des täglichen Optimierungsprozesses stell...

Beispielcode zum Konvertieren von HTML-Tabellendaten in das JSON-Format

Die Javascript-Funktion zum Konvertieren von <t...

Kurze Analyse von MySQL Union und Union All

In der Datenbank führen sowohl die Schlüsselwörte...

Detaillierter Prozess der Installation von nginx1.9.1 auf centos8

1.17.9 Wirklich leckerer Nginx-Download-Adresse: ...

Interpretieren von MySQL-Client- und Serverprotokollen

Inhaltsverzeichnis MySQL-Client/Server-Protokoll ...