ORACLE PILLAR #1
Zašto Oracle sistemi padaju u produkciji (i kako to sprečiti)
Produkcioni pad nije incident. To je posledica dizajna.
ORACLE PILLAR #1
Produkcioni pad nije incident. To je posledica dizajna.
Većina Oracle sistema ne pada zato što je Oracle nepouzdan.
Padaju zato što sistem oko Oracle‑a nikada nije dizajniran da preživi vreme, pritisak ili proveru.
U produkciji, problemi se retko pojavljuju iznenada. Oni se akumuliraju.
Godinama sve deluje stabilno:
Onda se desi jedno od sledećeg:
I sistem kolabira.
Ne zato što je Oracle prestao da radi — nego zato što sistem nikada nije bio dizajniran da objasni sebe.
U realnim produkcionim okruženjima, Oracle retko jeste najslabija karika.
Pravi problemi su arhitektonski:
To nisu operativne greške. To su dizajnerske odluke — često rane, često neprimećene.
Timovi veruju da su “best practices” dovoljne. Konfigurišu RMAN. Uključe logovanje. Tune‑uju parametre. Dokumentuju procedure u Confluence‑u.
Ipak, kada nešto pođe po zlu, uvek se vraćaju ista pitanja:
U većini Oracle sistema, odgovori ne postoje.
Zato produkcioni pad nije slučajnost. To je neizbežan rezultat sistema koji Oracle tretiraju kao bazu, a ne kao system of record.
Kada se Oracle svede na storage:
Sistem možda radi — ali ne može da izdrži pritisak.
Ovo nije članak o tuning savetima, listama parametara ili Oracle feature‑ima.
Ovo objašnjava:
Ne dodavanjem alata. Ne zapošljavanjem više DBA‑eva. Već promenom načina na koji sistem tretira istoriju, odgovornost i dokaz.
Ako Oracle mora da preživi audit, migracije, promene timova i vreme — ovo je mesto gde realan posao počinje.
U većini Oracle produkcionih sistema, istorija se tretira kao promenljiva.
Ne namerno. Ne zlonamerno. Strukturalno.
Redovi se update‑uju. Vrednosti se prepisuju. Prethodna stanja nestaju.
Ovo je najčešći root cause kada sistemi padnu pod audit, recovery ili spor.
Tehnički, sistem radi: UPDATE prolazi, constraints su zadovoljeni, transakcije se commit‑uju, korisnici vide „tačne“ trenutne podatke.
Ali sistem je izgubio sposobnost da objasni sebe.
Ovo ostaje skriveno dok sistem ne bude ispitan:
Tada se očekuje da sistem odgovori:
U sistemima sa prepisivom istorijom, odgovori više ne postoje.
Problem nije SQL UPDATE kao takav. Problem je UPDATE bez kvalifikacije — prepisivanje poslovno značajnih podataka bez traga, bez namere, bez odgovornosti.
Logovi nisu istorija. Nisu autoritativni, mogu se rotirati, filtrirati ili izgubiti. I pravno su slabi.
Najvažnije: logovi nisu system of record. Kada se log i podaci ne slažu, nema ground truth‑a.
Vremenom, timovi prestaju da veruju starim podacima. Izveštaji se ručno „ispravljaju“. Objašnjenja zamenjuju dokaze.
Sistem radi — ali istina više ne živi u njemu.
Prepisiva istorija ne može retroaktivno da se popravi. Ne možeš rekonstruisati prošla stanja, dokazati nameru ili odgovornost.
Jednom kada je istorija izgubljena — izgubljena je zauvek.
Failure Pattern #1 nije bug. Nije pogrešna konfiguracija. Nije nedostatak DBA znanja.
To je posledica sistema koji Oracle tretiraju kao mutable storage umesto kao čuvara istine kroz vreme.
Većina Oracle sistema ponosno izveštava da backup uspeva. RMAN je zelen, schedule radi, dashboard „OK“.
Ipak, kada recovery stvarno zatreba — sistem pada.
Backup dokazuje samo jedno: podaci su kopirani. Ne dokazuje da se sistem može vratiti u konzistentno stanje, da su podaci pouzdani ili da poslovanje može da se nastavi.
Ovo se vidi tokom korupcije podataka, slučajnih brisanja, neuspelih deploy‑a, storage failure‑a, ransomware incidenta ili audit recovery testa.
„Ako RMAN restore prođe, sistem je OK.“ Ne.
Restore garantuje fajlove, control files, redo. Ne garantuje poslovnu istinu.
Posle restore‑a, prepisani redovi ostaju prepisani, obrisane činjenice ostaju obrisane, odobrenja i namera su izgubljeni.
„Smoke test“ potvrđuje da aplikacija radi, ne da je istorija ispravna ili da su finansije tačne.
Replikacija širi i pogrešnu istoriju. Availability nije isto što i correctness.
Ako sistem ne može da objasni šta se desilo, recovery vraća stanje — ne istinu.
Problem nisu backupi. Problem je što backup štiti podatke, a ne istinu.
Arhitektura, ne SQL recepti.
Ako možeš da rebuild‑uješ state iz facts, backup postaje zaštita. Ako ne — backup je kopija laži.
Performance tuning se radi pod pritiskom. Sistem uspori. SLA kasni. Neko mora da “popravi”.
Dodaje se indeks, menja se parametar, prepisuje query, povećava memory. Sistem postaje brži — i dugoročno krhkiji.
Svaka optimizacija menja ponašanje. Ali u većini sistema to je nedokumentovano i bez konteksta.
Zašto je ovaj indeks? Zašto ovaj parametar? Može li da se ukloni?
Odgovor: „Ne znam, to je rađeno tokom incidenta.“
Problem nije loš tuning. Problem je tuning bez odgovornosti.
Istorija počinje danas — i nikad se više ne gubi.
Migracije se planiraju kao tehnički projekti. Ali migracije su istorijski događaji, ne copy operacije.
„Aplikacija radi“ nije isto što i „sistem je sačuvao istinu“.
Biznis se dešava tokom migracije. Rolling back state ne vraća realni svet.
Migracije menjaju značenje i ponašanje. Ako se razlozi ne zabeleže — rizik raste zauvek.
Oracle radi tačno ono što mu kažeš. Ne čuva razloge. Ne čuva značenje.
Sistemi padaju audit ne zato što nisu compliant, već zato što compliance nikada nije bio deo dizajna.
Ko je odobrio? Kada je promenjeno? Može li da se verifikuje?
Logovi nisu autoritativni, nisu pravno čvrsti i ne žive u system of record‑u.
Compliance se ne dodaje. Compliance se dizajnira.
Ulazni proizvod — Expert Systems Services
Oracle System Diagnostic & Risk Assessment
€750 – €1,500 (fiksna cena)
Ne popravljamo sisteme koje nismo dijagnostikovali.
Ako želiš da znaš koji od ovih failure pattern‑a postoje u tvom sistemu, kreni od oracle system diagnostic.
Povezano: arhitektura koja nameće istinu