Oracle RAC 11.2 on Windows 2008 R2 – Part II
Wednesday, 01.08.2012 – Noctua4u
DO NOT… IN PRODUCTION!
Obzirom da su mi se više puta obraćali, sa raznih strana sveta, za mišljenje i iskustvo u radu Oracle RAC-a 11.2.0.2 pod Windows 2008 R2, evo sistematizovanih činjenica.
Zapravo, ovo je kratki info i instrukcije o upotrebi RAC-a u produkciji. Sve što je napisano je plod ličnog iskustva i uopšte ne mora da znači da bi se ponovo reprodukovalo ako bi neko ponovo pokušao to isto. Ovo je samo skup činjenica o kojima bi trebalo voditi računa ukoliko neko planira uvođenje ovakvog sistema u produkciju (pod sličnim okruženjem).
Dakle, obzirom da je teks prilično dug, podeljen je na dva dela. Sledi nastavak.
FORMS 6 i još poneki jezici
Ako niste već pročitali, FORMS 6 (i raniji) uopšte “ne ume da razume” SCAN koncept i celu tu priču oko TAF, Fail over i slično. Tj, da budem precizniji, ne može baš da iskoristi sve potencijale koje najnoviji RAC ima. Dakle, ona priča, dostupnost 24/7 i nije baš takva…
No, toga smo bili svesni i taj “nedostatak” smo iskoristili da se konačno ratosiljamo starog FORMS-a.
Što se tiče drugih jezika, bilo je zanimljivih situacija… svi su se uspešno konektovali na RAC, ali pojedini jezici nisu baš umeli da iskoriste sve mogućnosti.
Neka generalizacija bi bila: Ako jezik koristi Oracle Client, onda koristi sve mogućnosti RAC-a inače… šarenoliko…
WIN i memorija
Takođe, jedno od mojih subjektivnih zapažanja. Sve mi se nešto čini da Win, nakon završetka korisničke konekcije ne ume baš da uvek oslobodi zauzetu memoriju.
Naime, u pikovima korišćenja baze, kada ima ~1k konkurentnih korisnika, stvar funkcioniše, ali, nakon odjavljivanja korisnika sa DB, količina zauzete memorije koju prikazuje OS se drastično razlikuje od količine koju prikazuje DB. I to potraje od nekoliko sati do nekoliko dana!
Sama analiza kroz DB ne ukazuje na postojanje memoriskih problema, i na neko neuobičajno trošenje memorijskih resursa, ali indikativno je bilo na strani OS-a da se memorija “popunila” i da se nije “oslobodila” nakon završetka konekcije.
E, sad, sve ovo ima i neke “side efekte” tipa na ~1k konkurentnih korisnika, novi korisnik ne može da ostvari konekciju uz poruku tipa “nema memorije”, u oracle logovima se pojavljuju ORA-600 greške sa generičkim objašnjenjem da je thread ID taj i taj iznenada “umro” i slično ili da db writer ne stiže da upiše sve što treba…
Bug 13902780 – RAC ENVIRONMENT CHANGED NETWORK IP ADDRESS ON ITS OWN INITIATIVE
Na početku priče sam napomenuo da nismo u trenutku kretanja imali redundantne serverske kartice. Bile su naručene, ali… tender u toku pa… znate kako to već ide u zemlji…
Stigle su naknadno.
Nije problem da se to konfiguriše naknadno i da se sve to “prespoji”. I tako, proučimo literaturu što MS, što Oracle, i konstatujemo da ništa nema problematično i mudro da se radi i krenemo.
Regularni shutdown RAC-a (srvctl stop cluster -all)
Regularni shutdown nodova.
Ubaci kartice u nodove.
Upali nodove.
Iiiii….
Zabava počinje!
Šta je premudri Win uradio?
Promenio je sistemski redosled kartica!
Naime, postojeća PublicLan kartica je bila na prvom mestu. Nakon umetanja nove kartice ona je na drugom mestu!!! Na prvom je nekonfigurisana i neaktivna kartica!
Ekvivalent na linuxu bi bio: eth0, postojeći, funkcionalan, konfigurisan i operativan, postaje eth1 a eth0 je neaktivna i nekonfigurisana nova kartica!!!
Mala digresija za neupućene: to bi bilo kao da na maxini ubacujete novi HDD i on postaje C: a postojeći sistem na kom je Win postaje D! Naravno da win više neće da radi, zar ne?
Jedan od vrlo eksplicitnih zahteva prilikom instalacije RAC-a je bio da je PUBLIC LAN na prvom mestu na Win-u (ili na eth0)…
E, obzirom da je RAC prilično inteligentna i “idiot resistant” roba, uspešno je prebrodio ovu Win glupost, ali…
Shvatio je da je izvršena hardverska rekonfiguracija mašine i da su mrežni interfejsi loši, pa je pokušao, u skladu sa pravilima, da sam rekonfiguriše situaciju.
Rekonfiguracija prolazi kako treba, sa stanovišta RAC-a, ali javljaju se “IP duplikati” na mreži, jer RAC sve to uredno registruje i u DNS!
Ala ga je napravio, svaka mu čast!
Desilo se sledeće: tri SCAN IP adrese su razdeljene po nekom algoritmu na postojeće VIP i node interfejse.
U prevodu na govorni srpski, konflikt u DNS-u se ogleda u sledećem:
nslookup ime-noda vraća IP adresu noda, IP adresu VIP-a i jednu ili dve IP adrese SCAN-a!!!
i tako za oba noda.
Dakle, sad su svi nezadovoljni. DNS vrišti, paketi se gube, klijenti (koji se konektuju preko VIP adresa) ne mogu baš uvek da se konektuju, a kad im pođe za rukom, otvaranje konekcije traaajeee…
Najstrašnije u celoj priči je to što nismo odmah ni primetili problem!!!
Jer je nakon tog inicijalnog (re)starta, RAC je raspodelio IP adrese tako da nije bilo konflikta (jedna IP adresa se ne javlja dva puta na nekom mestu)!
Probleme smo učavali kasnije, kada se iz produkcije videlo da nešto nije uredu… Mada, dosta sam lutao tražeći rešenja za te probleme na sasvim drugom mestu…
Problemi su bili šarenoliki.
RMAN je prvi proreagovao i prijavljivao čudne generičke greške tipa “ne znam gde je ASM”, backup je trajao letnji dan do podne.
Listeri su se gasili naizmenično, otprilike na 3-4 dana.
Neki od clusterware servisa su trajno prestali da rade (konkretno CVU servis koji je prvo prijavljivao grešku tipa TIMEOUT, a onda se i ugasio).
Nije mogla da se uradi relokacija resursa sa noda na nod…
OCR diskovi prijavljuju po nekad nedostupnost u OEM-u iako su online i vidljivi…
Gomila neverovatnih ORA-600 grešaka koje upućuju na neke nimalo naivne greške…
I tako sve neki problemi koji ne ukazuju na suštinu. A onda smo morali da restartujemo jedan nod jer je totalno izgubio veze sa svetom… i više nije hteo uopšte da se podigne…
Tada smo i primetili… jer je Win prijavio IP konflikt!
U prvom mometu bila je totalna PANIKA.
A onda, smo krenuli da rešavamo problem ikako nekako… I na brzinu došli do rešenja da restart celog RAC-a može da razreši IP s(r)tanje.
Naime, nakon svega, konstatovao sam da RAC nakon svakog restarta radi HW rekonfiguraciju mrežnih interfejsa! Kao da uvek ubacujemo nove mrežne kartice… iako smo odmah vratili poredak u Win kako treba, to nije više pomagalo.
Dobro, sad, dešava se da ponekad restart samo više ubrlja IP, pa mora nekoliko puta da se restartuje ceo RAC (i to sa različitih nodova stopiraš, i pokrećeš), ali uglavnom se na kraju nekako adrese preraspodele tako da jesu duplirane ali na način koji ne smeta Win-u i klijentima…
Panika je prošla, ostalo je da se nadjie rešenje problema.
E, tu sam svašta nešto naučio i što mi je trebalo i što nije…
Svašta smo pokušavali. Vadili mrežne kartice, vraćali mrežne kartice, gasili nodove, palili nodove, radili u “single nod režimu”, ma sve što bi padalo na pamet OS adminu… ili meni…
Menjao sam IP adrese VIP-u, SCAN-u, interkonkeciji, pokušavao da selim resurse…
Sve u svemu, ništa pametno nismo mogli da izvedemo…
Ono što je užasno frustrirajuće je i sledeća ćinjenica: na Win jednostavno nemaš alata čime nešto možeš da uradiš. DOS je takav kakav je i… kraj.
A mahom sve komande su portovane sa linux-a i… hvala na pitanju, bagovite su jer neko se nije setio da npr. ne postoji UNAME ili AWK na WIN i slično!
…i problemi sa Oracle Support
Onog sekunda kada sam shvatio šta se desilo, alarmirao sam prvo ljude u Oracle Srbija, pa prijavio problem na Metalinku. Obzirom na to da za najviši prioritet oni zahtevaju našu dostupnost 24/7, a mi to, jel, nemamo… morao sam se zadovoljiti nižim prioritetom.
I tu počinje još jedna zabava…
Dobio sam za podršku nekog finog gospodina iz Indije. Ma OK lik… samo što mi se činilo da ne pravi razliku između Win i Lin…
Natezanje je potrajalo jedno mesec dana. A onda na insistiranje i maltretiranje ljudi u Oracle Serbia, dobijam novog… indijca…
I on je bio OK lik, fino smo se razumeli… napisao sam sve do u detalja i on je kao nešto radio…otprilike sve nešto isto što smo mi odmah, prvog sata probali…
I posle nekoliko meseci… ponovo pritisak i ovog puta dobijamo internal info da eskaliramo problem. E, tu se već uključuje ozbiljnija podrška iz… hm… amerike, sudeći po imenu i stilu komunikacije…
To je već bilo sasvim prihvatljivo. Imali smo neku nazovi saradnju i ponovo smo prošli kroz sve procese koje smo mi već probavali. Samo sada sa stručnim objašnjenjem.
Na kraju su konstatovali su da je to bug (naveden u prethodnom naslovu)… ali… da nije do njih već do MSofta…
Naravno, ljudi iz MSofta su konstatovali nešto tipa “Šta? Niste znali da to može da se desi? Pa to nije bug… to je sasvim korektno ponašanje Win-a. A i zašto bi uopšte bio važan redosled mrežnih kartica?”
Na kraju cele sage, koja je potrajala nekih 8 (osam) meseci, dobio sam zadnju preprouku da je izašao “Latest windows bundle Patch 13575310” koji će najverovatnije rešiti problem. Iako sam pročitao detaljno sve u vezi istog, nisam našao ni približno ono što bi mi zaličilo na opis problema koji mi imamo.
Naravno, na konkretno pitanje da li garantuju da će update proći u ovakvom stanju (a pri tom update im JESTE bagovit na win-u) nisam dobio konkretan odgovor.
I tako smo se natezali još neko vreme i…
U međuvremenu, naš OS admin je uspeo da zakrpi problem. Obzirom da je sila u njemu mračna i jaka, ne bih ovde da iznosim u detalje kakvim se sve “mađijama” poslužio i šta je sve radio (a i da budem iskren, i ne razumem baš sve što je pričao) ali svelo se na to da je “objasnio” DNSu i Win nodovima da NIKO osim njega NE MOŽE da promeni IP adrese interfejsa.
To jeste rešilo problem sa IPjem…
Ali…
Neki “sitni” problemčići
Ne bih ovde navodio uobičajne oracle bugove koji se provlače, zapravo, postoje i u regularnim, freš, instalacijama… Nešto poput komande su neadekvatne (nepotpuni portovi sa linuxa), OEM ima svoje bug-ove (npr ne radi kreiranje servisa) koji su inače registrovani bug-ovi na Metalinku.
To sve podvodim pod “regularni posao” tako da…
Takođe, još jednom ponavljam, najverovatnije je upitno i moje poznavanje RAC okruženja, i integracije sa Win-om i svega, ali… ne mogu da se otmem utisku da je Oracle RAC on Windows jedan prilično loš potez.
Naravno da postoje instalacije koje rade. Verujem da postoji u produkciji dosta korektnih i konkretnih scenarija koji rade bez problema. Verujem, takođe, da ima među vama i onih koji to imaju u svojim firmama… ali… ako je po ljudima iz Oracle Serbia, na ovom delu sveta (ako se ne varam, misle na Jevropu, jel) nema u zvaničnoj produkciji varijante RAC + Win…
i mi smo im jedina referenca da to može…
A nakon ovog teksta, nadam se, i da to tako NE treba.
2 Responses to “Oracle RAC 11.2 on Windows 2008 R2 – Part II”
Svaka čast za tekst. Vjerujem da je bila ludnica … I mi smo par puta skakali sa kraja na kraj države u 2 dana zbog previše friških OS-ova…
By SAB on Aug 7, 2012
Ehehehehe znaci veselo bilo, a!? 😀
2007. godine sam i ja bio dobio zadatak, da instaliram RAC na Windows 2003 SP2, pa sam se morao dobro naoruzati svim potrebnim informacijama o problemima, koji mogu nastati tokom instalacije… za divno cudo, nasao sam poprilicno detaljne i opsirne tekstove na tu temu, tako da je sama instalacija protekla takoreci bez problema!!! Tek kasnije, kad smo krenuli u produkciju, suocili smo se sa peformance problemima, kada je opterecenje bilo daleko vece, nego na testnom okruzenju…
Prosle godine smo tu bazu prebacili na IBM AIX, jer se politika firme bila promijenila – Windows na klijentskim racunarima, a Oracle baze na IBM AIX i Solarisu.
Btw. kad ces vise postati shef tamo, pa da se konacno donese neka konstruktivna i pozitivna odluka!? 😀
By Dejan on Aug 29, 2012