Najvažniji zadatak svakog Oracle DBA je da se pobrine da u svakom trenutku na raspolaganju ima najsvežiji
backup baze u slučaju da se desi neka nepredviđena situacija u kojoj može doći do gubitka podataka u bazi. Ako bi došlo do te situacije Oracle DBA je dužan da bazu, tj. podatke u njoj, vrati u stanje u koje je bila prije nego što se problem desio.
Postoje dvije osnovne vrste
backup-a Oracle baze podataka:
Fizički backup i
Logički backup.
Prvo ću objasniti dva osnovna tipa "kvara" koji mogu prouzrokovati gubitak ili oštećenje podataka u Oracle bazi podataka, a to su korisničke greške (logička korupcija podataka) i sistemski "ispadi" (fizička korupcija podataka).
1. Logička korupcija podataka nastaje kada korisnik na bazi svojom nepažnjom, neznanjem ili zbog propusta na aplikaciji sa kojom radi izazove gubitak ili oštećenje podataka.
2. Fizička korupcija podataka može nastati u sledećim situacijama: zbog otkazivanja diska na serveru na kojem su smješteni Oracle
data fajlovi, zbog neočekivanog i naglog gašenja servera (nestanak električnog napajanja), zbog problema sa operativnim sistemom na serveru na kojem je instalirana Oracle baza podataka, zbog nepažnje administratora (slučajno brisanje baznih
data fajlova), itd.
Način oporavka Oracle baze zavisi od načina na koji je napravljen
backup, zato za svaku metodu
backup-a postoji posebna (odgovarajuća) metoda oporavka.
Kao što sam već rekao
backup Oracle baze podataka može se napraviti u vidu fizičkog
backup-a cjelokupne baze podataka ili u vidu logičkog
export-a (
backup-a) važnih (korisničkih) podataka.
1. Fizički backup Oracle baze podataka podrazumijeva kreiranje rezervne kopije cjelokupne baze podataka, tj. svih njenih fajlova. Fizički
backup Oracle baze podataka može se napraviti na dva osnovna načina, odnosno metoda:
User Managed backup i
RMAN backup.
-
User Managed backup predstavlja kreiranje rezervnih kopija Oracle baze podataka pomoću komandi operativnog sistema na kojem je baza instalirana. Ova metoda podrazumijeva prosto kopiranje svih baznih fajlova iz foldera u kojima se oni nalaze na neku bezbjednu lokaciju (drugi disk ili neki
network share). Međutim, ako baza radi u
NOARCHIVELOG modu, da bi
backup bio validan, tj. da bi podaci u bazi bili konzistentni, ovakav način
backup-a Oracle baze podataka može se vršiti samo ako je baza ugašena (
offline). Zato je za ovakav način backup-a najbolje napraviti skriptu koja će prije početka
backup-a ugasiti bazu, napraviti njen
backup (opciono uraditi kompresiju
backup fajlova) i na kraju startovati bazu, i onda podesiti da se ta skripta pokreće u neko vrijeme kada niko ne radi na bazi. U nekim slučajevima nije moguće gasiti Oracle bazu podataka ni u kojem trenutku, da bi se napravio
backup ovakve baze ta baza mora raditi u
ARCHIVELOG modu.
Procedura je sledeća:
- Prvo se podesi da baza radi u
backup modu komandom (kao SYS user):
SQL> alter database begin backup;
- Zatim se izvrši
backup svih Oracle baznih fajlova.
- Nakon toga, podesi se da baza radi u normalnom modu komandom:
SQL> alter database end backup;
- Na kraju izvrši se
backup svih
arhiviranih redo log fajlova koji su nastali u periodu od početka do kraja
backup-a Oracle baze podataka.
Takođe, i ovaj vid
backup-a je moguće automatizovati pisanjem
backup skripti na nivou operativnog sistema.
Međutim,
User Managed backup Oracle baze podataka ima par nedostataka zbog kojih se ovaj metod rijetko primjenjuje. Nedostaci ovog metoda su: ponekad komplikovana i spora
restore/recovery procedura (procedura oporavka Oracle baza podataka), zatim administrator mora da pamti (ili da zna) gdje je i kad napravljen poslednji
backup, kao i da se brine o tome da medium na koji se smješta
backup ne ostane bez slobodnog prostora, moguće je napraviti samo
full backup cjelokupne baze podataka, itd.
-
RMAN backup predstavlja metod kreiranja rezervne kopije Oracle baze podataka upotrebom
Recovery Manager (RMAN) alata koji se instalira zajedno sa Oracle bazom podataka.
RMAN alat je vrlo moćan alat koji u značajnoj mjeri olakšava posao Oracle DB administratorima. Kada se jednom podesi
RMAN preuzima na sebe cio proces
backup-a i oporavka (
restore/recovery) Oracle baze podataka. Pored toga
RMAN omogućava i napredne metode
backup-a Oracle baze podataka kao npr. inkrementalni
backup.
Podešavanje RMAN-a:
Postoje dva načina podešavanja
RMAN-a za
backup Oracle baze podataka: podešavanje pomoću
Control fajlova i podešavanje pomoću
RECOVERY CATALOG-a. Ako se za podešavanje
RMAN-a koriste
Control fajlovi procedura je sledeća:
- Konekcija na RMAN:
$ cd $ORACLE_HOME/bin
$ rman target sys/
pass@
DBSID nocatalog
npr.
- Konfiguracija
RMAN-a:
Komandom
RMAN> show all;
Dobijamo sva aktuelna podešenja
Recovery Manager-a.
Ovdje se komandom
CONFIGURE ... mogu podesiti željena podešenja. Npr. može se podesiti da
RMAN čuva zadnja tri
backup-a Oracle baze podataka, umjesto zadnja dva kako je to trenutno podešeno:
I tako dalje ... ovdje se može podesiti format
backup-a, lokacija
backup-a i još dosta parametara.
Backup Oracle baze pomoću RMAN-a:
Za
backup Oracle baze pomoću
RMAN-a dovoljno je pokrenuti sledeću komandu (pod uslovom da baza radi u
ARCHIVELOG modu):
RMAN> backup database;
Takođe, za oporavak dovoljo je pokrenuti samo dvije komande i
RMAN će uraditi oporavak baze iz poslednjeg validnog
backup-a. Komande su:
RMAN> restore database;
i
RMAN> recover database;
Za konfiguraciju
RMAN-a pomoću
RECOVERY CATALOG-a potrebno je kreirati posebnu Oracle bazu (na posebnom serveru) u koju će se smještati podaci o
backup-u produkcione Oracle baze podataka. Konfiguraciju
RMAN-a pomoću
RECOVERY CATALOG-a objasnići u nekom narednom
post-u.
2. Logički backup podataka podrazumijeva upotrebu odgovarajućih Oracle-ovih alata za
export korisničkih podataka iz Oracle baze podataka. Postoje dva ovakva alata:
exp i
expdp (
DataPump).
Ovi alati Oracle DB administratoru omogućavaju
backup samo važnih (korisničkih) podataka iz Oracle baze podataka, mada ovim se alatima može napraviti
backup i cijele Oracle baze podataka.
Međutim, glavna funkcija ovih alata je omogućavanja kopiranja korisničkih podataka iz jedna Oracle baze u drugu Oracle bazu.
EXP alat je prosti alat za kreiranje
export-a (
backup-a) podataka iz neke
schema-e.
Evo kako radi:
$ cd $ORACLE_HOME/bin
$ exp schema/pass@DBSID file=/home/oracle/schema_exp.dmp log=/home/oracle/schema_exp.log
EXPDP je napredniji alat za kreiranje
export-a podataka iz neke
schema-e i njega ću detaljnije opisati u nekom narednom
post-u.