Înapoi la blogToate tutorialele Metin2
Tutoriale Metin2 · Lecția 75 din 99

Cum pregătești o mentenanță pe serverul Metin2, fără pierderi de date

2 noiembrie 2026 6 min de citit

Mentenanța e momentul în care oprești serverul ca să aplici un update, să repari ceva sau să faci curat. Pentru jucători e o pauză; pentru tine e momentul cu cel mai mare risc din săptămână. O mentenanță bună nu se vede: serverul se oprește la ora anunțată, revine la ora anunțată și nimeni nu pierde nimic. Asta nu e noroc, e plan. În această lecție îți faci acel plan.

Pe scurt: testezi update-ul pe serverul de test, scrii un plan cu ore și pași, anunți jucătorii, oprești corect, faci backup, aplici, verifici. Hotărăști dinainte până la ce oră încerci să repari, după care revii la backup.

Cuvinte pe care le vei întâlni

CuvântCe înseamnă
MentenanțăOprire planificată a serverului pentru lucrări.
Fereastră de mentenanțăIntervalul anunțat, de exemplu 08:00–09:00.
RollbackRevenirea la starea de dinainte, din backup.
Plan de revenirePașii scriși dinainte pentru rollback, ca să nu improvizezi sub stres.

Regula de aur: nimic nou pe live fără test

Mentenanța nu e momentul în care încerci ceva pentru prima dată. Update-ul trebuie să fi mers deja pe serverul de test, cu aceleași fișiere pe care le vei pune pe live. În mentenanță doar repeți ce ai făcut deja.

Pasul 1: Scrie planul (cu o zi înainte)

Un plan simplu, într-un fișier text, arată așa:

text
MENTENANTA 2026-11-05, 08:00-09:00
Ce facem: update drop boss + item nou 95000 (testat pe test pe 2026-11-03)
Fisiere: share/conf/item_proto.txt, share/conf/item_names.txt, share/locale/.../mob_drop_item.txt
Client: patch nou in autopatcher (versiunea 1.4.2)

07:30  anunt final pe Discord
07:50  /notice in joc: restart in 10 minute
08:00  close.sh, verific ca s-au oprit toate procesele
08:05  backup baza de date + fisiere, verific marimea
08:15  copiez fisierele noi
08:20  start.sh, verific procese si porturi
08:25  test in joc (lista de mai jos)
08:40  deschid serverul / anunt
LIMITA: daca la 08:45 nu merge, fac rollback

Partea cea mai importantă e ultimul rând. Când lucrurile merg prost, tentația e să mai încerci „încă cinci minute”, iar o oră mai târziu ești tot acolo. Limita o stabilești acum, cu capul limpede.

Pasul 2: Anunță jucătorii

  • Cu o zi înainte, pe Discord și pe site: data, ora, cât durează, ce aduce.
  • Cu 10 minute înainte, în joc. În pachetul verificat, comanda GM pentru anunț pe tot serverul e /notice mesaj (există și /big_notice). La tine pot diferi.
text
/notice Restart pentru update in 10 minute. Iesiti din dungeon si nu faceti trade.

Cere-le jucătorilor să nu fie în dungeon, în trade sau la upgrade în ultimul minut. Așa reduci reclamațiile de felul „am pierdut itemul fix la restart”.

Pasul 3: Oprește corect și verifică

sh
cd /usr/metin2
sh close.sh
ps auxww | grep -E "[.]/(game|db|auth)"

Calea e cea din pachetul verificat; folosește calea ta. Ultima comandă trebuie să nu mai afișeze nimic.

De ce contează: procesul db ține datele jucătorilor în memorie și le scrie în MySQL doar la intervale. La o oprire corectă, scrie tot înainte să se închidă. În pachetul verificat, close.sh oprește db ultimul și așteaptă doar 2 secunde. Pe un server cu mulți jucători, db poate avea nevoie de mai mult. Nu treci la backup până nu a dispărut procesul db din listă. Detalii în lecția despre restart.

