Kako se to NE radi i kako se to radi

Saturday, 04.04.2009 – msutic

Prije nekih tjedan dana sam imao za zadatak migrirati Oracle 9.2.0.6.0 (Solaris 64-bit) bazu na verziju Oracle 10.2.0.4.0 (Linux 32-bit) i za način migracije sam odabrao export/import. Baza koju sam trebao migrirati nije bila prevelika, te bi sama migracija trajala oko sat vremena.

Kako bi ta akcija trajala što kraće odlučio sam malo po Oracle forumima i blogovima potražiti savjete/trikove kojima bi se export/import mogao malo ubrzati.

Bilo je tu svakakvih savjeta, ali ja bi se osvrnuo na savjet, koji se odnosio na promjenu nedokumentiranog parametra _disable_logging iz FALSE u TRUE.

Ukoliko se _disable_logging uključi „log switchevi“ će se i dalje događati, a jedina promjena je ta da LGWR neće logove zapisivati na disk. Tada bi dobio na ubrzanju s obzirom da bi reducirao I/O što je inače najveći potrošač vremena. Jedini rizik kojeg sam se “morao paziti” je da mi se instanca abnormalno ne sruši, da ne nestane struje, pokvari se disk i sl. Tada bi mi baza bila nepovratno uništena.

Kako se ovdje radilo o importu na posve praznu bazu odlučio sam se upotrijebiti taj parametar, pa makar se i dogodilo nešto strašno uvijek se mogu vratiti na staro, rekreirati bazu i ponoviti import. I zaista, primijetilo se ubrzanje importa, ali ipak na kraju mi se dogodila korupcija redo logova, akcija je propala, te sam idući dan sve morao ponovit iz početka bez igranja sa nedokumentiranim parametrima.

Ovaj post ima nekoliko bitnih poanti:
Nemojte dirati nedokumentirane parametre osim ukoliko od vas to ne traži Oracle podrška, ili ukoliko ste prilično sigurni da se ništa loše neće dogoditi.
– Kad god želite isprobati nešto novo, nemojte to isprobavati na produkciji, nego prethodno sve testirajte na što sličnijem (testnom) sustavu kako biste bili prilično sigurni da ništa neće poći po zlu.
Ne vjerujte na slijepo savjetima/trikovima sa Oracle foruma/blogova. Sve testirajte i tražite dokaze.

Osobno se uglavnom držim svega što sam naveo, te se usudim eksperimentirat samo ako se radi o testnom sustavu, ili ako sam prilično siguran da se veća šteta ne može dogoditi.

Iako najčešće volim sve i svašta testirati, moram priznati da postoje neki autori čije rečenice i savjete primam gotovo kao dokumentaciju, te se zna dogodit da iskoristim njihove savjete bez prethodnog testiranja.

Pa eto za kraj ću navesti pet blogova/web stranica (iako ih ima još) nekih Oracle gurua od kojih se može stvarno puno naučit i čije savjete uzimam sa vrlo velikom dozom sigurnošću da se ništa loše neće dogoditi:

1. Tom Kyte
2. Tanel Poder
3. Jonathan Lewis
4. Tim Hall
5. Richard Foote

  1. 2 Responses to “Kako se to NE radi i kako se to radi”

  2. Eeee zaboravio si dodati i ovaj blog u listu blogova, kojima se vjeruje na slijepo!!! 😉

    Ovdje važi ona stara kambodžanska – “Ko se nedokumentovanih parametara laća, od nedokumentovanih parametara i pogine”.
    Jesi li ustanovio šta je uzrok korupcije redo logova i jesi li pokušao još jednom kompletan proces?

    By Dejan on Apr 4, 2009

  3. @Dejan: Uzrok korupcije je bilo aktiviranje parametra _disable_logging=TRUE prilikom importa podataka.

    Kako je na Metalinku objavljen sam problem (391302.1) nisam pokušao reproducirati grešku.

    Očito taj parametar i ne funkcionira najbolje.

    Mislim čak da ga je ekipa iz Oracle-a napravila sa greškom da se ljudi ne bi previše upuštali u funkcioniranje baze bez redo zaštite 🙂

    Inače bi se nakotilo tekstova koji bi pričali o tome kako “sigurno” ubrzati stvari… itd…

    U svakom slučaju taj parametar ne namjeravam koristiti ni na testnom sustavu, a kamoli na produkciji 🙂 (najbolje se uči iz vlastitih grešaka)

    By Marko on Apr 5, 2009

Post a Comment