
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Afhankelijkheden: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-versie: 1.7.10 - 1.21.4 · Mod-versie: 3.7.1 Het…
Afhankelijkheden: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-versie: 1.7.10 - 1.21.4 · Mod-versie: 3.7.1 Het standaard back-upmechanisme in Minecraft Java Edition heeft ernstige beperkingen. In
Afhankelijkheden:
· Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Minecraft-versie: 1.7.10 - 1.21.4
· Mod-versie: 3.7.1
Het standaard back-upmechanisme in Minecraft Java Edition heeft ernstige beperkingen. In het vanilla-spel worden back-ups handmatig gemaakt via het menu, of moet de server worden gestopt om de bestanden te kopiëren. Deze bewerkingen worden uitgevoerd in de hoofdthread van het spel, wat leidt tot bevriezingen van de gameplay, lag of tijdelijke onbeschikbaarheid van de server terwijl er gigabytes aan gegevens naar de schijf worden weggeschreven. Bovendien maakt de standaardmethode alleen volledige kopieën van de wereld, waardoor de schijf snel volloopt met gedupliceerde gegevens. De modificatie Advanced Backups lost deze problemen op door asynchrone, geplande back-ups aan te bieden met ondersteuning voor differentiële en incrementele compressiemodellen, flexibel opschonen van verouderde archieven en een ingebouwd hulpprogramma voor het herstellen van gegevens.
Back-upmechanismen: Zip, Differential en Incremental
Het hulpprogramma biedt drie modi voor het verwerken van wereldbestanden, die de balans bepalen tussen uitvoeringssnelheid, de hoeveelheid gebruikte schijfruimte en de betrouwbaarheid van het herstel:
· Zip (volledige kopieën): Het werkingsprincipe bestaat uit het archiveren van de volledige wereldmap in één .zip-bestand. Deze methode is het meest resource-intensief en vereist de meeste vrije ruimte op de schijf, omdat elke back-up alle bestanden bevat, ongeacht of ze gewijzigd zijn. Het voordeel is het gemak van herstel — je hoeft alleen het gewenste bestand uit te pakken.
· Differential (differentiële kopie): Gebaseerd op het maken van één volledig basisarchief ("full") en daaropvolgende gedeeltelijke archieven ("partial"). De gedeeltelijke archieven registreren alleen die bestanden die zijn gewijzigd sinds het maken van het volledige basisarchief. De omvang van de tussenliggende back-ups wordt aanzienlijk verkleind. Om de staat van de wereld op een bepaald moment te herstellen, zijn er slechts twee bestanden nodig: het volledige basisarchief en het laatste gedeeltelijke archief vóór die datum.
· Incremental (incrementele kopie): Maakt eveneens gebruik van het concept van volledige en gedeeltelijke archieven. Elk gedeeltelijk archief bevat echter alleen de wijzigingen die hebben plaatsgevonden sinds het maken van het vorige gedeeltelijke archief. Dit minimaliseert de belasting van het schijfsubsysteem en bespaart de maximale hoeveelheid vrije ruimte. Het nadeel is een verhoogd risico op gegevensverlies: als zelfs maar één bestand in de keten van incrementele kopieën beschadigd raakt, is het herstellen van de daaropvolgende kopieën onmogelijk totdat er een nieuwe volledige back-up wordt gemaakt. Het herstelproces is ook het traagst, omdat het een sequentiële samenvoeging van de hele keten van bestanden vereist.
Het maken van nieuwe ketens wordt geregeld door de parameters config.advancedbackups.chains.length en config.advancedbackups.chains.maxpercent. De eerste parameter bepaalt het maximale aantal gedeeltelijke kopieën in een keten voordat er gedwongen een nieuw volledig archief wordt gemaakt. De tweede parameter voert een groottecontrole uit: als de omvang van de opgehoopte wijzigingen in een gedeeltelijk archief het ingestelde percentage van de grootte van het volledige archief overschrijdt, reset het systeem de keten automatisch en maakt het een nieuwe volledige back-up.
Het systeem voor automatisch opschonen (Purging) en het werken met ketens
Om te voorkomen dat de schijf volloopt, zijn er in de modificatie drie criteria geïmplementeerd voor het automatisch verwijderen van verouderde gegevens:
· Op basis van het aantal bewaardagen (config.advancedbackups.purge.days).
· Op basis van de totale omvang van de back-upmap in gigabytes (config.advancedbackups.purge.size).
· Op basis van het totale aantal kopiebestanden (config.advancedbackups.purge.count).
Bij het gebruik van differentiële of incrementele kopieën is het verwijderen van afzonderlijke bestanden uit een keten onmogelijk, omdat dit de integriteit van de gegevens zou schenden. De mod werkt met volledige ketens (chains). Een keten wordt als verouderd beschouwd en alleen verwijderd wanneer alle componenten ervan (inclusief de volledige basis-back-up en alle bijbehorende gedeeltelijke archieven) aan de opschooncriteria voldoen. Met de parameter config.advancedbackups.purge.incrementalchains kunt u het minimumaantal volledige ketens instellen dat het systeem verplicht is te bewaren, ongeacht andere opschoonbeperkingen. Daarnaast kan de gebruiker "snapshots" maken — dit zijn statische kopieën van de wereld die beschermd zijn tegen automatische verwijdering.
Het configuratiebestand AdvancedBackups.properties instellen
De werkingsparameters van het back-upsysteem worden opgeslagen in het bestand AdvancedBackups.properties, dat bij de eerste start wordt aangemaakt in de map config. De belangrijkste configuratiesleutels:
Parameter | Standaardwaarde | Beschrijving |
| true | Maakt het mogelijk om het automatisch maken van back-ups volledig in te schakelen (true) of uit te schakelen (false). |
| true | Bepaalt of de wereld gedwongen naar de schijf moet worden opgeslagen voordat het kopiëren wordt uitgevoerd. |
| true | Schakelt het standaard automatisch opslaan uit tijdens het maken van een kopie en schakelt het na afloop van het proces weer in. |
| 1048576 | De grootte van de I/O-buffer in bytes. Een waarde boven de RAM-limiet kan een OutOfMemoryError-crash veroorzaken. |
| false | Gedwongen leegmaken van de schrijfcache van de schijf. Wordt niet gebruikt in Minecraft-versies eerder dan 1.16. |
| true | Controle van de spelersactiviteit. Als er sinds de laatste back-up geen spelers op de server zijn geweest, wordt het maken van een kopie overgeslagen. |
| differential | Het type back-up. Mogelijke waarden: zip (volledige kopieën), differential (differentiële kopie), incremental (incrementele kopie). |
| session.lock,*_old | Een door komma's gescheiden uitsluitingslijst voor bestanden in de wereldmap die niet aan het archief worden toegevoegd (maskers zoals * zijn toegestaan). |
| ./backups | Het pad naar de map waar de voltooide back-ups worden opgeslagen (relatief of absoluut). |
| 0.25 | Het minimaal toegestane interval tussen back-ups in uren. Voorkomt duplicatie. 0 — uitgeschakeld. |
| 24.0 | Het maximale interval in uren, waarna een back-up gedwongen wordt uitgevoerd als er geen andere geslaagde kopieën zijn geweest. |
| true | De basis van de planner: berekening van de uptime van de server (true) of de werkelijke astronomische OS-tijd (false). |
| 1:00 | Een lijst met intervallen voor het maken van kopieën (bijvoorbeeld 1:00 voor een back-up per uur of de exacte werkelijke tijd 04:00,16:00). |
| false | Gedwongen het maken van een back-up van de wereld tijdens het stoppen of afsluiten van de server. Respecteert de limiet frequency.min. |
| false | Het maken van een back-up van de wereld tijdens het opstarten van de server. Respecteert de limiet frequency.min. |
| 30 | De vertraging in seconden voor het starten van de opstart-back-up nadat de server is ingeschakeld. De minimumwaarde is 5 seconden. |
| ops | De categorie ontvangers van toasts-meldingen over het archiveringsproces in het spel (ops — operators, all — iedereen, none — niemand). |
| 500 | De frequentie van het verzenden van voortgangspakketten naar spelers in milliseconden. Lagere waarden verhogen de netwerkbelasting. |
| true | Toestemming om de gedetailleerde procentuele archiveringsvoortgang naar de systeemconsole van de server uit te voeren. |
| 5000 | Het interval voor het loggen van de voortgang van de back-up naar de console in milliseconden. |
| 50.0 | De limiet voor de totale omvang van de kopiemap in gigabytes. De oudste kopieën worden bij overschrijding verwijderd. 0 — uitgeschakeld. |
| 0 | De bewaartermijn voor back-ups in dagen. Oudere worden verwijderd. 0 — uitgeschakeld. |
| 0 | Het maximaal toegestane aantal kopieën op de schijf. Oudere worden verwijderd. 0 — uitgeschakeld. |
| true | Toestemming om incrementele ketens te verwijderen bij het opschonen op omvang. Indien false, worden incrementele kopieën nooit opgeschoond. |
| 1 | Het minimumaantal incrementele ketens dat het opschonen onder alle omstandigheden verplicht op de schijf moet laten staan. |
| 4 | Het compressieniveau van ZIP-archieven (van 1 tot 9). Hogere waarden besparen ruimte, maar belasten de CPU. |
| 50 | Het maximale aantal gedeeltelijke back-ups (differentieel/incrementeel) voordat er een nieuw volledig archief wordt gemaakt. |
| true | Toestemming om de volledige basiskopieën en daaropvolgende tussenliggende kopieën binnen de ketens te comprimeren. |
| true | Intelligente reset van de keten. Als alle wereldbestanden zijn gewijzigd, wordt de kopie automatisch een volledige kopie. |
| 50.0 | De groottelimiet van een gedeeltelijke back-up als percentage van de volledige. Bij overschrijding wordt er een volledige back-up gemaakt. |
Commando's voor het beheer van back-ups
De modificatie wordt beheerd met behulp van consolecommando's die operatortoegangsniveau vereisen (de commando-opties zijn in versie 3.7 bijgewerkt voor betere compatibiliteit met command blocks door de vereiste rechtenniveau te verlagen naar de waarde 2):
· /backup start — start het back-upproces in asynchrone modus. Het commando houdt rekening met alle instellingen voor het schema, de minimale intervallen en de spelersactiviteit.
· /backup force — start het kopieerproces gedwongen, waarbij de controles van de spelersactiviteit en de tijdslimieten frequency.min worden genegeerd.
· /backup snapshot <name> — maakt een volledige back-up (snapshot) onder de opgegeven naam in de submap snapshots. Dit archief wordt niet meegerekend tijdens het automatisch opschonen van verouderde back-ups en wordt nooit automatisch door het systeem verwijderd.
· /backup reload-config — herlaadt de parameters uit het bestand AdvancedBackups.properties zonder dat de server of de spelclient opnieuw hoeft te worden opgestart. In mod-versies vóór 2.2 wordt hiervoor het alternatieve commando /advancedbackups reload gebruikt.
· /backup check — analyseert de huidige status van de planner en geeft informatie weer over hoeveel tijd er resteert tot de volgende geplande back-up volgens het schema.
· /backup reset — reset de teller van de huidige keten van incrementele of differentiële kopieën. De volgende geplande of handmatig gestarte back-up wordt gedwongen gemaakt als een volledig archief ("full").
Het verlagen van het rechtenniveau voor commando's naar de waarde 2 maakt het mogelijk om het maken van kopieën te automatiseren met behulp van Command Blocks en planner-plugins van derden die consolecommando's namens de server aanroepen.
Consolehulpprogramma voor herstel (Command Line Restoration)
Aangezien differentiële en incrementele back-ups uit een groot aantal onderling verbonden wijzigingsbestanden bestaan, is het handmatig herstellen ervan een complex proces. Om deze taak op te lossen, is er een speciaal consolehulpprogramma ingebouwd in het JAR-bestand van de modificatie.
Bij het voor het eerst maken van kopieën genereert de modificatie automatisch hulpscripts in de map met back-ups:
· restore-bootstrap.bat voor het besturingssysteem Windows.
· restore-bootstrap.sh voor de besturingssystemen Linux en macOS.
Deze scripts starten de herstelwizard die in het JAR-bestand is ingebouwd. Om de herstelinterface handmatig via de terminal te starten, wordt het volgende commando gebruikt:
|
(de naam van het JAR-bestand moet exact overeenkomen met de versie van de geïnstalleerde mod).
De console-interface van het hulpprogramma werkt in interactieve modus:
1. Het starten van een scan van de back-upmap om de beschikbare ketens en snapshots te analyseren.
2. Het weergeven van een lijst met beschikbare herstelpunten met vermelding van de datum, tijd en het type kopie (Full, Diff, Inc).
3. Het controleren van de integriteit van de keten van het geselecteerde archief. Als het een incrementele kopie is, controleert het hulpprogramma automatisch of alle tussenliggende delen van de volledige basis-back-up tot aan het geselecteerde punt aanwezig zijn.
4. Het opvragen van de doelmap voor het uitpakken. Het hulpprogramma voert een sequentiële samenvoeging en vervanging van bestanden uit en reconstrueert de exacte staat van de wereld op het moment dat de geselecteerde kopie werd gemaakt.
Voordat het herstel begint, moet de Minecraft-server volledig worden gestopt. Een poging om bestanden op een draaiende server te herstellen, leidt tot beschadiging van de werelddatabase en de regiobestanden (.mca).
Bijzonderheden op verschillende platforms en optimalisatie
De modificatie heeft architecturale verschillen afhankelijk van het gekozen installatieplatform:
· Toasts-meldingen aan de clientzijde: Visuele pop-upmeldingen over het begin en de voltooiing van het maken van een back-up zijn geïmplementeerd via het vanilla-toasts-systeem. Om ze aan de clientzijde weer te geven, moet er een compatibele mod (Forge, NeoForge of Fabric) geïnstalleerd zijn. Bij het gebruik van de mod op Spigot- of Paper-servers zien clients zonder de geïnstalleerde mod geen visuele meldingen, maar ontvangen ze alleen gewone tekstberichten in de chat, als dit door de logginginstellingen is toegestaan.
· Versie 1.7.10: Vanwege de technische beperkingen van oudere versies van de game-engine ondersteunt de mod-versie voor Minecraft 1.7.10 het systeem van grafische toasts-meldingen niet. In plaats daarvan wordt de kopieervoortgang rechtstreeks over het spelscherm weergegeven in de vorm van een eenvoudige tekstoverlay.
· Beheer van de RAM-toewijzing: De asynchrone compressiebewerking vereist de toewijzing van geheugenbuffers in de JVM. Als je op een server met een beperkte hoeveelheid RAM (bijvoorbeeld 2-4 GB) een te grote waarde instelt voor de parameter config.advancedbackups.buffer (meer dan 10-20 MB) en een hoog compressieniveau config.advancedbackups.zips.compression (niveau 8-9), kan dit een JVM Heap-overloop en een noodafsluiting van de server met een OutOfMemoryError-fout veroorzaken. Voor een stabiele werking op servers met beperkte middelen wordt aanbevolen om de standaardbuffergrootte van 1 MB en een compressieniveau van niet hoger dan 4 aan te houden.
Conclusie
Advanced Backups is een uitgebreide hulpmiddeloplossing om het behoud van spelwerelden in Minecraft Java Edition te waarborgen. In tegenstelling tot eenvoudige alternatieven zoals Simple Backups of vanilla-hulpmiddelen, stelt deze mod je in staat een volwaardige back-upstrategie op te zetten met minimale kosten aan schijfruimte dankzij het gebruik van incrementele ketens. De belangrijkste beperking van de modificatie is het ontbreken van ingebouwde cloudproviders voor het automatisch uploaden van archieven naar externe opslag (bijvoorbeeld Google Drive of FTP-servers rechtstreeks vanuit de mod), wat het opzetten van externe scripts voor het synchroniseren van de map ./backups vereist. De modificatie wordt aanbevolen voor installatie op openbare en privéservers van middelgrote schaal, waar het cruciaal is om bescherming tegen gegevensverlies te waarborgen zonder de gameplay te onderbreken.
Installatie
Een typische installatie duurt ongeveer 5 minuten. De stappen zijn gelijk; alleen de loader en de bijbehorende build verschillen.
- 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.








