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.
Cuvinte pe care le vei întâlni
| Cuvânt | Ce înseamnă |
|---|---|
| Mentenanță | Oprire planificată a serverului pentru lucrări. |
| Fereastră de mentenanță | Intervalul anunțat, de exemplu 08:00–09:00. |
| Rollback | Revenirea la starea de dinainte, din backup. |
| Plan de revenire | Paș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:
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 rollbackPartea 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.
/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ă
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 start.shApoi, în ordine:
- Procesele și porturile, ca în lecția de monitorizare.
syserrdindbși din core-uri: erori noi?- În joc, cu contul de GM: login, fiecare canal, personajul tău are tot.
- Ce ai schimbat: itemul nou, dropul nou, questul nou.
- 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:
- Oprești jocul (
close.sh, verifici procesele). - Pui înapoi fișierele vechi din backup.
- 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.
- 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ă.
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 live | Descoperi erorile cu jucătorii așteptând |
| Faci backup înainte de oprire | Backupul 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 problema | Rollback-ul ar șterge progresul jucătorilor |
| Schimbi lucruri care nu erau în plan | Nu 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ă.