
Advanced Backups — Minecraft Java Edition 1.7.10 – 1.21.4
Riippuvuudet: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-versio: 1.7.10 - 1.21.4 · Modin versio: 3.7.1 Minecraft…
Riippuvuudet: · Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper · Minecraft-versio: 1.7.10 - 1.21.4 · Modin versio: 3.7.1 Minecraft Java Editionin vakiomuotoisessa varmuuskopiointimekanismissa on vakavia rajoituks
Riippuvuudet:
· Loader: Forge, NeoForge, Fabric, Quilt, Spigot, Paper
· Minecraft-versio: 1.7.10 - 1.21.4
· Modin versio: 3.7.1
Minecraft Java Editionin vakiomuotoisessa varmuuskopiointimekanismissa on vakavia rajoituksia. Vanilla-pelissä varmuuskopiot luodaan manuaalisesti valikon kautta tai ne edellyttävät palvelimen pysäyttämistä tiedostojen kopioimiseksi. Nämä toiminnot suoritetaan pelin pääsäikeessä, mikä johtaa pelin jäätymiseen, lagiin tai palvelimen tilapäiseen käyttökatkoon, kun gigatavuja dataa kirjoitetaan levylle. Lisäksi vakiomenetelmä luo vain täydellisiä kopioita maailmasta, mikä täyttää aseman nopeasti monistuneella datalla. Advanced Backups -modifikaatio ratkaisee nämä ongelmat tarjoamalla asynkronisen, ajastetun varmuuskopioinnin, joka tukee differentiaalisia ja inkrementaalisia pakkausmalleja, vanhentuneiden arkistojen joustavaa poistoa sekä sisäänrakennettua työkalua tietojen palauttamiseen.
Varmuuskopiointimekanismit: Zip, Differential ja Incremental
Työkalu tarjoaa kolme maailmatiedostojen käsittelytilaa, jotka määrittävät tasapainon suoritusnopeuden, käytetyn levytilan määrän ja palautuksen luotettavuuden välillä:
· Zip (täydelliset kopiot): Toimintaperiaate koostuu koko maailmakansion arkistoinnista yhdeksi .zip-tiedostoksi. Tämä tapa on eniten resursseja vaativa ja vaatii eniten vapaata tilaa asemalla, koska jokainen varmuuskopio sisältää kaikki tiedostot riippumatta siitä, onko niitä muutettu. Sen etuna on palautuksen yksinkertaisuus — riittää, että vain purat tarvittavan tiedoston.
· Differential (differentiaalinen kopiointi): Perustuu yhden täydellisen perusarkiston ("full") ja sitä seuraavien osittaisten arkistojen ("partial") luomiseen. Osittaiset arkistot tallentavat vain ne tiedostot, jotka ovat muuttuneet täydellisen perusarkiston luomishetkestä lähtien. Välivarmuuskopioiden koko pienenee merkittävästi. Maailman tilan palauttamiseen tiettyyn ajankohtaan tarvitaan vain kaksi tiedostoa: täydellinen perusarkisto ja viimeisin osittainen arkisto ennen kyseistä päivämäärää.
· Incremental (inkrementaalinen kopiointi): Käyttää myös täydellisten ja osittaisten arkistojen käsitettä. Jokainen osittainen arkisto sisältää kuitenkin vain ne muutokset, jotka ovat tapahtuneet edellisen osittaisen arkiston luomishetkestä lähtien. Tämä minimoi levyn alijärjestelmän kuormituksen ja säästää eniten vapaata tilaa. Haittapuolena on kohonnut tietojen menetyksen riski: jos edes yksi tiedosto inkrementaalisten kopioiden ketjussa vaurioituu, seuraavien kopioiden palauttaminen on mahdotonta, kunnes luodaan uusi täydellinen varmuuskopio. Palautusprosessi on myös hitain, koska se vaatii koko tiedostoketjun peräkkäisen yhdistämisen.
Uusien ketjujen luomista säätelevät parametrit config.advancedbackups.chains.length ja config.advancedbackups.chains.maxpercent. Ensimmäinen parametri määrittää ketjun osittaisten kopioiden enimmäismäärän ennen kuin uusi täydellinen arkisto luodaan pakotetusti. Toinen parametri suorittaa kokotarkistuksen: jos osittaiseen arkistoon kertyneiden muutosten määrä ylittää määritetyn prosenttiosuuden täydellisen arkiston koosta, järjestelmä nollaa ketjun automaattisesti ja luo uuden täydellisen varmuuskopion.
Automaattinen poistojärjestelmä (Purging) ja ketjujen käsittely
Levyn täyttymisen estämiseksi modifikaatioon on toteutettu kolme kriteeriä vanhentuneiden tietojen automaattiseen poistamiseen:
· Säilytyspäivien lukumäärän mukaan (config.advancedbackups.purge.days).
· Varmuuskopiokansion kokonaiskoon mukaan gigatavuina (config.advancedbackups.purge.size).
· Kopiotiedostojen kokonaismäärän mukaan (config.advancedbackups.purge.count).
Differentiaalisia tai inkrementaalisia kopioita käytettäessä yksittäisten tiedostojen poistaminen ketjusta on mahdotonta, koska se rikkoisi tietojen eheyden. Modi käsittelee kokonaisia ketjuja (chains). Ketju katsotaan vanhentuneeksi ja poistetaan vain silloin, kun kaikki sen osat (mukaan lukien täydellinen perusvarmuuskopio ja kaikki siihen liittyvät osittaiset arkistot) täyttävät poistokriteerit. Parametrilla config.advancedbackups.purge.incrementalchains voidaan asettaa täydellisten ketjujen vähimmäismäärä, jonka järjestelmä on velvollinen säilyttämään muista poistorajoituksista riippumatta. Käyttäjä voi myös luoda "tilannekuvia" (snapshots) — nämä ovat maailman staattisia kopioita, jotka on suojattu automaattiselta poistolta.
Määritystiedoston AdvancedBackups.properties asetukset
Varmuuskopiointijärjestelmän toimintaparametrit tallennetaan tiedostoon AdvancedBackups.properties, joka luodaan hakemistoon config ensimmäisen käynnistyksen yhteydessä. Tärkeimmät määritysavaimet:
Parametri | Oletusarvo | Kuvaus |
| true | Mahdollistaa automaattisen varmuuskopioiden luonnin täydellisen käyttöönoton (true) tai poiston käytöstä (false). |
| true | Määrittää, onko maailma tallennettava pakotetusti levylle ennen kopioinnin suorittamista. |
| true | Poistaa käytöstä vakioautomaattitallennuksen kopion luonnin aikana ja ottaa sen uudelleen käyttöön prosessin valmistuttua. |
| 1048576 | I/O-puskurin koko tavuina. Käyttömuistin rajan ylittävä arvo voi aiheuttaa OutOfMemoryError-kaatumisen. |
| false | Levyn kirjoitusvälimuistin pakotettu tyhjennys. Ei käytössä Minecraft-versioissa, jotka ovat vanhempia kuin 1.16. |
| true | Pelaajien aktiivisuuden tarkistus. Jos palvelimella ei ole ollut pelaajia edellisen varmuuskopion jälkeen, kopion luonti ohitetaan. |
| differential | Varmuuskopioiden tyyppi. Mahdolliset arvot: zip (täydelliset kopiot), differential (differentiaalinen kopiointi), incremental (inkrementaalinen kopiointi). |
| session.lock,*_old | Pilkulla erotettu poikkeusluettelo maailmakansion tiedostoista, joita ei lisätä arkistoon (maskit kuten * ovat sallittuja). |
| ./backups | Polku hakemistoon, johon valmiit varmuuskopiot tallennetaan (suhteellinen tai absoluuttinen). |
| 0.25 | Varmuuskopioiden välinen sallittu vähimmäisaikaväli tunteina. Estää kopioiden kahdentumisen. 0 — poissa käytöstä. |
| 24.0 | Enimmäisaikaväli tunteina, jonka jälkeen varmuuskopio suoritetaan pakotetusti, jos muita onnistuneita kopioita ei ole ollut. |
| true | Ajastimen perusta: palvelimen käyttöajan laskenta (true) tai käyttöjärjestelmän todellinen astronominen aika (false). |
| 1:00 | Luettelo kopioiden luonnin aikaväleistä (esimerkiksi 1:00 tunneittain tehtävälle varmuuskopiolle tai tarkka todellinen aika 04:00,16:00). |
| false | Maailman varmuuskopion pakotettu luonti palvelimen pysäytyksen tai sammutuksen aikana. Noudattaa rajaa frequency.min. |
| false | Maailman varmuuskopion luonti palvelimen käynnistyksen aikana. Noudattaa rajaa frequency.min. |
| 30 | Käynnistysvarmuuskopion käynnistämisen viive sekunteina palvelimen päälle kytkemisen jälkeen. Vähimmäisarvo on 5 sekuntia. |
| ops | Pelin sisäisten arkistointiprosessia koskevien toasts-ilmoitusten vastaanottajaluokka (ops — operaattorit, all — kaikki, none — ei kukaan). |
| 500 | Edistymispakettien lähetystiheys pelaajille millisekunteina. Pienemmät arvot lisäävät verkkokuormaa. |
| true | Lupa tulostaa yksityiskohtainen prosenttipohjainen arkistoinnin edistyminen palvelimen järjestelmäkonsoliin. |
| 5000 | Varmuuskopioinnin etenemisen kirjaamisen aikaväli konsoliin millisekunteina. |
| 50.0 | Kopiokansion kokonaiskoon raja gigatavuina. Vanhimmat kopiot poistetaan rajan ylittyessä. 0 — poissa käytöstä. |
| 0 | Varmuuskopioiden säilytysaika päivinä. Vanhemmat poistetaan. 0 — poissa käytöstä. |
| 0 | Levyllä sallittu kopioiden enimmäismäärä. Vanhemmat poistetaan. 0 — poissa käytöstä. |
| true | Lupa poistaa inkrementaalisia ketjuja koon mukaan tehtävän poiston yhteydessä. Jos false, inkrementaalisia kopioita ei koskaan poisteta. |
| 1 | Inkrementaalisten ketjujen vähimmäismäärä, joka poiston on jätettävä levylle kaikissa olosuhteissa. |
| 4 | ZIP-arkistojen pakkaustaso (1–9). Suuremmat arvot säästävät tilaa, mutta kuormittavat suoritinta. |
| 50 | Osittaisten varmuuskopioiden (differentiaalisten/inkrementaalisten) enimmäismäärä ennen uuden täydellisen arkiston luomista. |
| true | Lupa pakata ketjujen sisällä olevat täydelliset peruskopiot ja niitä seuraavat välikopiot. |
| true | Älykäs ketjun nollaus. Jos kaikki maailmatiedostot on muutettu, kopiosta tulee automaattisesti täydellinen. |
| 50.0 | Osittaisen varmuuskopion kokoraja prosentteina täydellisestä. Jos se ylittyy, luodaan täydellinen varmuuskopio. |
Varmuuskopioinnin hallintakomennot
Modifikaatiota hallitaan konsolikomennoilla, jotka edellyttävät operaattorin käyttöoikeustasoa (komentojen valinnat päivitettiin versiossa 3.7 paremman command blocks -yhteensopivuuden vuoksi laskemalla vaadittu käyttöoikeustaso arvoon 2):
· /backup start — käynnistää varmuuskopiointiprosessin asynkronisessa tilassa. Komento ottaa huomioon kaikki aikataulun, vähimmäisaikavälien ja pelaajien aktiivisuuden asetukset.
· /backup force — käynnistää kopiointiprosessin pakotetusti jättäen huomiotta pelaajien aktiivisuuden tarkistukset ja aikarajat frequency.min.
· /backup snapshot <name> — luo täydellisen varmuuskopion (tilannekuvan) annetulla nimellä alikansioon snapshots. Tätä arkistoa ei oteta huomioon vanhentuneiden varmuuskopioiden automaattisessa poistossa, eikä järjestelmä koskaan poista sitä automaattisesti.
· /backup reload-config — lataa parametrit uudelleen tiedostosta AdvancedBackups.properties ilman, että palvelinta tai peliasiakasta tarvitsee käynnistää uudelleen. Modin versioissa ennen 2.2:ta tähän käytetään vaihtoehtoista komentoa /advancedbackups reload.
· /backup check — analysoi ajastimen nykyisen tilan ja tulostaa tietoa siitä, kuinka paljon aikaa on jäljellä seuraavaan aikataulun mukaiseen varmuuskopioon.
· /backup reset — nollaa nykyisen inkrementaalisten tai differentiaalisten kopioiden ketjun laskurin. Seuraava aikataulutettu tai manuaalisesti käynnistetty varmuuskopio luodaan pakotetusti täydellisenä arkistona ("full").
Komentojen käyttöoikeustason laskeminen arvoon 2 mahdollistaa kopioiden luonnin automatisoinnin Command Blocks -lohkojen ja kolmannen osapuolen ajastinliitännäisten avulla, jotka kutsuvat konsolikomentoja palvelimen puolesta.
Konsolipalautustyökalu (Command Line Restoration)
Koska differentiaaliset ja inkrementaaliset varmuuskopiot koostuvat suuresta määrästä toisiinsa kytkeytyneitä muutostiedostoja, niiden manuaalinen palauttaminen on monimutkainen prosessi. Tämän tehtävän ratkaisemiseksi modifikaation JAR-tiedostoon on sisäänrakennettu erityinen konsolityökalu.
Kopioita ensimmäistä kertaa luotaessa modifikaatio luo automaattisesti apuskriptejä varmuuskopiohakemistoon:
· restore-bootstrap.bat Windows-käyttöjärjestelmälle.
· restore-bootstrap.sh Linux- ja macOS-käyttöjärjestelmille.
Nämä skriptit käynnistävät JAR-tiedostoon sisäänrakennetun palautusvelhon. Palautuskäyttöliittymän käynnistämiseen manuaalisesti päätteen kautta käytetään komentoa:
|
(JAR-tiedoston nimen on vastattava tarkasti asennetun modin versiota).
Työkalun konsolikäyttöliittymä toimii vuorovaikutteisessa tilassa:
1. Varmuuskopiokansion skannauksen käynnistäminen käytettävissä olevien ketjujen ja tilannekuvien analysoimiseksi.
2. Käytettävissä olevien palautuspisteiden luettelon näyttäminen päivämäärän, kellonajan ja kopion tyypin (Full, Diff, Inc) kanssa.
3. Valitun arkiston ketjun eheyden tarkistus. Jos kyseessä on inkrementaalinen kopio, työkalu tarkistaa automaattisesti, ovatko kaikki välivaiheet täydellisestä perusvarmuuskopiosta valittuun pisteeseen saakka läsnä.
4. Purkamisen kohdekansion pyytäminen. Työkalu suorittaa tiedostojen peräkkäisen yhdistämisen ja korvaamisen rekonstruoiden maailman tarkan tilan valitun kopion luontihetkellä.
Ennen palautuksen aloittamista Minecraft-palvelin on pysäytettävä kokonaan. Tiedostojen palautusyritys käynnissä olevalla palvelimella johtaa maailman tietokannan ja aluetiedostojen (.mca) vahingoittumiseen.
Toiminnan erityispiirteet eri alustoilla ja optimointi
Modifikaatiolla on arkkitehtonisia eroja valitusta asennusalustasta riippuen:
· Asiakaspuolen toasts-ilmoitukset: Varmuuskopion luonnin alkamista ja valmistumista koskevat visuaaliset ponnahdusilmoitukset on toteutettu vanilla-toasts-järjestelmän kautta. Niiden näyttämiseksi asiakaspuolella on asennettava yhteensopiva modi (Forge, NeoForge tai Fabric). Käytettäessä modia Spigot- tai Paper-palvelimilla asiakkaat, joille modia ei ole asennettu, eivät näe visuaalisia ilmoituksia, vaan saavat vain tavallisia tekstiviestejä chattiin, jos lokiasetukset sen sallivat.
· Versio 1.7.10: Pelimoottorin vanhojen versioiden teknisten rajoitusten vuoksi Minecraft 1.7.10:lle tarkoitettu modin versio ei tue graafista toasts-ilmoitusjärjestelmää. Sen sijaan kopioinnin edistyminen näytetään suoraan pelinäytön päällä yksinkertaisena tekstipeitteenä.
· Käyttömuistin varauksen hallinta: Asynkroninen pakkausoperaatio edellyttää muistipuskureiden varaamista JVM:ssä. Jos palvelimella, jolla on rajallinen määrä RAM-muistia (esimerkiksi 2–4 GB), asettaa liian suuren arvon parametrille config.advancedbackups.buffer (yli 10–20 MB) ja korkean pakkaustason config.advancedbackups.zips.compression (taso 8–9), tämä voi aiheuttaa kasan (JVM Heap) ylivuodon ja palvelimen hätäsammutuksen virheellä OutOfMemoryError. Vakaata toimintaa varten palvelimilla, joilla on rajalliset resurssit, suositellaan säilyttämään vakiopuskurin koko 1 MB ja enintään tasoa 4 oleva pakkaustaso.
Yhteenveto
Advanced Backups on kattava työkaluratkaisu pelimaailmojen säilymisen varmistamiseen Minecraft Java Editionissa. Toisin kuin yksinkertaiset vaihtoehdot, kuten Simple Backups tai vanilla-työkalut, tämä modi mahdollistaa täysimittaisen varmuuskopiointistrategian käyttöönoton minimaalisin levytilakustannuksin inkrementaalisten ketjujen ansiosta. Modifikaation tärkein rajoitus on sisäänrakennettujen pilvipalveluntarjoajien puuttuminen arkistojen automaattiseen lataamiseen ulkoiseen tallennustilaan (esimerkiksi Google Driveen tai FTP-palvelimille suoraan modista), mikä edellyttää ulkoisten skriptien määrittämistä kansion ./backups synkronointia varten. Modifikaatiota suositellaan asennettavaksi keskikokoisille julkisille ja yksityisille palvelimille, joilla on kriittisen tärkeää varmistaa suojaus tietojen menetykseltä ilman pelin keskeyttämistä.
Asennus
Tyypillinen asennus vie noin 5 minuuttia. Kulku on sama; vain Loader ja sopiva build vaihtuvat.
- 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.








