setupmc.com

Minecraft-Welt aus einem Docker-Backup wiederherstellen

Stoppe den Server, behalte den aktuellen Datenstand und stelle das ausgewählte Backup wieder her.

Backups
setupmc.com Team

Warum Wiederherstellungen in der Praxis scheitern

Prüfe vor einer Wiederherstellung diese Fehlerquellen:

  • der Server läuft noch
  • das falsche Zielverzeichnis wurde gewählt
  • das Backup wird ohne Kompatibilitätsprüfung in einen anderen Softwarestand eingespielt

Bevor du Daten anfasst

Notiere drei Dinge:

  • wo die Live-Daten aktuell liegen
  • welches Backup du wirklich zurückspielen willst
  • ob du den kompletten Serverzustand oder nur die Welt zurückrollen musst

Bei itzg/mc-backup ist das Live-Verzeichnis meist /data, der Standardpfad für Archive üblicherweise /backups.

Schritt 1: Den Server sauber stoppen

Spiele niemals über eine laufende Welt zurück.

Stoppe den Backup-Begleitcontainer und den Minecraft-Service über Compose:

docker compose stop backup mc

Compose sendet das normale Stoppsignal und verhindert, dass die Restart-Policy den Container sofort wieder hochfährt. Der gestoppte Backup-Begleitcontainer kann außerdem keinen neuen Job starten, während du sein Quellverzeichnis verschiebst. Heißt dein Service backups, verwendest du stattdessen diesen Namen.

Prüfe danach den Containerzustand:

docker compose ps

Schritt 2: Den aktuellen Zustand vor der Wiederherstellung sichern

Verschiebe das aktuelle Verzeichnis zur Seite, statt es zu überschreiben:

mv ./data ./data.pre-restore.$(date +%F-%H%M%S)
mkdir ./data
sudo chown 1000:1000 ./data

Damit behältst du einen Rückweg, falls du das falsche Backup erwischst. 1000:1000 ist die Standard-UID/GID des Containers; nutze die Werte aus deiner Compose-Datei, wenn du sie bewusst geändert hast.

Schritt 3: Die Wiederherstellung bewusst vorbereiten

Wenn du itzg/mc-backup nutzt, bringt das Image eigene Helfer für die Wiederherstellung mit.

Bei tar-basierten Backups arbeitet der aktuelle Helfer restore-tar-backup so:

  • er stellt nur wieder her, wenn /data leer ist
  • er wählt die neueste Datei aus /backups
  • er entpackt diese Datei nach /data

Diese Sicherheitsprüfung ist nützlich, aber die automatische Auswahl reicht für einen Incident-Ablauf nicht. Gib dem Helfer ein Verzeichnis, das nur das bewusst gewählte Archiv enthält.

Schritt 4: In das richtige Ziel zurückspielen

Ergänze diesen ausschließlich für Recovery gedachten Service in der Compose-Datei. Durch das Profil startet er nicht bei einem normalen docker compose up:

services:
  restore-backup:
    profiles: ["recovery"]
    image: itzg/mc-backup:latest
    user: "1000"
    restart: "no"
    entrypoint: restore-tar-backup
    volumes:
      - ./data:/data
      - ${RESTORE_SOURCE:-./restore-source}:/backups:ro

Liste die vorhandenen Archive auf und prüfe den Inhalt des ausgewählten Archivs, bevor du etwas entpackst:

ls -lht ./backups
tar -tf ./backups/AUSGEWAEHLTES_BACKUP.tar.gz | sed -n '1,40p'

Erstelle ein frisches Auswahlverzeichnis mit genau diesem Archiv und starte dann den Helfer:

restore_source="./restore-source-$(date +%F-%H%M%S)"
mkdir "$restore_source"
cp ./backups/AUSGEWAEHLTES_BACKUP.tar.gz "$restore_source"/
RESTORE_SOURCE="$restore_source" docker compose --profile recovery run --rm restore-backup

Der Befehl sollte den Namen des wiederhergestellten Archivs ausgeben. Erscheint No restore needed, war /data nicht leer. Brich dann ab, statt eine Wiederherstellung in bestehende Daten zu erzwingen.

Wenn du vorsichtiger vorgehen willst, restore zunächst nach ./data-restore-test und prüfe den Inhalt, bevor du produktiv umschaltest.

Schritt 5: Server starten und Ergebnis validieren

Server wieder hochfahren:

docker compose up -d mc
docker compose logs -f mc

Starte den Backup-Begleitcontainer erst wieder, wenn der wiederhergestellte Server erfolgreich geprüft wurde:

docker compose up -d backup

Prüfe drei Dinge:

  • der Server startet ohne Welt- oder Region-Fehler
  • die erwartete Welt und die wichtigen Spielerstände sind da
  • der Ingame-Zustand passt zum gewählten Zeitpunkt

Bei wichtigen Servern solltest du nicht nur in die Logs schauen, sondern dich einloggen und gezielt einen bekannten Ort oder ein wichtiges Bauwerk prüfen.

Kompatibilitätschecks, die du nicht überspringen solltest

Eine Wiederherstellung ist nicht nur ein Dateikopiervorgang. Er hängt auch vom Software-Stack drumherum ab.

Prüfe:

  • Minecraft-Version
  • Server-Typ
  • Plugins oder Mods, die Welt-Daten verändern

Stelle zuerst die Software-Versionen wieder her, mit denen das Backup erstellt wurde, und führe ein Upgrade danach als eigenen kontrollierten Schritt durch. Die aktuelle Paper-Migrationsdokumentation warnt außerdem, dass Unterschiede bei der Weltstruktur rund um 26.1 direkte Wechsel zwischen Paper und CraftBukkit/Spigot unsicher machen können. Kombiniere eine Notfall-Wiederherstellung nicht mit einer Migration des Server-Typs.

Häufige Fehler

SymptomWahrscheinliche UrsacheFix
Die Wiederherstellung macht scheinbar nichtsZielverzeichnis war nicht leerEin bewusst leeres Zielverzeichnis vorbereiten
Welt crasht beim StartVersions- oder Plugin-MismatchSoftwarestand des Backups gegen die Zielumgebung prüfen
Falsche Welt kam zurückFalsches Archiv ausgewählt oder unklare Backup-NamenNamensschema und Retention klar standardisieren
Kein Rückweg nach gescheiterter WiederherstellungAktueller Stand zu früh überschriebenVorher immer eine Kopie oder einen Snapshot anlegen

FAQ

Sollte ich Wiederherstellungen auch testen, wenn gerade nichts kaputt ist?

Ja. Stelle ein Backup in einem separaten Verzeichnis wieder her und prüfe die Welt im Spiel.

Reicht es, nur den Weltordner zurückzuspielen?

Manchmal, aber nicht immer. Wenn Plugins wichtigen Zustand außerhalb des Weltordners unter /data halten, kann eine Teil-Wiederherstellung Inkonsistenzen erzeugen.

Nächste Schritte

Backup-Guide

Cloud-Backups einrichten

Konfigurationsbeispiele für externen Speicher, Wiederherstellung und Discord-Meldungen.

Backup Guide öffnen

Häufige Fragen