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: Das Backup auswählen
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
/dataleer 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.
Software-Kompatibilität prüfen
Die Software-Versionen müssen zum Backup passen.
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
| Symptom | Wahrscheinliche Ursache | Fix |
|---|---|---|
| Die Wiederherstellung macht scheinbar nichts | Zielverzeichnis war nicht leer | Ein bewusst leeres Zielverzeichnis vorbereiten |
| Welt crasht beim Start | Versions- oder Plugin-Mismatch | Softwarestand des Backups gegen die Zielumgebung prüfen |
| Falsche Welt kam zurück | Falsches Archiv ausgewählt oder unklare Backup-Namen | Namensschema und Retention klar standardisieren |
| Kein Rückweg nach gescheiterter Wiederherstellung | Aktueller Stand zu früh überschrieben | Vorher immer eine Kopie oder einen Snapshot anlegen |