PostgreSQL/MySQL-Backup in den Cloud-Speicher | INTROSERV
EUR
european

EUR

usa

USD

German De
Ex. VAT Ex. VAT 0%

PostgreSQL/MySQL-Sicherung in einem Cloud-Speicher

Einleitung

Die Sicherung von Datenbanken ist einer der wichtigsten Vorgänge, um die Sicherheit und Zuverlässigkeit von Websites und Anwendungen zu gewährleisten. Datenverluste können aus vielen Gründen auftreten: Serverausfall, Fehler des Administrators, Probleme bei Updates, Malware oder einfach menschliches Versagen. Regelmäßige Sicherungen ermöglichen es Ihnen, Ihr Projekt schnell und ohne Datenverlust wiederherzustellen.

In dieser Anleitung wird erläutert, wie Sie PostgreSQL- und MySQL-Datenbanken sichern, wie Sie Backups mithilfe von rsync oder scp auf einem entfernten Linux-Server speichern und wie Sie diese mit rclone in einen Cloud-Speicher hochladen.

PostgreSQL-Sicherung

PostgreSQL bietet das Standard-Dienstprogramm pg_dump, mit dem sich eine vollständige Kopie der Datenbank als SQL-Datei erstellen lässt.

Beispiel für die Erstellung eines Backups:

pg_dump -U myuser -h localhost mydatabase > /backup/mydatabase_$(date +%F).sql

Erläuterung der Parameter:

  • -U myuser — Benutzername der Datenbank
  • -h localhost – Serveradresse (kann bei lokalem Zugriff weggelassen werden)
  • mydatabase — Name der Datenbank
  • /backup/... — Zielpfad
  • $(date +%F) — fügt das aktuelle Datum zum Dateinamen hinzu

Um Speicherplatz zu sparen, komprimieren Sie das Backup sofort:

pg_dump -U myuser mydatabase | gzip > /backup/mydatabase_$(date +%F).sql.gz

So sichern Sie alle Datenbanken auf dem Server:

pg_dumpall -U myuser | gzip > /backup/postgres_all_$(date +%F).sql.gz

MySQL-Sicherung

Verwenden Sie für MySQL und MariaDB das Dienstprogramm „mysqldump “.

Beispiel für eine Sicherung einer einzelnen Datenbank:

mysqldump -u myuser -p mydatabase > /backup/mydatabase_$(date +%F).sql

Wenn Sie diesen Befehl ausführen, werden Sie vom System zur Eingabe des Benutzerkennworts aufgefordert.

So sichern Sie alle Datenbanken:

mysqldump -u myuser -p --all-databases | gzip > /backup/mysql_all_$(date +%F).sql.gz

Um gespeicherte Prozeduren und Trigger einzubeziehen, fügen Sie die Optionen --routines --triggers hinzu.

Sicherung in CloudBox

CloudBox von INTROSERV ist eine Cloud-Speicherlösung, die mehrere Verbindungsprotokolle unterstützt (darunter rsync, scp, rsync über SSH und WebDAV). Die einfache Bedienung von CloudBox vereinfacht das Hochladen, Verwalten und Abrufen von Daten erheblich.

Sie können CloudBox als Remote-Speicherort für Ihre Datenbank-Backups nutzen. Nachfolgend finden Sie Details zur Einrichtung sowie Skriptbeispiele.

Schritt 1. Zugriff auf CloudBox erhalten

Bestellen Sie eines der verfügbaren CloudBox-Pakete auf unserer Website – introserv.com