Dacă vrei o confirmare în plus, ultimele rânduri din db/syslog arată că db și-a golit memoria (în pachetul verificat apare un mesaj de forma MainLoop exited, Starting cache flushing).

Pasul 4: Fă backup chiar acum

Jocul e oprit, nimeni nu schimbă date: e cel mai curat backup posibil. Fă-l exact ca în lecția de backup: baza de date cu mysqldump și fișierele cu tar. Pune data și ora în nume. Verifică mărimea fișierelor.

Fără backup verificat, nu treci mai departe. Acesta e plasa ta de siguranță pentru tot ce urmează.

Pasul 5: Aplică schimbarea

Copiezi fișierele testate, în ordinea din plan. O regulă: doar ce e în plan. Mentenanța nu e momentul pentru „și dacă tot sunt aici, schimb și dropul de la Metin-ul de pe Munte”. Fiecare schimbare în plus e un motiv în plus să nu știi ce a stricat serverul.

Dacă ai și update de client, publică-l acum în autopatcher (vezi update de client cu autopatcher).

Pasul 6: Pornește și verifică

sh
sh start.sh

Apoi, în ordine:

  1. Procesele și porturile, ca în lecția de monitorizare.
  2. syserr din db și din core-uri: erori noi?
  3. În joc, cu contul de GM: login, fiecare canal, personajul tău are tot.
  4. Ce ai schimbat: itemul nou, dropul nou, questul nou.
  5. Trade, depozit, inventar (vezi testele după update).

Abia după asta anunți că serverul e deschis.

Pasul 7: Dacă ceva nu merge, aplici planul de revenire

Ai ajuns la ora limită și problema nu e rezolvată? Nu negocia cu tine. Faci rollback:

  1. Oprești jocul (close.sh, verifici procesele).
  2. Pui înapoi fișierele vechi din backup.
  3. Doar dacă update-ul a modificat baza de date, restaurezi și baza din backupul făcut la Pasul 4. Pentru că jocul a fost oprit între backup și restaurare, nu se pierde nimic jucat.
  4. Pornești, verifici, anunți: „Update-ul a fost amânat, serverul e deschis”.

Ai exersat restaurarea în lecția despre restaurare, deci știi cât durează.

Atenție: dacă ai deschis deja serverul și jucătorii au jucat o oră, o restaurare a bazei de date le șterge acea oră. Decizia de rollback se ia înainte de deschidere, nu după.

Pasul 8: Închide mentenanța pe hârtie

Notează în jurnalul de modificări ce s-a făcut, la ce oră, ce probleme au apărut. Pentru jucători, publică un changelog scurt și clar (vezi anunțuri de update și changelog).

Greșeli des întâlnite

GreșealăCe se întâmplă
Testezi pentru prima dată pe liveDescoperi erorile cu jucătorii așteptând
Faci backup înainte de oprireBackupul nu conține ultimele salvări din memoria db
Nu ai oră limităMentenanța de o oră devine de patru ore
Deschizi serverul, apoi descoperi problemaRollback-ul ar șterge progresul jucătorilor
Schimbi lucruri care nu erau în planNu mai știi ce a cauzat problema

Întrebări frecvente

Care e cea mai bună oră pentru mentenanță?

Ora cu cei mai puțini jucători online, de obicei dimineața devreme. Uită-te în statisticile serverului tău, nu ghici.

Pot face update fără să opresc serverul?

Pentru un quest, adesea da (cu /reload q, testat întâi pe test). Pentru item_proto, binare noi sau baza de date, e nevoie de oprire. În pachetul verificat, item_proto.txt e citit de db la pornire.

Cât de des fac mentenanță?

Cât mai rar, cu mai multe schimbări testate strânse la un loc. Mai bine o mentenanță pe săptămână, bine pregătită, decât trei improvizate.

Ce urmează

Lecția următoare: cum testezi trade, depozit și inventar după update. Toate lecțiile sunt în lista tutorialelor Metin2.

Server Metin2 gata de joc

Găzduire Metin2 în România, cu instalare de serverfiles, bază de date MySQL și protecție Anti-DDoS inclusă.

DiscordWhatsApp