You are on page 1of 32

Administracija baze podataka

Tipovi korisnika Oracle7 baze podataka

Oracle7 je mo}an i slo`en sistem za upravljanje bazama podataka. To je razlog


zbog kojeg je potreban administrator baze podataka, tj. jedna ili vi{e osoba
odgovornih za upravljanje bazom Oracle7.

Administrator baze podataka Oracle7 sistem mo`e biti izuzetno slo`en i mo`e
imati veliki broj korisnika tako da je iz tih razloga potrebno postojanje jedne osobe
ili ~itave grupe ljudi koja }e upravljati ovim sistemom. Administrator baze ima tu
ulogu. Svaka baza zahteva najmanje jednu osobu koja }e izvr{avati zadatke
administratora. Zadaci administratora baze su da :

 Instalira i dogradjuje servera Oracle7 i kao i ostale Oracle proizvode


 Defini{e bazu podataka Oracle7
 Konfiguri{e ili u~estvuje pri konfigurisanju mre`e
 Planira bazu podataka i obezbedjuje da server baze podataka uvek ima
dovoljno memorije i prostora na diskovima
 Kreira primarne bazne strukture za sme{tanje podataka pri razvoju aplikacije
 Saradjuje sa projektantima aplikacija u definisanju objekata baze podataka, kao
{to su tabele i pogledi
 Menja strukturu baze na osnovu informacija koje daju projektanti aplikacije
 Defini{e nove korisnike i dodeljuje prava pristupa podacima
 Kontroli{e pristup bazi podataka kori{}enjem operativnog sistema, mre`nog
operativnog sistema i mehanizama za kontrolu pristupa i za{titu podataka
ugradjenih u Oracle7
 Vr{i optimizaciju performansi baze
 Planira backup i obnavljanje baze
 Upravlja arhiviranim podacima
 Redovno izradjuje rezervne kopije i izvr{ava procedure za rekonstrukciju baze,
kada je to potrebno
 Nadzire i pode{ava baze podataka Oracle7

1
Administrator sigurnosti U odredjenim slu~ajevima potrebno je posao
administratora baze podeliti uvodjenjem nove li~nosti i to administratora za
bezbednost koji bi imao zadatak da olak{a posao administratoru
definisanjem korisnika, dodeljivanjem uloga korisnicima, pra}enjem pristupa
bazi i upravljanjem sigurno{}u sistema.

Projektanti aplikacija Projektanti aplikacija dizajniraju i realizuju bazne


aplikacije. Zadaci projektanata aplikacija:

 projektovanje i razvoj baznih aplikacija


 projektovanje bazne strukture za aplikaciju
 realizacija sme{tajnih struktura za aplikaciju
 specifikacija promena baznih struktura za aplikaciju
 saradnja sa administratorom baze
 pode{avanje aplikacije za vreme razvoja
 ostvarivanje sigurnosti aplikacije za vreme razvoja aplikacije

Administrator aplikacije Oracle strana mo`e imati jednog ili vi{e administratora
aplikacija. Oni su zadu`eni za administraciju koja je neophodna za
pojedina~ne aplikacije.

Korisnici baze Korisnici baze su u interakciji sa bazom preko aplikacija. Zadaci


korisnika baze:

 unos, promena i brisanje podataka


 pravljenje izve{taja iz baze

Mre`ni administrator U okviru sistema Oracle7 mo`e postojati jedan ili vi{e
administratora mre`e. Oni imaju zadatak da administriraju Oracle7 mre`ne
proizvode kao {to je SQL*Net.

Pre svih akcija koje administrator baze treba da izvede na sistemu on mora da
konfiguri{e operativni sistem za administriranje baze podataka.

Privilegije administratora baze

Administrator baze zahteva dodatne privilegije da bi ispunio zadatke koji su u


njegovoj nadle`nosti u u okviru baze i u okviru operativnog sistema nad kojim se
instalira Oracle7. Administrator baze mora biti sposoban da izvr{i odredjene
komande operativnog sistema tako da zahteva ve}e privilegije od ostalih
korisnika.

Dva korisni~ka ra~una se automatski kreiraju pri kreiranju baze i grantuju sa DBA
ulogom. To su :

2
 SYS Sve bazne tabele i pogledi baznog re~nika podataka su sme{teni u {emi
korisnika SYS. Ovi objekti su kriti~ni za operacije u okviru Oracle7. Ove tabele
ne bi trebali nikad biti menjane niti bi trebalo kreirati nove tabele u ovoj {emi.
 SYSTEM korisnik kreira dopunske tabele i poglede koji daju administrativne
informacije i interne tabele i poglede koji se koriste za Oracle proizvode. Ne
treba kreirati tabele od interesa za individualne korisnike u ovoj {emi.

DBA uloga DBA uloga se automatski kreira sa kreiranjem baze. Ova uloga sadr`i
sve privilegije baznog sistema.

Produkti koje koristi administator baze

Server menad`er omogu}uje nadgledanje i kontrolu Oracle7 baze. Sve operacije


administratora baze se mogu izvr{itit kori{}enjem ovog menad`era.
SQL*Loader koriste i administratori baze i korisnici Oracle7 a omogu}uje punjenje
podataka iz standardnih fajlova operativnog sistema u tabele Oracle7 baze.
Export/Import proizvod Oracle7 sistema omogu}uje pomeranje podataka iz Oracle
baze u Oracle formatu ili suprotnu akciju uno{enje podataka u Oracle bazu. Fajlovi
dobijeni eksportom su va`ni kod arhiviranja podataka ili migracije izmedju
razli~itih Oracle baza koje se izvr{avaju na istom ili razli~itim operativnim
sistemima

Inicijalni zadaci administratora baze

Pre samog rada sa ve} kreiranom bazom administrator baze mora konfigurisati
ambijent za rad baze. To podrazumeva:

 Instaliranje Oracle7 softvera (Oracle7 servera, drugih Oracle proizvoda kao i


aplikacija koje pristupaju bazi, SQL*Net drajvera neophodnih za konekciju sa
udaljenih ma{ina)
 Analizu hardverskih komponenti (koliko diskova je dostupno za Oracle7 i bazu,
koliko uredjaja za traku kao i koliko memorije je dostupno za svaku instancu
koja }e se izvr{avati na sistemu)
 Planiranje baze, planiranje logi~ke strukture baze (koliko fajlova }e biti
kreirano za odredjeni prostor za tabele i kakve tipove informacije }e biti
sme{tene tamo), {irenje baze (kako logi~ka struktura uti~e na performanse
sistema na kome se izvr{ava Oracle7, performanse baze za vreme pristupa
bazi, efikasne backup procedure kao i procedure za obnavljanje baze), kao i
backup strategije za bazu.
 Kreiranje i startovanje baze Ako baza nije kreirana pri instalaciji administrator
mora da je naknadno kreira u suprotnom treba samo da podigne i obori bazu
 Implementiranje dizajna baze (planirana logi~ka struktura se treba
implementiranti u kreiranoj bazi kreiranjem svih neophodnih povratnih
segmenata i prostora za tabele)

3
 Backup baze vodi ra~una o strategiji kreiranjem dopunskih redo log fajlova i
izvodjene redovnih backupa baze
 Dodeljivanje uloga korisnicima kreiranje rola i grantovanje rola odredjenim
korisnicima
 Pode{avanje performansi baze

Kreiranje baze Baza se mo`e kreirati pri instalaciji samog Oracle7 servera ili
naknadno komandom CREATE DATABASE. Ukoliko se kreira nova baza potrebno je
izvr{iti slede}e korake:

Backup postoje}e baze. Komplentni backup svih postoje}ih baza i to parametar


fajlova za podatke, redo log fajlova i kontrolnih fajlova pre kreiranja nove baze.

Kreiranje parametar fajla. Instanca koja podrazumeva SGA i pozadinske


procese za svaku Oracle7 bazu se startuje kori{}enjem parametar fajla. Svaka
baza ima parametar fajl a kreiranje novog fajla za novu bazu mo`e se izvr{iti
kopiranjem default parametar fajla.

Editovanje parametar fajla. Provera vrednosti parametara i to


 DB_NAME lokalno ime baze do osam karaktera snima se u svim fajlovima
fajlovima za podatke kontrolnim fajlovima i redo log fajlovima
 DB_DOMAIN domain odnosno logi~ku lokaciju unutar mre`ne strukture
 CONTROL_FILES imena kontrolnih fajlova koje koristi baza. Oracle preporu~uje
postojanje najmanje dva koji se nalaze na odvojenim diskovima
 DB_BLOCK_SIZE veli~ina bloka za podatke obi~no 2k ili 4k. Ve}i blokovi daju
bolje kori{}enje diska i memorijskog I/O. Ne mo`e biti menjan posle kreiranja
baze sem reinstaliranjem . Ako je veli~ina bloka razli~ita od veli~ine bloka
operativnog sistema tebalo bi da veli~ina bloka bude umno`ak veli~ine bloka
operativnog sistema. Ovaj parametar odredjuje i veli~inu baznih bafera u bafer
ke{u SGA
 DB_BLOCK_BUFFERS broj bafera u bafer ke{u u SGA. Broj bafera uti~e na
perfomranse ke{a. Ve}i ke{ smanjuje broj upisa na disk promenjenih podataka.
S druge strane ve}i ke{ zauzima ve}u memoriju. tipi~na vrednost 1000 ili
2000.
 PROCESSES maksimalan broj procesa operativnog sistema koji mogu biti
konektovani na Oracle7 konkurentno . Broj mora uklju~iti 5 pozadniskih
procesa i jedan korisni~ki.
 ROLLBACK_SEGMENTS Lista rollback segmenata koje zahteva Oracle7 instanca
pri svom startovanju.

Provera identifikacije instance za sistem. Ako postoji vi{e baza za svaku


mora postojati odredjena instanca koja se startuje. Veza baze i instance je preko
parametra DB_NAME.

Startovanje server menad`era i konektovanje na Oracle kao administartor

4
Startovanje instance. Podizanje SGA i pozadinskih procesa ali bez montiranja
baze

Kreiranje baze Primer:

CREATE DATABASE test


LOGFILE
GROUP1(‘test_log1a’,’test_log1b’) size 500k,
GROUP2(‘test_log2a’,’test_log2b’) size 500k,
DATAFILE ‘test_system’ SIZE 10M;

Ovom naredbom Oracle kreira fajlove za podatke kontrolne fajlove i redo log
grupe odnosno fajlove, SYSTEM prostor za tabele i SYSTEM rollback segment,
re~nik podataka, korisnike SYS i SYSTEM, montira i otvara bazu za kori{}enje.

Za brisanje baze treba obrisati sve fajlove za podatke redo log fajlove i sve druge
povezane fajlove, kontrolne fajlove parametar fajlove i arhivirane redo log fajlove)

Backup baze

Inicijalno pode{avanja

Odmah posle instalilranja i kreiranja baze administrator mo`e izvr{iti neka


zna~ajna pobolj{avanja sistema. Pode{avanja se odnose na:
Alociranje rollback segmenata. Broj i veli~ina rollback segmenata za optimalan
rad baze zavisi od aplikacije. Za kreiranje rollback segmenata koristi se naredba
CREATE ROLLBACK SEGMENT.
Distribuciju I/O izmedju diskova sme{tanjem redo log fajlova sme{tanja fajlova za
podatke odvajanja tabela i indeksa, gustine podataka redova po bloku za podatke
Pode{avanje parametara Ako u aplikaciji ima dosta sortiranja mo`e se pove}ati
parametar SORT_DIRECT_WRITES za pobolj{anje performansi. Ako je vrednost
parametra postavljena na TRUE svaki sort alocira dopunske bafere u memoriji za
direktno u~itavanje. Pored toga treba postaviti i SORT_WRITE_BUFFERS i
SORT_WRITE-BUFFER_SIZE za kontrolu broja i veli~ine tih bafera.

Re~nik podataka

Za vreme kreiranja baze inicijalni parametar INIT_SQL_FILES se ~ita da bi se na{la


imena skriptova za kreiranje re~nika podataka. Skriptovi defini{u SYSTEM prostor
za tabele i SYSTEM rollback segment, osnovne tabele re~nika podataka u
SYSTEM prostoru za tabele i pune podatke u tabele.

Primer INIT_SQL_FILES = (CATALOG.SQL, CATPROC.SQL)

5
Startovanje i obaranje baze

Administrator mo`e startovati instancu i bazu na vi{e na~ina:


 startovanje instance bez montiranja baze (obi~no pri kreiranju baze)
 startovanje instance i montiranje baze ali bez otvaranja baze (promena imena
fajlova za podatke, dodavanje brisanje ili preimenovanje redo log fajlova,
dozvola i oduzimanje dozvole za arhiviranje redo log fajlova kao i izvodjenje
punog obnavljanja baze)
 startovanje instance montiranje i otvaranje baze i to:
bez restrikcije (pristupa~na za sve korisnike) ili
u restriktivnom modu (pristupa~na samo za administratora) (eksport ili
import podataka, punjenje podataka sa SQL*Loaderom, privremena za{tita
korisnika od pristupa podacima)

Ukoliko administrator ima problema sa startovanjem baze naro~ito ukoliko nije


mogao da normalno obori bazu postoji mogu}nost kori{}enja STARTUP FORCE
naredbe koja obara instancu i ponovo je podi`e. Osim toga mogu}e je startovati
bazu sa RECOVER opcijom u slu~aju da je neophodno media obnavljanje.

Primeri prethodno startovanih instanci:

ALTER DATABASE MOUNT;


ALTER DATABASE OPEN;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM DISABLE RESTRICTED SESSION;

Obaranje baze

Obaranje baze u normalnim uslovima:

 Nema novih konekcija za vreme obaranja baze


 Svi korisnici su odlogovani
 Slede}i startup baze ne zahteva operacije obnavljanja

U izuzetnim situacijama mogu}e je oboriti bazu odmah i u tom slu~aju:

 Svi SQL iskazi se prekidaju odmah


 Sve nekomitovane transakcije se rollbackuju
 Oracle7 ne ~eka da se korisnici odloguju. Oracle sve aktivne transakcije
rollbackuje i diskonektuje sve korisnike.

Primer SHUTDOWN IMMEDIATE;

Abort instance je akcija koja se koristi u izuzetnim situacijama kada neka od


aplikacija ne radi dobro ili postoje problemi sa startovanjem baze.

6
U tim situacijama svi SQL iskazi se prekidaju, nekomitovane transakcije se ne
rollbackuju, Oracle 7 diskonektuje sve korisnike.
Slede}i STARTUP baze zahteva obnavljanje baze dok se obnavljanje instance
automatski izvr{ava.

Primer SHUTDOWN ABORT;

Kori{}enje parametar fajla

Kod startovanja instance Oracle 7 ~ita parametar fajl. Njegovo ime je obi~no
INIT.ora ili INITsid.ORA.

Upravljanje procesima

Oracle7 instanca ima pozadinske procese koje administartor mo`e pratiti koriste}i
slede}e tabele:

V$CIRCUIT
V$QUEUE
V$DISPATCHER
V$SHARED_SERVER
V$SQLAREA
V$SESS_IO
V$LATCH
V$SYSSTAT

Trace fajlovi Svaki server i pozadinski proces mo`e upisivati u dodeljeni fajl
trace. Kada se detektuje interna gre{ka procesa gre{ka se upisuje u trace fajl.
Specijalna vrsta trace fajla je ALERT fajl. To je hronolo{ki log poruka i gre{aka koji
uklju~uju:

 sve interne gre{ke, gre{ke korupcije bloka i deadlock gre{ke


 administrativne operacije kao {to su CREATE ALTER DROP DATABASE
TABLESPACE ROLLBACK kao STARTUP SHUTDOWN ARCHIVELOG RECOVER
iskaza.

Svi trace fajlovi za pozadinske procese i alert fajlovi se upisuju na lokaciju koja je
specificirana parametrom BACKGROUND_DUMP_DEST. Trace fajlovi za sve server
procese upisuju se na lokaciju specificiranu parametrom USER_DUMP_DEST.
Veli~ina svih trace fajlova je kontrolisana parametrom MAX_DUMP_FILE_SIZE.
Pozadinski procesi uvek upisuju u trace fajl. Ostali server procesi upisuju poruke u
trace fajlove samo ako je parametar SQL_TRACE postavljen na TRUE vrednost.
Vrednost parametra se postavlja komandom ALTER SESSION SET SQL_TRACE
TRUE;

7
Ubijanje sesije

U odredjenim situacijama administrator ho}e da prekine korisni~ku sesiju. Kada je


sesija prekinuta sve transakcije te sesije se rolbackuju i svi resursi se oslobadjaju i
postaju dostupni ostalim sesijama.

Primer:

ALTER SYSTEM KILL SESSION '7,15’;

gde su brojevi 7 i 15 indeks broj sesije i serijski broj . Za identifikaciju sesija


potebno je uraditi slede}i upit

SELECT sid, serial#


FROM v$session
WHERE username=’JWARD’;

Upravljanje redo log fajlovima

Administrator bi trebao da razmatra probleme upravljanja redo log fajlovima posle


konfigurisanja online redo log fajlova instance baze.

Kopije online redo log fajlova

Online redo log fajlovi instance baze bi trebali da se sastoje od kopija online redo
log fajlova. ^lanovi iste grupe bi trebali da se nalaze na razli~itim diskovima tako
da gre{ka na disku n prouzrokuje gre{ku u LGWR i instanci. Iako kopije redo log
fajlova zahtevaju dopunski prostor na disku cena tog prostora je uvek manja od
cene kraha sistema.

Ako je pored kopija uklju~en i arhiviranje online redo log fajlovi moraju da budu na
razli~itim diskovima kako bi eliminisali sukob izmedju LGWR i ARCH pozadinskih
procesa.

Broj online redo log fajlova

Najbolji na~in za odredjivanje broja fajlova je testiranje razli~itih konfiguracija. U


naj~e{}em broju slu~ajeva instanca zahteva samo dve grupe redo log fajlova.
Kod testiranja treba pratiti trace fajlove i alert fajlove. Ako poruke indikuju da
LGWR ~eka na grupu zbog check pointa koji nije kompletiran ili grupa nije
jo{ arhivirana dodaje se grupa. Tri parametra ograni~avajau broj online redo log
fajlova koj se mogu dodati bazi:

 MAXLOGFILES parametar koji se koristi u CREATE DATABASE naredbi odredjuje


maksimalan broj grupa online redo log fajlova za bazu.

8
 LOG_FILES parametar iz parametar fajla mo`e privremeno smanjiti maksimalan
broj grupa online redo log fajlova. Takodje LOG_FILES ne mo`e prekora~iti
MAXLOGFILES.
 MAXLOGMEMBERS parametar kori{}en u CREATE DATABASE iskazu odredjuje
maksimalan broj ~lanova po grupi.

Kreiranje dopunskih online redo log grupa

Primer: ALTER DATABASE


ADD LOGFILE (‘log1c’,’log2c’) SIZE 500k;

Pored ovog mo`e se dodati i deo koji imenuje novu grupu;

ALTER DATABASE
ADD LOGFILE GROUP 10 (‘log1c’,’log2c’) SIZE 500k;

Kreiranje redo log ~lanova

Ukoliko grupa nije komplentna odnosno ukoliko je u slu~aju gre{ke na disku


obrisan neki online redo log fajl iz odredjene grupe postoji potreba da se toj grupi
doda ~lan.

Primer:

ALTER DATABASE
ADD LOGFILE MEMBER ’log2b’ TO GROUP 2;

Veli~ina ne mora biti specificirana jer je odredjena veli~inom ostalih ~lanova u


grupi.

Promena imena i mesta online redo log ~lanova

Ova akcija se primenjuje u slu~aju ako se disk na kome se nalazi redo log fajl
bri{e ili ako su fajlovi za podatke i redo log fajlovi na istom disku i potrebno je
relociranje.

Postupak:

 Backup baze
 Kopiranje online redo log fajla na novu lokaciju ( redo log fajl je morao da
postoji)
 Promena imena online redo log ~lana komandom ALTER DATABASE RENAME
FILE
 Otvaranje baze za normalne operacije ( akcije uzimaju efekta tek pri slede}em
podizanju baze)

9
 Back up kontrolnih fajlova

Primer :

ALTER DATABASE
RENAME FILE MEMBER ’log2b’ TO ‘log1c’;

Brisanje online redo log grupa

Brisanje se izvodi u slu~aju da se `eli smanjenje broja grupa u instanci. Pre


brisanja treba zapaziti slede}e:

 Instanca zahteva najmanje dve grupe online redo log fajlova


 Online redo fajl grupa se mo`e obrisati samo ako nije aktivna. Ako se bri{e
aktivna grupa prvo se aktivnost prebacuje na drugu grupu.
 Proveriti da li je online redo grupa arhivirana pre brisanja.

Primer:

ALTER DATABASE DROP LOGFILE GROUP 3;

Kada je online grupa obrisana iz baze, ona nije obrisana sa diska.

Brisanje ~lanova grupe online redo log

Brisanje pojedina~nih ~lanova je u slu~aju gre{ke nekog redo log fajla.


Administrator treba da razmotri slede}e pre brisanja:

 Proveriti status online redo log fajla iz V$LOGFILE;


 Obrisati ~lana samo ako nije ~lan aktivne grupe
 Proverit da li je grupa arhivirana

Primer ALTER DATABASE DROP LOGFILE MEMEBER ‘log3c’;

Kontrola CHECKPOINTA i SVITCH-a

Checkpoint je dogadjaj koji se javlja za vreme dok DBWR upisuje sve modifikovane
bazne bafere iz SGA u odgovaraju}e fajlove za podatke. Log svitch se javlja kada
LGWR prestaje sa upisivanjem u jednu log grupu i startuje upis u drugu. Ova dva
dogadjaja su povezana jer instanca radi checkpoint svaki put kada se javi log
svitch. Log svitch se javlja uvek kada je odredjena grupa redo log puna. Ukoliko
korisnik `eli da promeni ovu vezu recimo da se checkpoint de{ava ~e{}e nego
log svitch ili itd

10
Frekvencija automatskog baznog checkpointa se kontroli{e parametrom LOG-
CHECKPOINT_INTERVAL i LOG_CHECKPOINT_TIMEOUT.

Da bi se checkpint de{avao samo u trenutku log svitch treba postaviti


LOG_CHECKPOINT_INTERVAL parametar ve}i od veli~ine redo log fajla koji se
koristi. Da bi se checkpoint de{avao izmedju dva log svitcha treba postaviti taj
parametar na manje od veli~ine redo log fajla. Vrednost ovog parametra je u
broju blokova operativnog sistema.

Da bi se checkpint de{avao samo kada je log svitch teba postaviti


LOG_CHECKPOINT_TIMEOUT parametar na nulu. Da bi se checkpoint de{avao
izmedju dva log svitcha treba postaviti taj parametar na manje od srednje
vrednosti vremena koje je potrebno da se popuni redo log fajl.

Log switch

Primer:
ALTER SYSTEM SWITCH logfile;

ALTER SYSTEM CHECKPOINT;

U ovom slu~aju ucheckpoint se uradi bez log switcha. LGWR nastavlja da upisuje
u redo log .

Informacije o Online redo log fajlu se nalaze u tabelama V$LOG, V$LOGFILE


re~nika podataka.

Kontrolni fajlovi

Parametar CONTROL_FILES u parametar fajlu baze indikuje jedan ili vi{e naziva za
kontrolne fajlove. Instanca prilikom startovanja prepoznaje i otvara sve navedene
fajlove.

Svaka baza bi tebalo da ima minimum dva kontrolna fajla svaki sme{ten na
razli~itiom disku. Ako se prilikom gre{ke na disku upropasti kontrolni fajl instanca
se mora oboriti. Svaka kopija kontrolnog fajla mora biti sme{tena na razli~itom
disku. Kopije kontrolnih fajlova mogu biti sme{tene na diskove na kojima se
nalaze i ~lanovi online redo log grupa ako su online redo log kopirani.

Kreiranje kontrolnih fajlova

Kontrolni fajlovi se kreiraju kad i baza. Za vreme kreiranja baze najmanje jedan
kontrolni fajl mora biti kreiran. Inicijalno kreiranje kontrolnog fajla podrazumeva da
se kreira jedan kontrolni fajl ~ije ime nosi parametar CONTROL_FILES. Dodavanje
novog kontrolnog fajla se vr{i kopiranjem postoje}eg fajla na novu lokaciju i

11
dodavanjem imena listi kontrolnih fajlova. Dopunske kopije ili pomeranje
kontrolnog fajla na novu lokaciju zahteva slede}e korake:

 Obaranje baze
 Izlaz iz server managera
 Kopiranje postoje}eg fajla na drugu lokaciju kori{}enjem komande operativnog
sistema
 Promena parametra CONTROL_FILES u parametar fajlu i dodavanje imena
novog kontrolnog fajla ili promena postoje}eg imena
 Start server manager
 Startup bnaze

Kreiranje novog kontrolnog fajla bazi se vr{i naredbom CREATE CONTROLFILE.


Kreiranje novog kontrolnog fajla se vr{i u slu~ajevima kada su svi kontrolni fajlvoi
baze upropa{teni i ne postoji backup kontrolnog fajla ili postoji potreba za
promenom nekog od baznih parametara koji su postavljeni naredbom:

CREATE DATABASE kao {to su MAXLOGFILES, MAXLOGMEMBERS, MAXDATAFILES


itd

Koraci za kreiranje novog kontrolnog fajla:

 Pravljenje liste svih fajlova za podatke i online redo log fajova u bazi
 Obaranje baze
 Backup svih fajlova za podatke i online redo log fajlova
 startup nove instance ali bez montiranja i otvaranja baze
 Kreiranje novog kontrolnog fajla kori{}enjem komande CREATE CONTROLFILE
 Promena parametar fajla baze
 Obnavljanje baze ako je neophodno
 Otvaranje baze

Primer:

CREATE CONTROLFILE
SET DATABASE prod
LOGFILE GROUP 1 (‘logfile1A’,’logfile1B’) SIZE 50M,
GROUP 2 (‘logfile2A’,’logfile2B’) SIZE 50M,
NORESETLOGS
DATAFILE ‘datafile1’ SIZE 3M, ‘datafile2’ SIZE 5M,
MAXLOGFILES 50,
MAXLOGMEMBERS 3,
MAXDATAFILES 200,
MAXINSTANCES 6,
ARCHIVELOG;

12
Brisanje kontrolnih fajlova u slu~aju kada lokacija kontrolnog fajla nije
odgovaraju}a naravno baza ima uvek dva kontrolna fajla:

 Obaranje baze
 Izlaz iz server managera
 Promena parametra CONTROL FILES iz parametar fajla u cilju brisanja starog
imena kontrolnog fajla
 Start baze

Strukture za sme{tanje podataka

Upravljanje fajlovima za podatke

Kori{}enje vi{e prostora za tabele

Kori{}enje vi{e prostora za tabele omogu}uje ve}u fleksibilnost u obradi baznih


operacija. Sa ve}im broj prostaora za tabele mogu}e je:

 Odvojiti korisni~ke podatke od podataka re~nika podataka


 Odvojiti podatke jedne aplikacije od drugih
 Smestiti razli~ite fallove za podatke razli~itih prostora za tabele na razli~ite
diskove i tako smanjiti I/O
 Odvojiti podatke rollback segmenata od korisni~kih podataka spre~avaju}i
tako gubljenje podataka u slu~aju gre{ke na disku
 Odvojiti prostor za tabele postavljanjem na offline od ostalih
 Backup pojedina~nog prostora za tabele

Broj fajlova za podatke

U bazi mora da postoji najmanje jedan fajl za podatke i to u prostoru za tabele


SYSTEM. Mali sistemi mogu imati jedan fajl za podatke. Generalno mali broj ve}ih
fajlova je mnogo bolje re{enje za bazu od ve}eg broja manjih fajlova. Broj fajlova
je ograni~en pre svega operativnim sistemom po{to svaki operativni sistem ima
ograni~enje u pogledu broja fajlova za procese. S druge strane Oracle7 takodje
ima ograni~enje u broju fajlova koji mogu biti otvoreni za jednu instancu. Pri
kreiranju baze navodi se takodje maksimalan broj fajlova za podatke. To se
odredjuje vredno{}u parametra MAXDATAFILES u CREATE DATABASE iskazu. Na
kraju pri startovanju Oracle instance parametar fajl baze odredjuje koli~inu SGA
prostora za informacije o fajlovima za podatke. Maksimalan broj fajlova za podatke
kontrolisan je parametrom DB_FILES. Ovo ograni~enje va`i samo dok `ivi
instanca.

Fajlovi za podatke ne bi trebali biti na istom disku na kome se nalaze i redo log
fajlovi. Ako su na istom disku i ako taj disk padne fajlovi ne mogu biti kori{}eni u
procedurama za obnavljanje. Jedino ukoliko postoje kopije redo log fajlova koje su

13
na drugom disku onda nije mogu}e redo log fajlove i fajlove za podatke smestiti
na isti disk.

Pri kreiranju prostora za tabele treba navesti parametre za sme{tanje. Ukoliko se


oni ne navedu Oracle koristi default vrednosti. Takodje je bitno da se pri
grantovanju privilegija odredjenom korisniku koji }e koristiti odredjeni prostor za
tabele odredi kvota.

Prvi i obavezni prostor za tabele je SYSTEM i on se automatski alocira pri kreiranju


baze. Pored ovog mogu}e je kreirati i dopunske prostore za tabele i to ako `elimo
da dodamo jo{ prostora za bazu odnosno da pove}amo bazu ili `elimo da
kreiramo novu logi~ku strukturu gde `elimo da smestimo podatke koji }e biti
odvojeni od ostatka baze. Za pove}anje ukupnog prostora baze mogu}e je
jednostavno dodati novi fajl za podatke postoje}em prostoru za tabele. Primer
kreiranja novog prostora za tabele:

CREATE TABLESPACE proba


DATAFILE ‘datafiles_1’ SIZE 50M
DEFAULT STORAGE (
INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 50
PCTINCREASE 0)
OFFLINE;

Primer dodavanje fajla za podatke prostoru za tabele

ALTER TABLESPACE proba


ADD DATAFILE ‘proba_1’ SIZE 50M;

Pored dodavanja fajla postoji mogu}nost promene veli~ine postoje}ih fajlova na


vi{e na~ina i to preko automatskog zauzimanja ekstenata (primenom iskaza
autoextend off ili on u iskazima tipa CREATE DATABASE CREATE TABLESPACE i
ALTER TABLESPACE) i primenom komande RESIZE u ALTER DATABASE iskazu.

Takodje administrator mo`e da menja i default sme{tajne parametre prostora za


tabele komandom

ALTER TABLESPACE proba


DEFAULT STORAGE (
INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 20
PCTINCREASE 50);

14
Nove vrednosti parametara imaju uticaj na budu}e ekstente koji se alociraju za
segmente unutar prostora za tabele.

Administrator mo`e postaviti da prostor za tabele bude nedostupan za korisnike


odnosno dostupan ukoliko je pre toga bio nedostupan :

ALTER TABLESPACE proba ONLINE;

ALTER TABLESPACE proba OFFLINE NORMAL; (u slu~aju da nema nikakvih gre{aka


u fajlovima za podatke u prostoru za tabele)

Pored ovih akcija administrator mo`e da izvr{i slede}e promene na fajlovima za


podatke:

Primeri:

Vrlo retko kada Oracle7 ima problem sa upisom u fajl ALTER DATABASE DATAFILE
‘proba’ ONLINE; Baza mora biti u ARCHIVELOG modu.
Promena imena i relokacija fajlova za podatke (tablespace mora biti offline fizi~ki
se kpiraju fajlovi a d=onda se fr{i alter tablespace naredba sa rename opcijom
RElokacija fajlova na druge diskove
Pravljenje read-only prostora za tabele
Brisanje prostora za tabele i fajlova za podatke (kad se jednom prostor za tabele
obri{e podaci se ne mogu povratiti Takodje posle brisanja prostora za tabele u
kontrolnom fajlu ostaje pointer da je povezani prostor za tabele obrisan Pravi fajl
je i dalje na disku i mora se ru~no obrisati

Primer:

DROP TABLESPACES proba INCLUDING CONTENTS;

Informacije o prostorima za tabele i fajlovima za podatke se mogu na}i u slede}im


pogledima re~nika podatka:

USER_EXTENTS, DBA_EXTENTS
USER_SEGMENTS,DBA_SEGMENTS
USER_FREE_SPACE,DBA_FREE_SPACE
DBA_USERS
DBA_TS_QUOTAS
USER_TABLESPACES, DBA_TABLESPACES
DBA_DATA_FILES
V$DATAFILE

Primeri:

15
Pregled prostora za tabele i default parametara za sme{tanje

SELECT tablespace_name,initial_extent,next_extent,max_extent,pct_increase
FROM sys.dba_tablespaces;

Pregled fajlova za podatke koji su povezani za prostorima za tabele;

SELECT file_name,bytes,tablespace_name,
FROM sys.dba_data_files;

Provera slobodnog prostora za svaki prostor za tabele:

SELECT
tablespace_name,file_id,count(*),ma(blocks),min(blocks),avg(blocks),sum(blocks)
FROM sys_dba_free_space
WHERE tablespace_name=’SYSTEM’
group BY tablespace_name ,file_idl;

Provera statusa fajlova za podatke

SELECT name,file#,status,checkpoint_change#
FROM V$DATAFILE;

Upravljanje objektima {eme

Podrazumeva upravljanje tabelama, pogledima, sekvencama, sinonimima i


indeksima.

Parametri PCTFREE i PCTUSED

Parametar PCTFREE je va`an u izbegavanju ulan~avanja redova. Ulan~avanje


redova se dogadja kada Oracle7 ne uspe da smesti sve podatke iz jednog reda u
isti blok podataka, pa mora da razbije red na fragmente reda. Red je fragmentiran
izmedju vi{e blokova podataka. Kada upit zahteva da se prikupe svi podaci iz
takvog reda Oracle7 mora da pretra`i ceo lanac blokova podataka u kojima se
nalaze podaci tog reda.

Velike koli~ine ulan~anih redova mogu da oslabe performanse sa aspekta


operacija ~itanja i pisanja na disk zato {to Oracle7 mora da u~ita ve}i broj
blokova sa podacima da bi prikupio sve podatke koji pripadaju odredjenim
redovima iz tabele. Ulan~avanje redova mo`e da nastane kod a`uriranja reda
posle ~ega red postaje du`i nego {to je bio. Pomo}u PCTFREE parametra
ulan~avanje mo`e da se smanjii po{to ovaj parametar odredjuje koliko je prostor
rezervisan za iskaze koji a`uriraju postoje}e redove objekata. Oracle7 dozvoljava

16
korisnicima da pune blok sa podacima iz tabele sve dok ne ostane jo{ samo 10
posto slobodnog prostora u bloku. Taj preostali deo prostora Oracle7 dr`i u rezervi
za operacije a`uriranja koje bi mogle da pove}aju du`inu postoje}ih redova. Ako
se redovi u tabeli ~esto a`uriraju PCTFREE treba da se postavi na ve}u vrednost u
suprotnom ako se podaci u tabeli retko a`uriraju ili ako a`uriranje ne pove}ava
du`inu redova PCTFREE treba postaviti na ni`u vrednost tako da vi{e prostora u
bloku za podatke bude raspolo`ivo za uno{enje novih redova.

Kada korisnik unese novi red u tabelu Oracle7 mora da izabere blok za podatke u
koji }e smestiti novi red. Da bi postupak izbora bloka bio br`i i lak{i Oracle7 za
svaku tabelu ima jednu ili vi{e lista slobodnog prostora koje pokazuju u kojim
blokovima ima slobodnog prostora za nove redove.

Koji blokovi za podatke }e biti u listama slobodnog prostora zavisi od od


sme{tajnih parametara PCTFREE i PCTUSED. Kada dodavanjem novih redova
korisnici popune blok za podatke do procenta zadatog u parametru PCTFREE
Oracle7 skida taj blok sa liste slobodnog prostora. Posle toga Oracle7 ne vra}a
blok na listu slobodnog prostora sve dok se ne dostigne vrednost jo{ jednog
parametra PCTUSED. Kada korisnici bri{u redove iz tabele Oracle7 oslobadja
prostor u blokovima za podatke te tabele. Kada je koli~ina obrisanih podataka
tolika da je dostignura vrednost parametra PCTUSED Oracle7 vra}a blok za
podatke na liste slobodnog prosta odgovaraju}e tabele. Vi{a vrednost parametra
PCTUSED obezbedjuje relativno pune blokove za podatke ali mo`e i da oslabi
performanse sistema jer Oracle7 mora neprestano da stavlja blokove na liste
slobodnog prostora i da ih skida odatle. Ni`e vrednosti parametara PCUSED mogu
da budu podru~ja neiskori{}enih prostora ako korisnici ~esto bri{u redove. Ovi
parametri se defini{u u CREATE i ALTER naredbama .

Kada se transakcija izvr{ava nad podacima nekog objekta Oracle7 zauzima male
koli~ine prostora u blokovima za podatke tog objekta. Sve dok se transackcija ne
zavr{i ili poni{ti u tim prostorima ~uvaju se interne procesne informacije; Oracle7
sadr`i dva parametra INITRANS i MAXTRANS koji omogu}avaju pode{avanje
performansi u onom delu koji zavisi od tog internog procesnog mehanizma za
potrebe transakcija.

INITRANS rezervi{e prostor za zadati broj transakcionih stavki. Prednost toga je da


Oracle7 ne mora dinami~ki da odvaja prostor za nove transakcione stavke u
trenutku njihovog ulaska u blokove za podatke.
MAXTRANS odredjuje broj transakcija koje smeju da istovremeno udju u blok za
podatke. Time se ograni~ava ukupan prostor u bloku kojim u bilo kom trenutku
raspola`u transakcione stavke. Ako je broj transakcija koje istovremeno koriste
blok za podatke jednak vrednosti parametra MAXTRANS slede}a transakcija koja
zahteva podatke iz tog bloka mora}e da sa~eka dok se neka od prethodnih
transakcija ne zavr{i ili poni{ti.

17
Ako ve}i broj korisnika aplikacija istovremeno pristupa nekoj maloj tabeli iz koje
samo u~itava podatke parametrima INITRANS i MAXTREANS treba dati ve}e
vrednosti ~ime se posti`u bolje performanse i korisnici manje ~ekaju. U velikim
tabelama mnogo je manje verovatno da }e vi{e korisnika raditi sa istim blokom
podataka u isto vreme U tom slu~aju mo`e se osloboditi vi{e prostora za prave
podatke tako {to }e se vrednost parametra INITRANS postaviti na ni`u vrednost.

Parametri INITRANS i MAXTRANS su va`ni pri kreiranju ili menjanju nekih od


objekata {eme korisnika. Postoje odredjena izra~unavanja kojih se korisnik mora
pridr`avati pri proceni vrednosti ovih parametara zavisno od efekta koji `eli da
postigne.

Administrator u odnosu na tabele ima slede}e aktivnosti:

 Kreiranje tabele
 Promena tabele (dodavanje novih kolona, promena postoje}e definicije kolone,
promena parametara za zauze}e blokova podataka, promena parametara
INITRANS i MAXTRANS, promena sme{tajnih parametra)
 Brisanje tabele

Za poglede:

 Kreiranje ili zamena postoje}eg pogleda


 Brisanje pogleda

Za sekvence:

 Kreiranje sekvendce
 Promena sekvence
 Brisanje sekvence

Upravljanje sinonimima:

 Kreiranje sinonima

CREATE PUBLIC SYNONYM public_emp FOR j.emp;

 Brisanje sinonima

Upravljanje indeksima

Za performanse sistema mnogo je bolje ubaciti redove u tabelu koja nije


indeksirana a tek onda kreirati indeks. Kada se kreira indeks i tabela sadr`i

18
podatke Oracle koristi prostor za sortiranje koji je odredjen u memoriji
parametrom SORT_AREA_SIZZE. Ako je indeks vrlo veliki nije lo{e:
 Kreirati novi temporary prostor za tabele
 Promeniti privremeni segment prostor za tabele kreatora indeksa
 Kreirati indekx
 Obrisati privremeni segment prostora za tabele

Tabela mo`e imati neograni~en broj indeksa. Kori{}enje odvojenih prostora za


tabele na razli~itim diskovima za tabele i indekse pobolj{ava performanse.
Administrator u~estvuje u akcijama:

 Kreiranja indeksa
 Promena indeksa
 Brisanja indeksa

Tabele iz re~nika podataka koje su od interesa

USER_INDEXES,ALL_INDEXES,DBA_INDEXES
USER_TABLES,ALL_TABLES,DBA_TABLES
USER_TAB_COLUMNS,ALL_TAB_COLUMNS,DBA_TAB,COLUMNS

Slede}e tabele sadr`e definicije svih korini~ki kreiranih objekata u bazi:

SEG$ segmenti definisani u bazi


OBJ$ korisni~ki objekti u bazi
UNDO$ rollback segmenti definisani u bazi
FET$ dostpuni free ekstenti koji nisu alocirani za neki segment
UET$ ekstenti alocirani za segmente
TS$ prostori za tabele definisani za bazu
FILE$ fajlovi u bazi
FILEXT$fajlovi za podatke sa autoextend opcijom on
TAB$ tabele definisane u bazi
CLU$ klasteri definisani u bazi
IND$ indeksi definisani u bazi
ICOL$ kolone koje imaju indekse definisane na njima
COL$ kolone definisane u tabelama baze
CON$ konstrejni definisani u bazi
CDEF$definicija konstrajna iz con prethodne tabele

Upravljanje rollback segmentima

Kori{}enje vi{e rollback segmenata distribuira sadr`aj rollback segmenata


izmedju vi{e segmenata i pobolj{ava performanse sistema. Vi{e rollback
segmenata je obavezno u slede}im situacijama:

19
Kada vi{e transakcija konkuretno radi vi{e rollback informacija se generi{e u isto
vreme. Administrator mora da utvrdi broj konkurentnih transakcija koje o~ekuje za
instancu parametrom TRANSACTION i da kreira odredjeni rollback segment za
odredjeni broj transakcija koje o~ekuje sa parametrom
TRANSACTION_PER_ROLLBACK_SEGMENT. Kada instanca otvara bazu ona
poku{ava da dodeli najmanje
TRANSACTION_TRANSACTION_PER_ROLLBACK_SEGMENT rollback segmenata da
rukuje maksimalnom koli~inom transakcija. Kada se prethodno utvrdi jasno je
koliko rollback segmenata treba kreirati.

Dodavanje rollback segmenata

Inicijalni rollback segment je SYSTEM (pri kreiranju baze). On je u SYSTEM prostoru


za tabele i on se ne mo`e obrisati. Instanca uvek zahteva SYSTEM rollback
segment kao dopunu ostalim rollback segmentima. Ako postoji vi{e rollback
segmenata Oracle poku{ava da koristi SYSTEM rollback segment samo za
specijalne sistemske transakcije i distribuira korisni~ke transakcije izmedju drugih
rollback segmenata. Ako postoji mnogo transakcija za nesistemske rollback
segmente Oracle koristi SYSTEM segment. Ukupna veli~na rollback segmenata se
odredjuje na osnovu obima transakcija u bazi. Manje transakcije zahtevaju manje
rollback segmente dok transakcije koje traju dugo rade bolje sa ve}im rollback
segmentina.

Primer:

CREATE PUBLIC ROLLBACK SEGMENT proba TABLESPACE users;

Ovako kreiran rollback segment mora da se modifikuje u online stanje.

Promena parametara za sme{tanje za rollback segment se vr{i naredbom ALTER


ROLLBACK SEGMENT STORAGE ...
Rollback segment mo`e biti offline i online. Generalno online rollback segment je
raspolo`iv za kori{}enje transakcija. Rollback segment se prebacuje u offline kada
se prostor za tabele prebacuje u offline stanje a prostor za tabele sadr`i rollback
segmente. Prostor za tabele se ne mo`e prebaciti u offline stanje ako ima rollback
segmente koji se koriste i kada korisnik `eli da obri{e rollback segment ali ne
mo`e jer je on u funkciji (stanje rollback segmenta se mo`e videti iz tabele
DBA_ROLLBACK_SEGS).

Stanje segmenta se menja naredbnom

ALTER ROLLBACK SEGMENT pera online;

Transakcije mogu biti eksplicitno dodeljene odredjenom rollback segmentu


kori{}enjem naredbe SET TRANSACTION sa USE ROLLBACK SEGMENT parametrom

20
i to u slu~aju pode{avanje koli~ine rollback informacija u ekstente dodeljen
rollback segmentima. Na primer po~injemo transakciju koja sadr`i veliku koli~inu
posla mo`e se izvr{iti dodela transakcija ve}em rollback segmentom slede}om
naredbom:

SET TRANSACTION USE ROLLBACK SEGMENT pera;

Posle commit-a slede}a transakcija se dodeljuje automatski bilo kom


dostupupnom rollback segmentu.

Brisanje rolback segmenata se vr{i kada su ekstenti segmenta previ{e


fragmentirani na disku ili segmenti moraju biti alociarani na druge prostore za
tabele. Rollback segment mora biti offline

DROP ROLLBACK SEGMENT ime_segmenta;

Primeri:

SELECT segment_name ,tablespace_name ,status, from sys.dba_rollback_segs;

Upravljanje korisnicima i resursima

Svaka Oracle baza ima listu validnih koriniska baze. Da bi pristupio bazi korisnik
mora da izvr{ava bazne aplikacije i da se konektuje na instancu baze koriste}i
ispravno korisni~ko ime definisano u bazi. Primer kreiranja korisnika:

CREATE USER zeki IDENTIFIED BY pera


DEFAULT TABLESPACE temporary
TEMPORARY TABLESPACE temp
QUOTA 100M ON TEST_TS
QUOTA 500K ON data_ts;

Unutar baze korinsni~ko ime mora bii jedinstveno u odnosu na ostala korisni~ka
imena i uloge. Svaki korisnik ima povezanu {emu. Unutar {eme svaki objekat
{eme mora imati jedinstveno ime. Svaki korisnik ima svoj default prostor za
tabele. Kada korisnik kreira {emu objekata i ne specificira prostor za tabele Oracle
sme{ta objekte u taj default prostor. Takodje svaki korisnik ima svoj privremeni
prostor za tabele. Kada korisnik izvr{ava SQL iskaze koje zahtevaju privremene
segmente Oracle sme{ta segmente u korisni~ki privremeni prostor za tabele. Ako
korisni~ki privremeni prostor za tabele nije eksplicitno postavljen default je
SYSTEM prostor za tabele. Definisanje privremenog prostora za tabele za svakog
korisnika smanjuje sukobe izmedju privremenih segmenata i ostalih tipova
segmenata. Administrator svakom korisniku mo`e dodeliti kvotu za prostore za
tabele koje on koristi. Na taj na~in Oracle ograni~ava koli~inu prostora koja mo`e

21
biti alocirana za sme{tanje korisnikovih objekata u prostoru za tabele. Po defaultu
korisnik nema kvotu u bazi. Korisniku se mo`e oduzeti pristup prostoru za tabele
menjanjem kvote na 0. Administrator mo`e postaviti i default ulogu za korisnika u
CREATE USER naredbi. Kada prvi put kreirate korisnika korisnikova default uloga
se postavlja na ALL {to zna~i da se sve role grantuju na korisni~ku default ulogu.
Promene parametara koje se dobijaju pri kreiranju korisnika mogu se menjati
komandom ALTER USER. Promena passworda za korisnika se vr{e komandom
takodje ALTER USER. Promena korisnike default uloge se vr{i komandom ALTER
USER DEFAULT ROLE.

Brisanje korisnika Kada se obri{e korisnik bri{e se i povezana {ema iz re~nika


podataka i svi objekti sadr`ani u korisnikovoj {emi se takodje bri{u. Korisnik koji je
vezan na bazu ne mo`e biti obrisan. Tabele koje su od koristi za administratore su:

ALL_USERS
USER_USERS
DBA_USERS
USER_TS_QUOTAS
DBA_TS_QUOTAS
USER_RESOURCE_LIMITS
RESOURCE_COST
V$SESSION
V$SESSTAT
V$STATNAME

Primeri

Lista svih korisnika u bazi.


SELECT * FROM sys.dba_users;

Za svakog korisnika izlistaj uloge grantovane za korisnika

SELECT * FROM sys.dba_role_privs WHERE grantee=’ime _korisnika’;

Listanje svih kvota za prostore za tabele dodeljen korisnicima;

SELECT * FROM sys.dba_ts_quotas;

Upravljanje korinikovim privilegijama i ulogama

Privilegije su pravo za izvr{avanje pojedina~nih tipova SQL iskaza ili pravo


pristupa objektima drugih korisnika. Oracle pru`a dve vrste privilegija:

 Sistemske privilegije

22
 Objekt privilegije

Sistemske privilegije su izlistane u delu koji se odnosi na strukturu Oracle baze.

Grantovanje privilegija

Administrator mo`e da grantuje INSERT, UPDATE ili REFERENCES privilegije na


pojedina~ne kolone tabele. Primer:

GRANT INSERT (acct_no)


ON accounts TO scott;

Upravljenje ulogama

Uloge su grupe privilegija ili drugih uloga koje mogu biti dodeljene ili oduzete od
korisnika. Kreiranje role se realizuje preko naredbe CREATE ROLE clerk IDENTIFIED
BY bicentennial; Naravno ime uloge mora biti jednistveno.Slede}e uloge se
automatski defini{u za Oracle bazu. One se defini{u zbog kompatibilnosti sa
starim verzijama Oracle. To su:

CONNECT ALTER SESSION, CREATE CLUSTER CREATE DATABASE LINK CREATE


SEQUENCE CREATE SESSION CREATE SYNONYM CREATE TABLE CREATE VIEW

RESOURCE CREATE CLUSTER CREATE PROCEDURE CREATE SEQUENCE CREATE


TABLE CREATE TRIGER
DBA WITH ADMIN OPTION
EXP_FULL_DATABASE
i IMP_FULL DATABASE

Korisniku se mogu dodeliti role samo do broja koje su specificirane u parametru


MAX_ENABLED_ROLES.

Brisanje role

DROP ROLE clerk;

Sistemske privilegije i uloge mogu biti grantovane ostalim ulogama ili korisnicima
kori{}enjem sql komande GRANT. Primer:

GRANT CREATE SESSION, ACCT_PAY TO JWARD;

Privilegije nad objektima ne mogu biti grantovane zajedno sa sistemskim


privilegijama i ulogama

Sistemske privilegije i uloge mogu biti grantovane sa ADMIN OPTION. Grantovanje


sa ovom opcijom ima nekoliko prednosti:

23
 Davalac prava mo`e da grantuje ili oduzima sistemske privilegije ili uloge bilo
kom korisniku ili drugim ulogama u bazi Korisnik ne mo`e da oduzme pravo
sam sebi
 Davalac prava mo`e dalje da grantuje sistemske privilegije ili uloge sa ADMIN
OPCIJOM
 Davalac prava mo`e da menja ili bri{e uloge
 Davalac prava bez opcije ADMIN OPTION ne mo`e a izvr{ava gore naveden
operacije.

Primer: Administrator grantuje ulogu NEW_DBA korisniku x sa ADMIN OPTION

GRANT new_dba TO x WITH ADMIN OPTION;

Korisnik x ne samo da mo`e da korisnti sve privilegije koje su grantovane ulozi


koju je dobio ve} mo`e da grantuje oduzima ili bri{er NEW_DBA uloge ako je to
neophodno.

Privilegije nad objektima mogu biti grantovane ili ulogama ili korisniku pomo}u
naredbe GRANT. Primer

GRANT select,insert,delete ON emp TO jward , tsmith;

Grantovanje insert privilegije nad objektom emp i to nad kolonoma ENAME i JB


istim korisnicima

GRANT insert(ename,job) ON emp TO jward, tsmith;

Grantovanje svih privilegija nad objektom SALARY korisniku zoki:

GRANT ALL ON salary TO zoki;

Privilegije nad objektima mogu biti grantovane korisniku sa GRANT OPTION. Time
se posti`e da:

 davalac privilegija mo`e grantovati privilegiju objekta svim korisnicima i


ulogama u bazi
 davalac mo`e grantovati privilegije drugim korisnicima sa ili bez grant option
 ako davalac prihvati privilegiju objekta za tabelu sa grant option i ako ima
create view ili create any view sistemsku privilegiju on mo`e da kreira poglede
nad tabelema i da grantuje odgovaraju}e privilegije nad pogledima za bilo kog
korisnika ili ulogu u bazi.

24
Oduzimanje sistemskih prava i ili uloga se ostavaruje naredbom REVOKE

primer: REVOKE create table ,accts_rec FRO smith;

Oduzimanje privilegija nad objektima

Primer REVOKE select, insert on emp FROM jward,tsmith;

Primeri:

Izlistati sve sistemske privilegije grantovane korisnicima ili ulogama:

SELECT * FROM sys.dba_sys_privs;

Lista svih uloga u bazi:

SELECT * from sys.dba_roles;

Za{tita baze i obnavljanje

Izbor izmedju arhiviranja i nearhiviranja

U situacijama kada se desi krah sistema podrazumevaju}i i otkaz diska


administrator mo`e da obnovi sve komitovane transakcije u bazi ako baza radi u
arhivelog modu. U suprotnom mogu}e je povratitit bazu od ta~ke kada je izvr{en
zadnji potpuni backup. Ne mogu se obnoviti kasnije transakcije.

Ako baza radi u arhivelog modu cela baza mo`e biti otvorena i dostupna za
normalno kori{}enje dok administartor radi backup ili obnavlja bazu ili deo baze

U nearhivelog modu administator ne mo`e da izvr{i online backup prostora za


tabele. Samo puni backup mo`e da se koristi kada je baza zatvorena za
obnavljanje baze koja radi u nearhivelog modu. Ako administrator odlu~i da baza
radi u nearhivioranom modu mora da ~esto pravi puni backup.

Ako baza radi u arhivelog modu administartor mora da odlu~i kako }e popunjene
grupe online redo log fajlova biti arhivirane. Instanca mo`e bit konfigurisana tako
da Oracle automatski arhivira popunjene redo log fajlove ili da administrator
ru~no arhivira popunjene grupe.

Obi~no se baza kreira u nerhivelog modu a kasnije administrator treba da odlu~i


da li }e prebaciti bazu u jedan ili drugi mod. Kada se kreira baza postavlja se
inicijalno da li }e ona raditi u arhivelog ili u nearhivelog modu. Ukoliko se ne
navede vrednost default je noarhivelog. Za prebacivanje izmedju jednog u drugi
mod koristi se komanda alter database:

25
ALTER DATABASE ARCHIVELOG;

Pre svi~ovanja iz jednog u drugi mod treba:

 Oboriti instancu
 Backup baze
 Startovati i montirati bez otvaranja
 Prebaciti bazu u arhive mod

Posle toga baza se mo`e normalno koristiti. Za omogu}avanje automatskog


arhiviranja popunjenih grupa svaki put kada se startuje instanca treba postaviti
parametar LOG_ARCHIVE_START na TRUE vrednost u parametar fajlu. Vrednost
ima efekta kada se slede}i put startuje baza.

Za omogu}avanje automatskog arhiviranja popunjenih redo log fajlova bez


obaranja baze odnosno instance koristi se komanda ALTER SYSTEM ARCHIVELOG
START;

Obrnuta akcija je zabrana automatskog arhiviranja. Kada je jednom automatsko


arhiviranje zabranjeno administrator mora ru~no da arhivira grupe online redo log
fajlova. Ako baza radi u archive log modu a automatsko arhiviranje je zabranjeno i
sve grupe online redo log fajlova su popunjene ali ne i arhivirane LGWR ne mo`e
da oslobodi nijednu grupu da nastavi upis. Operacije baze u tom slu~aju su
suspendovane dok se arhiviranje ne izvede. Zabrana automatskog arhiviranja se
mo`e realizovati postavljanjem parametra u parametar fajlu na FALSE ili bez
obaranja baze komandom ALTER SYSTEM ARCHIVELOG STOP. Ako baza radi u
archivelog modu neaktivne grupe popunjenih redo log fajlova moraju biti
arhivirane. Administrator mo`e ru~no da arhivira grupe komandom ALTER SYSTEM
ARCHIVELOG ALL.

Baza u arhiviranom modu mo`e oslabiti u svojim performansama ako je koli~ina


rada arhivera velika. Postoji mogu}nost pode{avanja performansi baze u
arhivelog modu preko dva parametra LOG_ARCHIVE_BUFFERS i
LOG_ARCHIVE_BUFFER_SIZE. Da bi arhiver radio {to sporije bez uticaja na sistem
potrebno je broj bafera postaviti na 1 a njegovu veli~inu na najve}u mogu}u
vrednost. Za pove}anje performansi arhiviranja treba broj bafera poostaviti
minimum na dva tako da arhiver mo`e da ~ita arhivelog u isto vreme kad vr{i
operaciju upisa

Za pra}enje upotrebljenog moda mo`e poslu`iti SELECT naredba

SELECT log_mode FROM sys.V$database;

Za dobijanje liste svih log grupa za bazu mo`e se koristiti naredba:


i

26
SELECT group#,archived FROM sys.v$log;

Backup strategija

Pre kreiranja baze treba odlu~iri kakav je plan za{tite baze od mogu}ih gre{aka.
Postoje tri primarna pitanja na koja teba odgovoriti pre odluke:

 Da li je prihvatljivo gubljenje podataka nekih fajlova koji ~ine bazu prilikom


disk kraha? Ako nije prihvaltjlivo gubljenje podataka baza mora raditit u
ARCHIVELOG modu i to sa kopijama online redo log fajlova. Ako je prihvatljivo
gubljenje ograni~ene koli~ine podataka i slu~aju disk kraha baza mo`e raditi u
NOARCHIVELOG modu ali je neophodan i dodatni rad u smislu arhiviranja
popunjenih online redo log fajlova.
 Da li je ikad potrebno obnavljanje baze od odredjenog trenutka u pro{losti. Ako
jeste, za korekciju gre{aka operacionih ili programskih promena u bazi, baza
mora raditi u ARCHIVELOG modu i mora se vr{iti backup kontrolnih fajlova uvek
kada se rade strukturalne promene. Obnavljanje od odredjene ta~ke u
pro{losti je pogodnost koju ima backup kontrolnih fajlova koji se reflektuje na
strukturu baze
 Da li baza mora biti dostupna sve vreme (24 h sata dnevno sedam dana
nedeljno). U tom slu~aju baza ne sme raditi u NOARCHIVELOG modu jer se
zahtevani puni backup ne mo`e izvr{avati ~esto. Takodje visoko dostupne baze
uvek rade u ACHIVELOG modu zbog online backupa.

Backup strategije u NOARCHIVELOG modu. Ako baza radi u NOARCHIVELOG


modu popunjene grupe online redo log fajlova se ne arhiviraju. Jedina za{tita od
disk kraha je ~e{}i puni backup baze. Slede}a lista obja{njava obradu punog
backupa za bazu koja radi u NOARCHIVELOG modu:

Planiranje punog backupa zavisi od koli~ine podataka koja se mo`e izgubiti. Ako je
dozvoljeno gubljenje rada za celu nedelju treba praviti puni backup jednom
nedeljno. U slu~aju da je dozvoljeno gubljenje dnevnih podataka teba praviti
dnevni backup. Za ve}e baze koje imaju visok stepen rada neprihvatljivo je
gubljenje rada. Baza mora raditi u tom slu~aju u ARCHIVELOG modu.

Kad kod se menja fizi~ka struktura baze koja radi u NOARCHIVELOG modu
istovremeno treba uraditi puni backup. Puni backup {titi da se novu struktura
baze ne reflektuje na prethodni puni backup.

Backup strategije u ARCHIVELOG modu Ako baza radi u ARCHIVELOG modu


popunjene grupe online redo log fajlova se arhiviraju. Arhivirani redo log fajlovi i
puni backup baze mo`e za{titi bazu od disk kraha omogu}uju}i kompletno
obnavljanje kod disk kraha od ta~ke kada se gre{ka javila.

Bakup strategije

27
 Kada se baza inicijalno kreira treba uraditi puni backup cele baze. Ovaj inicijalni
backup je osnova backupa koji omogu}uje kopije svih fajlova za podatke i
kontrolnih fajlova baze.
 Kada se uradi inicijalni backup teba proveriti da li je baza u ARCHIVELOG modu.
 Kasniji puni backup-i nisu zahtevani i ako baza mora biti otvorena sve vreme
puni offline backup nije obavezan. Umesto toga mogu se vr{iti parcijalni
backupi za izmenu backup baze
 Treba praviti online ili offline backup fajlova za podatke zbog izmena
backupovanih informacije za bazu. Treba raditi backup pojedina~nih prostora
za tabele u cilju smanjenja vremena.

Online backup fajlova za podatke se radi ako baza mora birti stalno dostupna.
Svaki put kada se rade strukturalne izmene baze radi se backup kontrolnih fajlova
kori{}enjem ALTER DATABASE sa BACKUP CONTROLFILE opcijom.

Backup

Pre punog ili parcijalnog backupa treba identifikovati sve fajlove za backup. Lista
se dobija naredbom:

SELECT name fFROM V$DATAFILE;

To va`i i za online redo fajlove za bazu:


SELECT member FROM V$LOGFILE;

Ovi upiti listaju sve fajlove za podatke i online redo log fajlove baze. Lista
parametara kontrolnih fajlova se dobija:

SHOW PARAMETER control_files;

Puni backup Za puni backup svih fajlova koji ~ine bazu treba obariti bazu. Puni
backup dok je baza otvorena se radi u slu~aju kraha instance. U tim situacijama
backup nije puni backup jer fajlovi nisu konzistentni. Puni backpu ne zahteva da
baza radi u arhiviranom modu. Puni offline backup se mo`e raditi za bazu koja radi
arhiviranom i nearhiviranom modu. Ako je obnavljanje baze obavezno ovi fajlovi
mogu komplentno da povrate bazu od odredjenog trenutka u pro{losti. Posle
vra}anja backup fajlova dopunski koraci mogu biti zahtevani za obnovljanje baze
od odredjenog trenutka ako baza radi u arhiviranom modu a online redo log fajlovi
nisu obnovljeni.

Priprema za puni backup

Za garanciju da su bazni fajlovi konzistenti uvek treba oboriti bazu sa normal ili
immediate opcijom Nikad ne treba raditi puni backup baze posle gre{ke u instanci
ili nakon obaranja baze sa abort opcijom. U tim slu~ajevima baza nije konzistenta.

28
 oboranje baze sa normal ili immediate opcijom. Svi fajlovi moraju biti zatvoreni.
 backup svih fajlova koji ~ine bazu. Ako postoje kopije online redo log treba
napraviti backup svih ~lanova svake grupe jer ne postoji garancija da je bilo
koji ~lan kompletan. Treba uraditi i backup parametar fajla vezanog za bazu
 restart baze

Paracijalni backup mo`e biti:

 Online prostora za tabele i fajlova za podatke


 Offline prostora za tabele i fajlova za podatke
 Parcijalni backup se radi kada je baza u arhiviranom modu.

Svi fajlovi za podatke pojedina~nog prostora za tabele ili neki fajlovi za podatke
nekog prostora za tabele mogu biti backup dok je prostor za tabele i fajlovi za
podatke online i koriste s e u normalnim operacijama baze.

 Identifikovanje fajlova za podatke Pre po~etka backupa celog prostora za


tabele treba identifikovati sve fajlove za podatke iz DBA_DATA_FILES.
SELECT tablespace_name, file_name
FROM sys.dba_data_files
WHERE tablespce_name=’USERS’;
 Markiranje po~etka online backupa prostora za tabele
 Korisniti BEGIN BACKUP opciju iz ALTER TABLESPACE naredbe
ALTER TABLESPACE users BEGIN BACKUP
 markiranje kraja backupa sa ALTER TABLESPACE users END BACKUP

Odredjivanje status fajlova za podatke iz tabele V$BACKUP. Ova tabela lista sve
online fijlove za podatke i daje njihov status u odnosu na backup.

SELECT file#, status FROM v$backup;

Offline prostori za tabele

Svi ili neki fajlovi za podatke odredjenog prostora za tabele mogu biti backup kada
je prostor za tabele offline. Ostali prostori za tabele se mogu koristiti.

 Identifikacija fajlova u offline prostoru za tabele


 Prebacivanje prostora za tabele offline sa ALTER TABLESPACE users OFFLINE
NORMAL naredbom ~ime svi fajlovi za podatke postaju zatvoreni
 Backup fajlova
 Vra}anje prostora za tabele u online mod naredbom ALTER TABLESPACE users
ONLINE pri ~emu se fajlovi za podatke prostora za tabele otvaraju

29
Backup kontrolnih fajlova

Backup kontrolnih fajlova se radi kada se rade i strukturalne promene baze koja
radi u arhiviranom modu komandom:

ALTER DATABASE BACKUP CONTROLFILE naziv REUSE;

Reuse opcija omogu}uje da novi kontrolni fajl prepi{e kontrolni fajl koji postoji.

Backup kontrolnog fajla sa trace opcijom poma`e u oporavljanju i obnavljanju


kontrolnog fajla. Trace prouzrokuje da se sql komanda upi{e u trace fajl uemsto
pravljenja fizi~kog backupa kontrolnog fajla Ova komanda startuje bazu ponovo
kreira kontrolni fajl i obnavlja i otvara bazu na osnovu strukture kontrolnog fajla.
Svaka komanda je komitovana. Na taj na~in se kopira komanda iz trase fajla u
skript fajl i koristi se skript kod obnavljanja baze ako su sve kopije kontrolnih
fajlova izgubljene.

ALTER DATABASE BACKUP CONTROLFILE TO TRACE NORESETLOGS

Export i import pomera podatke u ili iz baze. Export upisuje podatke iz baze u fajl
operativnog sistema u specijalnom formatu. Import ~ita fajl i sme{ta podatke u
bazu.
Eksport dozvoljava backup baze dok je ona otvorena i dostupna za kori{}enje
najbolje je da baza radi u restrictid modu kada se eksportuje. Postoje tri na~ina za
izvodjenje exporta:

 Export za korisnika
 Export za pojedina~nu tabelu
 Puna baza

Import obnavlja informacije baze iz eksport fajla. Pre toga treba kreirati sve
prostore za tabele.

Obnavljanje baze

Pre obnavljanja baze treba razmotriti:

Test backupa omogu}uje kontrolu arhiviranja i backupa.


Koji tip obnavljanja je poteban da li se desio media krah gubitak online redo log
fajlova itd. Pre obnavljanja baze treba odrediti koja se operacija vr{i kao i koje
operacije obnavljanja su dostupne
Ako je baza u nearhiviranom modu korisnicima je dostupna samo jedna recovery
opcija koja obnavlja zadnji puni backup
Pomeranje fajlova

30
Cilj obnavljanja baze je vra}anje baze u fazu kada je dostupna za kori{}enje od
strane svih korisnika.

Primeri procedura za obnavljanje

Tipovi gre{aka Disk gre{ke se javljaju u dve generalne kategorije i to permanente


i privremene. Permanente gre{ke na disku su ozbiljni hardverski problemi koji
prouzrokuju permanentno gubljenje podataka na disku. Izgubljeni podaci ne mogu
biti obnovljeni osim zamenom pokvarenog uredjaja i obnavljanjem podataka iz
backupa. Privremene gre{ke diska su hardverski problemi koji dovode do toga da
podaci budu privremeno nepristupa~ni. Ove gre{ke ne dovode do korupcije
podataka. To su :

 Pad disk kontrolera kada se promeni kontroler podaci su opet tu


 Napajanje uredjaja je off. Kada se on ponovo uklju~i podaci su pristupa~ni

Gubitak podataka

Gubitak podataka kada baza radi u nearhiviranom modu. Ako se javila


permanenta ili privremena gre{ka diska baze koja radi nearhiviranom modu
Oracle automatski ubija bazu. Zavisno od tipa gre{ke postoje dve mogu}nosti:

Ako je gre{ka privremena treba otkloniti privremeni hardverski problem i


restartovati bazu. Potrebno je obnavljanje instance pri ~emu se mogu obnoviti i
sve komitovane transakcije kori{}enjem online redo log.

Ako je gre{ka stalan treba oboriti bazu sa abort opciojom, i primeniti zadnji
backup. Svi fajlovi za podatke i kontrolni fajlovi moraju biti povra}eni a ne samo
pokvareni fajlovi. Posle toga treba startovati instancu i na kraju uraditi ALTER
DATABASE OPEN RESETLOGS ~ime se otvara bazu i resetuje odgovaraju}a log
sekvenca na 1.

Gubitak podataka u arhiviranom modu Ako se u bazi koja radi u arhiviranom modu
javila privremena ili permanentna gre{ka koja uti~e na fajlove za podatke
SYSTEM prostora za tabele ili bilo koji fajl koji sadr`i aktivni rollback segment baza
je lo{a i treba je automatski oboriti. Ako je problem privremen treba otkloniti
problem i restartovati bazu. U suprotnom treba primeniti komplentno obnovljanje
baze.

Ako gre{ke uti~u na redo log baze, procedura koju treba primeniti zavisi od
konfiguracije redo log fajlova odnosno da li postoje kopije redo log fajlova ili ne
kako i od tipa online redo log fajlova na koji je gre{ka ostavila uticaj i to da li je
bio u upotebi, da li je bio akvitan, nearhiviran ili neaktivan.

Obnavljanje od korisni~kih gre{aka

31
Slu~ajne gre{ke su ~este i takodje mogu da uti~u na raspolo`ivosa podaka.

32

You might also like