
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Abhängigkeiten: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-Version: 1.7.10 - 1.21.4 · Mod-Version: 3.7.1 Der…
Abhängigkeiten: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-Version: 1.7.10 - 1.21.4 · Mod-Version: 3.7.1 Der standardmäßige Backup-Mechanismus in Minecraft Java Edition weist erhebliche Einschrä
Abhängigkeiten:
· Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Minecraft-Version: 1.7.10 - 1.21.4
· Mod-Version: 3.7.1
Der standardmäßige Backup-Mechanismus in Minecraft Java Edition weist erhebliche Einschränkungen auf. Im Vanilla-Spiel erfolgt das Erstellen von Backups manuell über ein Menü oder erfordert das Anhalten des Servers, um die Dateien zu kopieren. Diese Vorgänge werden im Haupt-Thread des Spiels ausgeführt, was zu Blockaden des Spielablaufs, Lags oder einer vorübergehenden Nichtverfügbarkeit des Servers während des Schreibens von Gigabyte an Daten auf die Festplatte führt. Darüber hinaus erstellt die Standardmethode nur vollständige Kopien der Welt und füllt den Datenträger schnell mit duplizierten Daten. Die Modifikation Advanced Backups löst diese Probleme, indem sie asynchrone, zeitgesteuerte Backups mit Unterstützung für differentielle und inkrementelle Komprimierungsmodelle, eine flexible Bereinigung veralteter Archive und ein integriertes Werkzeug zur Datenwiederherstellung bietet.
Backup-Mechanismen: Zip, Differential und Incremental
Das Werkzeug bietet drei Modi zur Verarbeitung der Weltdateien, die das Gleichgewicht zwischen Ausführungsgeschwindigkeit, beanspruchtem Speicherplatz und Wiederherstellungssicherheit bestimmen:
· Zip (vollständige Kopien): Das Funktionsprinzip besteht darin, den gesamten Weltordner in eine einzige .zip-Datei zu archivieren. Diese Methode ist am ressourcenintensivsten und benötigt am meisten freien Speicherplatz auf dem Datenträger, da jedes Backup alle Dateien enthält, unabhängig davon, ob sie geändert wurden oder nicht. Ihr Vorteil ist die Einfachheit der Wiederherstellung – es genügt, die benötigte Datei zu entpacken.
· Differential (differentielle Sicherung): Basiert auf der Erstellung eines einzigen vollständigen Basisarchivs ("full") und nachfolgender Teilarchive ("partial"). Teilarchive erfassen nur jene Dateien, die sich seit der Erstellung des vollständigen Basisarchivs geändert haben. Der Umfang der Zwischen-Backups verringert sich erheblich. Um den Zustand der Welt zu einem bestimmten Zeitpunkt wiederherzustellen, werden nur zwei Dateien benötigt: das vollständige Basisarchiv und das letzte Teilarchiv vor diesem Datum.
· Incremental (inkrementelle Sicherung): Verwendet ebenfalls das Konzept vollständiger und partieller Archive. Allerdings enthält jedes Teilarchiv nur die Änderungen, die seit der Erstellung des letzten vorherigen Teilarchivs eingetreten sind. Dies minimiert die Belastung des Festplattensubsystems und spart maximal viel freien Speicherplatz. Der Nachteil ist ein erhöhtes Risiko des Datenverlusts: Wird auch nur eine einzige Datei in der Kette der inkrementellen Kopien beschädigt, ist es unmöglich, die nachfolgenden Kopien bis zur Erstellung eines neuen vollständigen Backups wiederherzustellen. Auch der Wiederherstellungsvorgang ist am langsamsten, da er das sequentielle Zusammenführen der gesamten Dateikette erfordert.
Die Erstellung neuer Ketten wird durch die Parameter config.advancedbackups.chains.length und config.advancedbackups.chains.maxpercent gesteuert. Der erste Parameter legt die maximale Anzahl von Teilkopien in einer Kette fest, bevor zwangsweise ein neues vollständiges Archiv erstellt wird. Der zweite Parameter führt eine Größenprüfung durch: Übersteigt der Umfang der angesammelten Änderungen in einem Teilarchiv den festgelegten Prozentsatz der Größe des vollständigen Archivs, setzt das System die Kette automatisch zurück und erstellt ein neues vollständiges Backup.
System zur automatischen Bereinigung (Purging) und Arbeit mit Ketten
Um ein Überlaufen der Festplatte zu verhindern, sind in der Modifikation drei Kriterien für das automatische Löschen veralteter Daten umgesetzt:
· Nach der Anzahl der Aufbewahrungstage (config.advancedbackups.purge.days).
· Nach der Gesamtgröße des Backup-Ordners in Gigabyte (config.advancedbackups.purge.size).
· Nach der Gesamtzahl der Kopiendateien (config.advancedbackups.purge.count).
Bei der Verwendung differentieller oder inkrementeller Kopien ist das Löschen einzelner Dateien aus einer Kette nicht möglich, da dies die Datenintegrität verletzen würde. Die Mod arbeitet mit ganzen Ketten (chains). Eine Kette gilt als veraltet und wird erst dann gelöscht, wenn alle ihre Bestandteile (einschließlich des vollständigen Basis-Backups und aller zugehörigen Teilarchive) die Bereinigungskriterien erfüllen. Mit dem Parameter config.advancedbackups.purge.incrementalchains lässt sich die Mindestanzahl vollständiger Ketten festlegen, die das System unabhängig von anderen Bereinigungsbeschränkungen aufbewahren muss. Außerdem kann der Benutzer "Snapshots" erstellen – das sind statische Kopien der Welt, die vor dem automatischen Löschen geschützt sind.
Konfiguration der Datei AdvancedBackups.properties
Die Betriebsparameter des Backup-Systems werden in der Datei AdvancedBackups.properties gespeichert, die beim ersten Start im Verzeichnis config erstellt wird. Die wichtigsten Konfigurationsschlüssel:
Parameter | Standardwert | Beschreibung |
| true | Ermöglicht das vollständige Aktivieren (true) oder Deaktivieren (false) der automatischen Backup-Erstellung. |
| true | Legt fest, ob die Welt vor dem Kopiervorgang zwangsweise auf die Festplatte gespeichert werden soll. |
| true | Deaktiviert das standardmäßige automatische Speichern während der Erstellung einer Kopie und aktiviert es nach Abschluss des Vorgangs wieder. |
| 1048576 | Größe des Ein-/Ausgabepuffers in Byte. Ein Wert über dem Arbeitsspeicherlimit kann zu einem OutOfMemoryError-Absturz führen. |
| false | Erzwungenes Leeren des Schreibcaches der Festplatte. Wird in Minecraft-Versionen vor 1.16 nicht verwendet. |
| true | Prüfung der Spieleraktivität. Waren seit dem letzten Backup keine Spieler auf dem Server, wird die Erstellung der Kopie übersprungen. |
| differential | Typ der Backups. Mögliche Werte: zip (vollständige Kopien), differential (differentielle Sicherung), incremental (inkrementelle Sicherung). |
| session.lock,*_old | Durch Kommas getrennte Ausschlussliste für Dateien im Weltordner, die nicht zum Archiv hinzugefügt werden (Platzhalter wie * sind erlaubt). |
| ./backups | Pfad zum Verzeichnis, in dem die fertigen Backups gespeichert werden (relativ oder absolut). |
| 0.25 | Minimal zulässiger Abstand zwischen Backups in Stunden. Verhindert Duplikate. 0 – deaktiviert. |
| 24.0 | Maximaler Abstand in Stunden, nach dem ein Backup zwangsweise gestartet wird, falls keine anderen erfolgreichen Kopien erstellt wurden. |
| true | Grundlage des Schedulers: Berechnung der Serverlaufzeit (true) oder reale astronomische Systemzeit des Betriebssystems (false). |
| 1:00 | Liste der Intervalle für die Erstellung von Kopien (zum Beispiel 1:00 für ein stündliches Backup oder die genaue reale Uhrzeit 04:00,16:00). |
| false | Erzwungene Erstellung eines Welt-Backups beim Anhalten oder Herunterfahren des Servers. Beachtet das Limit frequency.min. |
| false | Erstellung eines Welt-Backups beim Start des Servers. Beachtet das Limit frequency.min. |
| 30 | Verzögerung des Start-Backups in Sekunden nach dem Einschalten des Servers. Der Mindestwert beträgt 5 Sekunden. |
| ops | Empfängerkategorie der Toast-Benachrichtigungen über den Archivierungsvorgang im Spiel (ops – Operatoren, all – alle, none – niemand). |
| 500 | Häufigkeit des Sendens von Fortschrittspaketen an die Spieler in Millisekunden. Niedrigere Werte erhöhen die Netzwerklast. |
| true | Erlaubt die Ausgabe des detaillierten prozentualen Archivierungsfortschritts in die System-Konsole des Servers. |
| 5000 | Intervall der Protokollierung des Backup-Fortschritts in die Konsole in Millisekunden. |
| 50.0 | Limit der Gesamtgröße des Kopienordners in Gigabyte. Bei Überschreitung werden die ältesten Kopien gelöscht. 0 – deaktiviert. |
| 0 | Aufbewahrungsdauer der Backups in Tagen. Ältere werden gelöscht. 0 – deaktiviert. |
| 0 | Maximal zulässige Anzahl von Kopien auf der Festplatte. Ältere werden gelöscht. 0 – deaktiviert. |
| true | Erlaubt das Löschen inkrementeller Ketten bei der Bereinigung nach Größe. Bei false werden inkrementelle Kopien niemals bereinigt. |
| 1 | Mindestanzahl inkrementeller Ketten, die die Bereinigung in jedem Fall auf der Festplatte belassen muss. |
| 4 | Komprimierungsstufe der ZIP-Archive (von 1 bis 9). Höhere Werte sparen Speicherplatz, belasten aber die CPU. |
| 50 | Maximale Anzahl von Teil-Backups (differentiell/inkrementell) vor der Erstellung eines neuen vollständigen Archivs. |
| true | Erlaubt das Komprimieren der vollständigen Basiskopien und der nachfolgenden Zwischenkopien innerhalb der Ketten. |
| true | Intelligentes Zurücksetzen der Kette. Wurden alle Weltdateien geändert, wird die Kopie automatisch zu einer vollständigen. |
| 50.0 | Größenlimit eines Teil-Backups in Prozent des vollständigen. Bei Überschreitung wird ein vollwertiges Backup erstellt. |
Befehle zur Verwaltung der Backups
Die Verwaltung der Modifikation erfolgt über Konsolenbefehle, die die Zugriffsebene eines Operators erfordern (die Befehlsoptionen wurden in Version 3.7 zur besseren Kompatibilität mit Befehlsblöcken aktualisiert, indem die Anforderung an die Berechtigungsebene auf den Wert 2 gesenkt wurde):
· /backup start – startet den Backup-Vorgang im asynchronen Modus. Der Befehl berücksichtigt alle Einstellungen für Zeitplan, Mindestabstände und Spieleraktivität.
· /backup force – erzwingt den Kopiervorgang und ignoriert dabei die Prüfungen der Spieleraktivität sowie die Zeitlimits frequency.min.
· /backup snapshot <name> – erstellt eine vollständige Sicherungskopie (Snapshot) unter dem angegebenen Namen im Unterordner snapshots. Dieses Archiv wird bei der automatischen Bereinigung veralteter Backups nicht berücksichtigt und niemals automatisch vom System gelöscht.
· /backup reload-config – führt das Neuladen der Parameter aus der Datei AdvancedBackups.properties durch, ohne dass ein Neustart des Servers oder des Spielclients erforderlich ist. In Mod-Versionen vor 2.2 wird dafür der alternative Befehl /advancedbackups reload.
· /backup check – analysiert den aktuellen Zustand des Schedulers und gibt Informationen darüber aus, wie viel Zeit bis zum nächsten geplanten Backup gemäß Zeitplan verbleibt.
· /backup reset – setzt den Zähler der aktuellen Kette inkrementeller oder differentieller Kopien zurück. Das nächste geplante oder manuell gestartete Backup wird zwangsweise als vollständiges Archiv ("full") erstellt.
Das Absenken der Berechtigungsebene für die Befehle auf den Wert 2 ermöglicht die Automatisierung der Backup-Erstellung mithilfe von Command Blocks und externen Scheduler-Plugins, die Konsolenbefehle im Namen des Servers aufrufen.
Konsolen-Wiederherstellungswerkzeug (Command Line Restoration)
Da differentielle und inkrementelle Backups aus einer großen Anzahl miteinander verknüpfter Änderungsdateien bestehen, ist ihre manuelle Wiederherstellung ein komplexer Vorgang. Zur Lösung dieser Aufgabe ist in die JAR-Datei der Modifikation ein spezielles Konsolenwerkzeug eingebettet.
Bei der ersten Erstellung von Kopien generiert die Modifikation automatisch Hilfsskripte im Verzeichnis mit den Backups:
· restore-bootstrap.bat für das Betriebssystem Windows.
· restore-bootstrap.sh für die Betriebssysteme Linux und macOS.
Diese Skripte starten den in die JAR-Datei eingebetteten Wiederherstellungsassistenten. Um die Wiederherstellungsoberfläche manuell über das Terminal zu starten, wird folgender Befehl verwendet:
|
(der Name der JAR-Datei muss exakt der Version der installierten Mod entsprechen).
Die Konsolenoberfläche des Werkzeugs arbeitet im interaktiven Modus:
1. Start des Scannens des Backup-Ordners zur Analyse der verfügbaren Ketten und Snapshots.
2. Anzeige der Liste verfügbarer Wiederherstellungspunkte mit Angabe von Datum, Uhrzeit und Kopientyp (Full, Diff, Inc).
3. Prüfung der Integrität der Kette des ausgewählten Archivs. Handelt es sich um eine inkrementelle Kopie, überprüft das Werkzeug automatisch, ob alle Zwischenteile vom vollständigen Basis-Backup bis zum ausgewählten Punkt vorhanden sind.
4. Abfrage des Zielordners zum Entpacken. Das Werkzeug führt das sequentielle Zusammenführen und Ersetzen der Dateien durch und rekonstruiert damit den exakten Zustand der Welt zum Zeitpunkt der Erstellung der ausgewählten Kopie.
Vor Beginn der Wiederherstellung muss der Minecraft-Server vollständig angehalten werden. Der Versuch, Dateien auf einem laufenden Server wiederherzustellen, führt zur Beschädigung der Weltdatenbank und der Regionsdateien (.mca).
Besonderheiten auf verschiedenen Plattformen und Optimierung
Die Modifikation weist je nach gewählter Installationsplattform architektonische Unterschiede auf:
· Client-seitige Toast-Benachrichtigungen: Visuelle Pop-up-Benachrichtigungen über den Beginn und das Ende der Backup-Erstellung sind über das Vanilla-Toast-System umgesetzt. Damit sie auf der Client-Seite angezeigt werden, muss eine kompatible Mod (Forge, NeoForge oder Fabric) installiert sein. Bei der Verwendung der Mod auf Spigot- oder Paper-Servern sehen Clients ohne installierte Mod keine visuellen Benachrichtigungen, sondern erhalten lediglich gewöhnliche Textnachrichten im Chat, sofern dies durch die Protokollierungseinstellungen erlaubt ist.
· Version 1.7.10: Aufgrund technischer Einschränkungen älterer Versionen der Spiel-Engine unterstützt die Mod-Version für Minecraft 1.7.10 das System grafischer Toast-Benachrichtigungen nicht. Stattdessen wird der Kopierfortschritt direkt über dem Spielbildschirm als einfaches Text-Overlay angezeigt.
· Kontrolle der Arbeitsspeicherzuweisung: Der Vorgang der asynchronen Komprimierung erfordert die Zuweisung von Speicherpuffern in der JVM. Wird auf einem Server mit begrenztem RAM (zum Beispiel 2-4 GB) ein zu großer Wert für den Parameter config.advancedbackups.buffer (mehr als 10-20 MB) und eine hohe Komprimierungsstufe config.advancedbackups.zips.compression (Stufe 8-9) festgelegt, kann dies einen Überlauf des Heaps (JVM Heap) und einen Absturz des Servers mit dem Fehler OutOfMemoryError auslösen. Für einen stabilen Betrieb auf Servern mit begrenzten Ressourcen wird empfohlen, die Standard-Puffergröße von 1 MB und eine Komprimierungsstufe von höchstens 4 beizubehalten.
Fazit
Advanced Backups ist eine umfassende Werkzeuglösung zur Sicherung von Spielwelten in Minecraft Java Edition. Im Gegensatz zu einfachen Alternativen wie Simple Backups oder den Vanilla-Werkzeugen ermöglicht diese Mod den Aufbau einer vollwertigen Backup-Strategie mit minimalem Verbrauch an Speicherplatz dank der Nutzung inkrementeller Ketten. Die wesentliche Einschränkung der Modifikation ist das Fehlen integrierter Cloud-Anbieter zum automatischen Hochladen der Archive in externe Speicher (zum Beispiel Google Drive oder FTP-Server direkt aus der Mod), was die Einrichtung externer Skripte zur Synchronisierung des Ordners ./backups erfordert. Die Modifikation wird zur Installation auf öffentlichen und privaten Servern mittlerer Größe empfohlen, bei denen es entscheidend ist, den Schutz vor Datenverlust ohne Anhalten des Spielablaufs zu gewährleisten.
Installation
Eine typische Installation dauert etwa 5 Minuten. Der Ablauf ist gleich; nur Loader und der passende Build unterscheiden sich.
- 1Stop your Minecraft server.
- 2Drop the plugin .jar into the server /plugins folder.
- 3Start the server once so the plugin generates its config files.
- 4Edit /plugins/<name>/config.yml as needed, then run /reload confirm or restart.