Nach der Bezahlung ist der Dienst innerhalb weniger Minuten verfügbar. Nach der Aktivierung des Dienstes erhalten Sie die Verbindungsdaten:

  • Serveradresse (box#####.introserv.cloud)
  • Benutzername (box#####) und Passwort

Schritt 2. Verbindung und Synchronisierung mit rsync oder scp

Verwendung von rsync (empfohlen):

rsync -avz -e "ssh -p 22" /backup/ user@cloudbox-server:/path_to_cloudbackups/

Dabei gilt:

  • user — CloudBox-Benutzername
  • cloudbox-server — Verbindungsadresse
  • /path_to_cloudbackups/ — Pfad auf CloudBox

Für den automatisierten Betrieb empfiehlt es sich, SSH-Schlüssel einzurichten:

  1. Einen öffentlichen Schlüssel generieren:

    ssh-keygen -t rsa

  2. Kopieren Sie den Inhalt der erstellten Datei mit dem öffentlichen Schlüssel, z. B. /root/.ssh/id_rsa.pub, in die Zwischenablage.
  3. Gehen Sie zum Abschnitt „Profil“ (bewegen Sie den Mauszeiger über das Benutzersymbol oben rechts), fügen Sie den Schlüsselinhalt in das Feld „Öffentliche Schlüssel“ ein und speichern Sie die Einstellungen.

Danach funktioniert rsync ohne Passwortabfragen, was für Cron-Jobs praktisch ist.

Alternative – scp:

scp /backup/mysql_mydatabase.sql.gz user@cloudbox-server:/path_to_cloudbackups/

Schritt 3. Verbindung und Synchronisierung mit rclone

Wenn Sie rclone für die Interaktion mit CloudBox verwenden möchten, konfigurieren Sie es wie folgt:

  1. Installieren Sie rclone:

    sudo apt install rclone

  2. Konfiguration starten:

    rclone config

Wählen Sie während der Einrichtung:

  • n — um einen neuen Remote-Namen
  • , z. B. „ cloudbox“
  • Speichertyp — wählen Sie „sftp“ oder „ssh“
  • Geben Sie die Serveradresse im Format „box#####.introserv.cloud“, den Benutzernamen im Format „box#####“ und den Port (in diesem Fall den SSH-Port – Standardwert 22) sowie den Verzeichnispfad
  • Führen Sie die Autorisierung durch (falls erforderlich)

Verbindung testen:

rclone ls cloudbox:/path_to_cloudbackups/

Sicherungsdaten kopieren:

rclone copy /backup/ cloudbox:/db-backups/ --progress

Synchronisieren Sie die Daten und löschen Sie dabei Dateien, die lokal nicht vorhanden sind:

rclone sync /backup/ cloudbox:/db-backups/ --progress

Bei Bedarf – Dateien vor der Übertragung verschlüsseln:

rclone copy /backup/ cloudbox:/db-backups/ --progress --crypt

Schritt 4. Beispiel für ein Automatisierungsskript mit CloudBox

Erstellen Sie das Skript /usr/local/bin/db_backup_cloudbox.sh, zum Beispiel:

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # Upload to CloudBox rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # Upload to CloudBox (rclone option, uncomment if used) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # Remove backups older than 7 days find /backup/ -type f -mtime +7 -delete

Fügen Sie anschließend einen Cron-Job hinzu (im Beispiel wird das Skript täglich um 2:00 Uhr morgens ausgeführt):

0 2 * * * /usr/local/bin/db_backup_cloudbox.sh

Wichtige Hinweise:

  • Stellen Sie sicher, dass die Verbindung zu CloudBox stabil ist und ausreichend Bandbreite zur Verfügung steht.
  • Richten Sie eine Überwachung ein: Vergewissern Sie sich, dass die Dateien tatsächlich kopiert werden.
  • Testen Sie regelmäßig die Wiederherstellung aus CloudBox-Backups.
  • Bei der Verwendung vertraulicher Daten sollten Sie eine Verschlüsselung der Backups in Betracht ziehen.

Kopieren auf einen entfernten Linux-Server über SSH

Wenn Sie Backups nicht nur lokal, sondern auch auf einem anderen Server speichern möchten, verwenden Sie rsync oder scp.

Verwendung von rsync (empfohlen, da nur Änderungen kopiert werden):

rsync -avz -e "ssh -p 22" /backup/ [email protected]:/remote_backups/

Erläuterung der Parameter:

  • user – Benutzername auf dem Remote-Server
  • remote.server — IP-Adresse oder Domänenname des Remote-Servers
  • /remote_backups/ — Pfad zum Speichern der Backups

Um ohne Passworteingabe zu arbeiten, konfigurieren Sie SSH-Schlüssel:

# Generate SSH keys: ssh-keygen -t rsa # Copy key to remote server: ssh-copy-id [email protected]

Danach funktioniert rsync ohne Passwortabfragen, was für Cron-Jobs praktisch ist.

Alternative zu rsync – Verwendung von scp:

scp /backup/mysql_mydb.sql.gz [email protected]:/remote_backups/

Kopieren in einen Cloud-Speicher über rclone

Wenn Sie Backups in der Cloud (Google Drive, Dropbox, Amazon S3 usw.) speichern möchten, verwenden Sie rclone – ein universelles Tool zur Synchronisierung von Daten mit verschiedenen Cloud-Diensten.

Installation:

sudo apt install rclone

Konfiguration:

rclone config

Befolgen Sie die interaktiven Einrichtungsschritte:

  • Wählen Sie „n“, um eine neue Verbindung zu erstellen
  • Geben Sie einen Namen ein, z. B. „remote“
  • Wählen Sie den Speichertyp aus (z. B. „s3“, „drive“, „dropbox“)
  • Geben Sie die Zugriffsschlüssel ein oder autorisieren Sie die Verbindung über den Browser

Überprüfen Sie die Verbindung:

rclone ls remote:path

Beispiel für das Hochladen von Backups in die Cloud:

rclone copy /backup/ remote:db-backups/ --progress

Synchronisierungsbefehl (entfernt Dateien, die lokal fehlen):

rclone sync /backup/ remote:db-backups/ --progress

Sie können Dateien vor dem Hochladen auch verschlüsseln:

rclone copy /backup/ remote:db-backups/ --progress --crypt

Sicherheit und Kontrolle

  • Speichern Sie Backups an mindestens zwei Orten – lokal und remote.
  • Überprüfen Sie regelmäßig, ob Backups erfolgreich erstellt und hochgeladen wurden.
  • Führen Sie mindestens einmal im Monat Testwiederherstellungen durch.
  • Verschlüsseln Sie Dateien mit sensiblen Daten, wenn Sie öffentliche Clouds nutzen:

    gpg -c /backup/mysql_mydatabase.sql.gz

  • Stellen Sie die richtigen Dateiberechtigungen für /backup sicher und schützen Sie Ihre Datenbank-Zugangsdaten.

Wiederherstellung aus dem Backup

PostgreSQL:

gunzip < backup.sql.gz | psql -U myuser -d mydatabase

MySQL:

gunzip < backup.sql.gz | mysql -u myuser -p mydatabase

Fazit

Das Sichern von PostgreSQL- und MySQL-Datenbanken ist ein einfacher, aber äußerst wichtiger Vorgang. Selbst die zuverlässigste Infrastruktur kann Sie nicht vor menschlichen Fehlern oder technischen Ausfällen schützen. Die beste Strategie sind regelmäßige automatisierte Backups, die auf mindestens einem externen Server und in der Cloud gespeichert werden, sowie regelmäßige Wiederherstellungstests.

Durch die Kombination von pg_dump, mysqldump, rsync, rclone und cron können Sie ein zuverlässiges, vollautomatisches Backup-System ohne kostenpflichtige Software von Drittanbietern aufbauen. Dieser Ansatz ist einfach umzusetzen und eignet sich für alle Linux-Systeme.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA