Datenbanksicherung: PostgreSQL, MySQL, rsync, rclone, CloudBox | INTROSERV
EUR
european

EUR

usa

USD

German De
Ex. VAT Ex. VAT 0%

Datenbanksicherung: PostgreSQL, MySQL, rsync, rclone, CloudBox

Datenbanksicherungen sind eines der wichtigsten Verfahren, um die Sicherheit und Zuverlässigkeit von Websites und Anwendungen zu gewährleisten. Datenverlust kann aus vielen Gründen auftreten: Serverausfall, Administratorfehler, Aktualisierungsprobleme, Malware oder einfach menschliches Versagen. Regelmäßige Backups ermöglichen es Ihnen, Ihr Projekt schnell wiederherzustellen, ohne Datenverlust.

Diese Anleitung erklärt, wie man PostgreSQL- und MySQL-Datenbanken sichert, wie man Backups auf einem entfernten Linux-Server mit rsync oder scp speichert und wie man sie mit rclone in die Cloud hochlädt.

PostgreSQL-Backup

PostgreSQL bietet das Standard-Tool pg_dump, mit dem eine vollständige Datenbankkopie als SQL-Datei erstellt werden kann.

Beispiel für die Erstellung eines Backups:

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

Erklärung der Parameter:

  • -U myuser — Datenbankbenutzername;
  • -h localhost — Serveradresse (kann weggelassen werden, wenn lokal);
  • mydatabase — Datenbankname;
  • /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

Um alle Datenbanken auf dem Server zu sichern:

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

MySQL-Backup

Für MySQL und MariaDB verwenden Sie das Dienstprogramm mysqldump.

Beispiel für ein einzelnes Datenbank-Backup:

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

Wenn Sie diesen Befehl ausführen, wird das System nach dem Benutzerpasswort fragen.

Um alle Datenbanken zu sichern:

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

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

Backup zu CloudBox

CloudBox von INTROSERV ist eine Cloud-Speicherlösung, die mehrere Verbindungsprotokolle unterstützt (einschließlich rsync, scp, rsync über SSH, WebDAV). Die Benutzerfreundlichkeit von CloudBox vereinfacht erheblich die Aufgaben des Hochladens, der Verwaltung und des Abrufs von Daten.

Sie können es als entfernten Speicherort für Ihre Datenbanksicherungen verwenden. Nachfolgend finden Sie Einrichtungsdetails und Skriptbeispiele.

Schritt 1. Zugriff auf CloudBox erhalten

Bestellen Sie einen der verfügbaren CloudBox-Pläne auf unserer Website — https://introserv.com/solutions/cloudbox/

Nach der Zahlung wird der Dienst innerhalb weniger Minuten verfügbar. Nach der Aktivierung des Dienstes erhalten Sie Verbindungsdetails:

  • 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/

Wo:

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

Für den automatisierten Betrieb ist es ratsam, SSH-Schlüssel einzurichten.

1) Erzeugen Sie einen öffentlichen Schlüssel:

ssh-keygen -t rsa

2) Kopieren Sie den Inhalt der erstellten öffentlichen Schlüsseldatei, z.B. /root/.ssh/id_rsa.pub in die Zwischenablage.

3) Gehen Sie zum Abschnitt "Profil" (fahren Sie mit der Maus über das Benutzersymbol oben rechts), fügen Sie den Schlüsselinhalt in das Feld "Öffentliche Schlüssel" ein und speichern Sie die Einstellungen.

CloudBox profile settings
CloudBox public keys field

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) Starten Sie die Konfiguration:

rclone config

Wählen Sie während der Einrichtung:

  • n — um ein neues Remote zu erstellen;
  • Name, z.B. cloudbox;
  • Speichertyp — wählen Sie sftp oder ssh;
  • Geben Sie die Serveradresse im Format box$$$$$.introserv.cloud, den Benutzernamen im Format box$$$$$, den Port (SSH — Standard 22), den Verzeichnispfad ein;
  • Führen Sie die Autorisierung durch (falls erforderlich).

Testen Sie die Verbindung:

rclone ls cloudbox:/path_to_cloudbackups/

Kopieren Sie die Backup-Daten:

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

Synchronisieren Sie mit Löschung von lokal fehlenden Dateien:

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

Bei Bedarf — verschlüsseln Sie Dateien vor dem Transfer:

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

Schritt 4. Automatisierungsskript-Beispiel mit CloudBox

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

#!/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 dann einen Cron-Job hinzu (das Skript wird täglich um 2:00 Uhr ausgeführt):

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

Wichtige Überlegungen:

  • Stellen Sie sicher, dass die Verbindung zu CloudBox stabil ist und die Bandbreite ausreicht.
  • Richten Sie ein Monitoring ein: Überprüfen Sie, ob die Dateien tatsächlich kopiert werden.
  • Testen Sie regelmäßig die Wiederherstellung von CloudBox-Backups.
  • Bei Verwendung vertraulicher Daten — erwägen Sie die Verschlüsselung von Backups.

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 es nur Änderungen kopiert):

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

Erklärung der Parameter:

  • user — Benutzername auf dem entfernten Server;
  • remote.server — IP-Adresse oder Domainname des entfernten Servers;
  • /remote_backups/ — Pfad zum Speichern der Backups.

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

SSH-Schlüssel generieren:

ssh-keygen -t rsa

Schlüssel auf den entfernten Server kopieren:

ssh-copy-id [email protected]

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

Alternative — Verwendung von scp:

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

Kopieren in die Cloud über rclone

Wenn Sie Backups in der Cloud (Google Drive, Dropbox, Amazon S3 usw.) speichern müssen, 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:

  1. Wählen Sie n, um eine neue Verbindung zu erstellen;
  2. Geben Sie einen Namen ein, z.B. remote;
  3. Wählen Sie den Speichertyp (z.B. s3, drive, dropbox);
  4. Geben Sie Zugangsschlüssel ein oder autorisieren Sie ü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

Synchronisationsbefehl (entfernt lokal fehlende Dateien):

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

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

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

Sicherheit und Kontrolle

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

gpg -c /backup/mysql_mydatabase.sql.gz

  • Stellen Sie sicher, dass die Dateiberechtigungen für /backup korrekt sind und sichern Sie Ihre Datenbankanmeldeinformationen.

Wiederherstellung aus einem 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 einfaches, aber äußerst wichtiges Verfahren. Selbst die zuverlässigste Infrastruktur kann Sie nicht vor menschlichem Versagen 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, mit regelmäßigen Wiederherstellungstests.

Durch die Kombination von pg_dump, mysqldump, rsync, rclone und cron können Sie ein zuverlässiges, vollständig automatisiertes Backup-System ohne kostenpflichtige Drittanbieter-Software aufbauen. Dieser Ansatz ist einfach zu implementieren und für alle Linux-Systeme geeignet.

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