You are on page 1of 4

Baze podataka 04.06.2012. Predava: Darko Dika.

Etinger i Dika neto prilaju na privatno Etinger zatvara vrata i nastaje tiina. Etinger pozdravlja sve nas i predstavlja predavaa Prva tema je Oracle arhitektura za napredne i druga tema je Kako raditi dobre aplikacije? Radi na mjestu voditelja projekta. Moemo kod njega na preksu Uljanik IRI d.o.o. .. dva tjedan neki teja i tamo neto je rekao. To tek na tredoj godini. Tamo se moe neto na serverima radit ili razvoj inf. Sustava Pria gdje je radio i gdje radi i to ima od iskustva 3 puta je rekao da je radio u banci Imamo tehniki zahtjevniju prezentaciju jer smo hardcore Endi pria ta je radio ... Totalno suprotno od onoga to je Endi radio Trebali bi znati Oracle baze Svaka baza ima svoje specifinosti .... Slobodno ga moemo prekinuti ako imamo neko pitanje. ***POETAK PREDAVANJA*** Oracle arhitektura za napredne Database kolekcija fizikih datoteka u operativnom sustavu Instance set pozadinskih procesa i djeljeno momorijsko podruje Memory structure Physical files Background processes Jedna instanca ini System global area, back proseci komuniciraju s prosecima, datoteke se spremaju na disk. Dedicated server i shared server Dedicated svaki klijent koji pristupa bazi kreira se serverski proces na serveru. Svaki korisnik ima svoji proces. Ako su ogranieni hard resurci i nekoliko 1000 moguih korisnika, moe se koristiti Shared server. Poanta je da svi korisnici nee u istom trenutnu traiti pristup bazi. Moemo se poigrati ako imamo puno korisnika koji nede biti aktivni u isto vrijeme .

Memory structure SGA System Global Area (alocirana memorija za sve procese to djele svi procese) PGA Private Global Area (memorija koaj se dobije kad se prikaimo na bazu) Servrski procesi su korisnici. Svaki korisnik koji je prikai dobije svoji PGA, proces i UNIX proce. Problem se moe pojaviti kod alokacije PGA. Shared pool ide svaki upit, svaka naredba on se tamo keira, provjeriti valjanost sintakse i mora odrediti kako de na najbolji nain izvriti naredbu(select). Ima n opcija kako on moe izvriti select. PARSANJE selecta? Ako ste DEV shared pool je vrlo vaan. Treba paziti na veliinu servera. Database buffer cache spremaju se blokovi s diska. Redo log buffer svaka promjena u bazi se sprema ovdje, identina kopija tog podatka. U sluaju da tresene baza (kreala se) oporavak se radi preko redo log buffera. Pozadinski procesi SMON system monitor pregledava u kakvom je stanju baza nakon ruenja PMON Process monitor vodi brigu o svakom procesu, isti korsnike procese DBWn Database Writer zapisuje podatke u bazu LGWR - LogWriter brine se za redo log file CKPT Checkpoint /*DEMONSTRACIJA, Vanja zna raditu u Linuxu i biti de pomod predavau */ Pregledavanje procesa na terminalu u bazi koristi Mac -.Fiziki fajlovi Parameter files - to je file koji tu svu svi podaci koji je koriste prilikom inicijalizacije neega Control files je jedan mali binaran file, kontrol files govori gdje se naleze ostale datoteke Datafiles najvaniji fiziki fajlovi, tu su smjeteni podatci Online redo logs Alert.log glavni log u Oracle bazi

Opet neka demonstracija, kae Fuu da napiem da mu se die (njemu, predavau) njegova instanca je orcl to je defoltna instanca, na jednom serveru moe biti vie instanca. Opet je prikazao sve filove gdje je Oracle spremio nae fjalove. Ako mu se konzola uspije di, biti de vrlo zanimljivo ;) Trace files (udump, bdump) Oracle moe poizvoditi trace filevoe na na zahtjev u tom filu prie sve to se radilo i nije radilo. Za svaku ne fatalu greku. Prije ili kasnije demo se nadi u stituacija da de na to biti korisno kod nekih bugova.

Tono ovom hirarhijom se korsiti Oracle

Databases Tablespaces Segments Extents ekstenti su jednotavno kontinuirano neto ... -.- moe da bude i autoextend Blocks blokovi su najnii nivo itanja podataka 4kB ili 8kB Kada kreiramo neku tabelu moramo deifnirati u koji tablespace ide tabela. Baze su objekte. Bazni objketi je sve to nam troi neki prostor. Indeksi troe prostor u koje se sprema klju. Svaki segment trebamo spremiti u neki tablespace(tablele ili indeksi). Tablele moemo logiki sortirati po aplikacijama. Kod exporta dobro doe sortirati tabele u tablespace Jedan tabela se moe protezati na vie datafile-a ali ne na vie tablespace-a Spajanje na Oracle ne bi trebali se prijavljivati s sys s njim smo instalirali bazu. Treba dodjeliti neki drugi acc. /*Oracle Enterprice Menager s konzolom moemo svata raditi kao i phpMyAdmin. imamo tab koji se zove server gdje moemo pristupiti svim datotekama koje se nalze na serveru , vidjeti da li su dostupni i u kojem tablespace-u se nalaze Neto se zad zajebava po toj konzoli i gleda sve ove datoteke o kojima smo priali malo gore. Prikaz memorije tj. Kolika je alokacija memorije, prikaz shared pool-a, lijepi grafiki prikaz svega toga skupa. */ ***PAUZA*** Veina je otila doma, neki su u uionici pored gdje Oliver dri predavanje iz MMS-a. ***NASTAVAK PREDAVANJA*** Sljededih pola sata demo priati o tome kako raditi dobre aplikacija. Postoje dva naina je tako da tretiramo bazu kao crnu kutiju. Bitno je znati arhitekturu Oracle baze kao i funkcije, opcije i ostale dodatke i dizajn shema. Oracle arhitektura uvijek koristi istu konekciju, nema potrebe dizanje vie paralelnih konekcija, uvijek koristiti jednu konekciju. Koristiti binds varijable. Binds varjablama moemo smanjiti nepotrebno punjenje shared pool-a, CPU se ne troi previe i performance ne padaju. Kad ne treba koristiti bind varijable, ne korsitimo ih kad imamo vrlo malo varijabli (npr. 4). Implementing locking Oracle locka samo jedan slog, nikad ne zakljuavam podatke za itanje,zapis nikad ne blokira itanje, pisanje je blokirano samo od drugog pisanja. Lost updates Pesimistiki(vrijednost se zakljuava za vrijeme itanja) i optimistiki(radite promjenu samo ako nije bilo promjene u bazi)

Multiversioning read-consistant queris dobiti demo stanje kad smo izdali naredbu. ak i dok se tijekom nekog zahtjeva promjeni neka vrijednost, rezultat de biti prikazan kao stara verzija. Koristiti stvari koje dolaze ugraene u aplikaciji. Kao to su automatsko generiranje brojeva. Sekvenca nam garantira da su nam dobiveni brojevi jedinstveni.