PostgreSQL- und MySQL-Datenbanksicherung und -wiederherstellung | INTROSERV
EUR
european

EUR

usa

USD

German De
Ex. VAT Ex. VAT 0%

PostgreSQL- und MySQL-Datenbanksicherung und -wiederherstellung

Backup ist eines der wichtigsten Verfahren, das die Datensicherheit gewährleistet. Selbst bei zuverlässigem Hosting können Anwendungsfehler, fehlerhafte Updates oder versehentliche Datenlöschungen auftreten.

In diesem Leitfaden zeigen wir, wie man Backups von PostgreSQL- und MySQL-Datenbanken mit den Standard-Kommandozeilenprogrammen pg_dump und mysqldump erstellt und wiederherstellt.

1. PostgreSQL-Backup

1.1. Was ist pg_dump

pg_dump ist ein Standard-PostgreSQL-Tool zur Erstellung eines logischen Datenbank-Backups. Es speichert sowohl die Struktur (DDL) als auch die Daten (DML) in einer Text-SQL-Datei, die später zur Wiederherstellung verwendet werden kann.

1.2. Befehlsyntax

pg_dump -U <user> -h <host> -p <port> -d <database> -F p -f <path_to_file.sql>

1.3. Backup-Beispiel

pg_dump -U myuser -h localhost -d mydatabase -F p -f /backups/mydatabase_$(date +%F).sql

Parametererklärung:

  • -U myuser — PostgreSQL-Benutzername;
  • -h localhost — Server-Host (IP kann angegeben werden);
  • -d mydatabase — Datenbankname;
  • -F p — Ausgabeformat (plain — reguläres SQL);
  • -f — Pfad zur Datei, in der das Backup gespeichert wird;
  • $(date +%F) — fügt das aktuelle Datum zum Dateinamen hinzu (z.B. 2025-11-03).

1.4. Komprimiertes Backup

Um die Dateigröße zu reduzieren, können Sie gzip-Komprimierung verwenden:

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

2. Wiederherstellung der PostgreSQL-Datenbank

2.1. Verwendung von psql

Um eine Datenbank aus einem Text-Backup wiederherzustellen, verwenden Sie:

psql -U myuser -d mydatabase -f /backups/mydatabase_2025-11-03.sql

Wenn das Backup komprimiert ist:

gunzip -c /backups/mydatabase_2025-11-03.sql.gz | psql -U myuser -d mydatabase

2.2. Wenn die Datenbank nicht existiert

Erstellen Sie zuerst eine neue Datenbank:

createdb -U myuser newdatabase

psql -U myuser -d newdatabase -f /backups/mydatabase_2025-11-03.sql

3. MySQL-Backup

3.1. Was ist mysqldump

mysqldump ist ein Standard-Tool zur Erstellung von MySQL-Dumps. Es speichert die SQL-Befehle, die benötigt werden, um Tabellen neu zu erstellen und Daten einzufügen.

3.2. Befehlsyntax

mysqldump -u <user> -p -h <host> <database> > <path_to_file.sql>

3.3. Backup-Beispiel

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

Parametererklärung:

  • -u myuser — MySQL-Benutzername;
  • -p — fordert ein Passwort an;
  • mydatabase — Datenbankname;
  • > — leitet die Ausgabe in eine Datei um.

3.4. Komprimierter Dump

mysqldump -u myuser -p mydatabase | gzip > /backups/mydatabase_$(date +%F).sql.gz

4. Wiederherstellung der MySQL-Datenbank

4.1. Wiederherstellung aus SQL-Datei

mysql -u myuser -p mydatabase < /backups/mydatabase_2025-11-03.sql

4.2. Wenn die Datenbank nicht existiert

Erstellen Sie eine neue Datenbank vor der Wiederherstellung:

mysql -u myuser -p -e "CREATE DATABASE newdatabase;"

mysql -u myuser -p newdatabase < /backups/mydatabase_2025-11-03.sql

4.3. Wiederherstellung aus komprimiertem Dump

gunzip -c /backups/mydatabase_2025-11-03.sql.gz | mysql -u myuser -p mydatabase

5. Automatisierung und Sicherheitsempfehlungen

5.1. Automatisierte Backups mit Cron

Für regelmäßige Backup-Prozesse ohne manuelle Eingriffe richten Sie die Automatisierung mit cron ein.

Grundlegende Cron-Einrichtung:

# Cron-Editor öffnen crontab -e

Fügen Sie eine Zeile hinzu, zum Beispiel:

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

Dieser Befehl führt das Skript täglich um 2:00 Uhr aus.

Erweiterter Ansatz mit einem Skript. Erstellen Sie /usr/local/bin/db_backup.sh:

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL-Backup pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL-Backup mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # Backups löschen, die älter als 7 Tage sind find /backup/ -type f -mtime +7 -delete

Machen Sie das Skript ausführbar:

chmod +x /usr/local/bin/db_backup.sh

Und fügen Sie es zu cron hinzu:

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

5.2. Sicherheits- und Speicherempfehlungen

  • Off-Server-Speicherung: Speichern Sie Backups in Cloud-Speichern (AWS S3, Google Cloud) oder auf externen Laufwerken.
  • Zugriffskontrolle: Beschränken Sie den Zugriff auf den /backups-Ordner, da Dateien vertrauliche Daten enthalten können.

chmod 700 /backup

chmod 600 /backup/*.sql.gz

  • Integritätsprüfung: Führen Sie monatlich Testwiederherstellungen durch, um die Funktionalität der Backups zu überprüfen.
  • Vertraulichkeit: Backup-Dateien enthalten Datenbankinhalte — behandeln Sie sie als vertrauliche Informationen.

Fazit

Die Verwendung von pg_dump und mysqldump ist eine einfache, zuverlässige und universelle Methode, um PostgreSQL- und MySQL-Datenbanken zu sichern. Diese Tools eignen sich sowohl für manuelle Backups als auch für automatisierte Prozesse mit minimalem Aufwand.

Regelmäßige Backups sind der Schlüssel zur Stabilität und Datensicherheit Ihres Projekts.

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