Tuesday, January 28, 2014

Oracle DB - User/Schema


Za pristup Oracle bazi podataka (odnosno podacima u bazi) koriste se korisnički nalozi. Ti korisnički nalozi nazivaju se USER-i. To su "obični" korisnički nalozi, pored njih postoje i "specijalni" korisnički nalozi koji se nazivaju SCHEMA-e. SCHEMA-ma se nazivaju oni USER-i koji imaju privilegije da kreiraju objekte (tabele, view-e, procedure ili funkcije) i koji posjeduju neki od objekata na bazi. Dakle, SCHEMA-e su USER-i koji posjeduju svoje podatke u Oracle bazi podataka, a USER-i su korisnički nalozi (korisnici) kojima se daju privilegije za pristup određenim podacima čiji su vlasnici SCHEMA-e.

Prilikom instalacije Oracle baze podataka kreiraju se i neke default-ne SCHEMA-e od kojih su najvažnije SCHEMA-e SYS i SYSTEM. Spisak ostalih default-nih USER-a/SCHEMA možete pogledati na link-u.

SYS SCHEMA je vlasnik Oracle Data Dictionary-a, odnosno Catalog-a. Catalog sadrži sve podatke o samoj bazi, njenoj strukturi i konfiguraciji. SYS je ujedno i glavni (ROOT) administratorski nalog na bazi. Koristi se za administraciju same baze. Prilikom konekcije na bazu sa nalogom SYS mora se navesti i sa kojom se ROLE-om vrši konekcija. Moguće ROLE su SYSDBA i SYSOPER.

SYSTEM je default-ni DBA (Administratorski) nalog na bazi. Koristi se za administraciju korisnika na bazi, i u određenoj mjeri za administraciju same baze podataka.




Da bi kreirali USER-a na Oracle bazi podataka moramo se prvo prijaviti na bazu kao SYSTEM user:

$ sqlplus /nolog



SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 28 12:14:03 2014



Copyright (c) 1982, 2013, Oracle.  All rights reserved.



SQL> conn system

Enter password:

Connected.

SQL>


Zatim izvršimo naredbu za kreiranje USER-a:

SQL> create user testuser1 identified by testpass1;



User created.


Ovom naredbom kreiran je USER testuser1 sa lozinkom testpass1. Ovako kreiran USER nema nikakve privilegije na bazi, čak ne može ni pristupiti bazi. Da bi USER testuser1 mogao pristupiti bazi moraju mu se dati privilegije za to:

SQL> grant create session to testuser1;



Grant succeeded.


Sada se user testuser1 može ulogovati na bazu ali ne može ništa drugo uraditi. Da bi USER mogao nešto raditi na bazi za to mu se moraju dodati odgovarajuća prava. Korisnička prava USER-u mogu se dati i dodavanjem ROLE-a (skupa privilegija/prava). Neke od "ugrađenih" ROLE-a su: connect, resource i dba. Moguće je kreirati i custom ROLE.

Komanda za kreiranje SCHEMA-e je slična komandi za kreiranje USER-a, takođe, mora je izvršiti SYSTEM user:

SQL> CREATE USER testschema1 IDENTIFIED BY testpass2 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;



User created.


Sada je potrebno dodati odgovarajuće privilegije SCHEMA-i testschema1:

SQL> grant connect, resource to testschema1;



Grant succeeded.


Konektujmo se na bazu kao USER testschema1:

SQL> conn testschema1

Enter password:

Connected.


Sada možemo kreirati neku tabelu u SCHEMA-i testschema1:

SQL> CREATE TABLE korisnici (ID NUMBER(3) PRIMARY KEY,Ime VARCHAR2(10) NOT NULL,Prezime VARCHAR2(16),Datum_kreiranja DATE DEFAULT (sysdate));



Table created.



SQL> select * from cat;



TABLE_NAME                     TABLE_TYPE

------------------------------       -----------

KORISNICI                           TABLE



Unesimo neki podatak u tabelu korisnici:

SQL> insert into korisnici(ID,Ime,Prezime,Datum_kreiranja) values(1,'Suad','Adrovic',sysdate);



1 row created.



SQL> select * from korisnici;



        ID   IME        PREZIME          DATUM_KREI

----------  ---------- ----------------       ----------

         1    Suad       Adrovic               28.01.2014


Dodajmo  sada pravo pregleda tabele korisnici USER-u testuser1:

SQL> grant select on korisnici to testuser1;



Grant succeeded.


Provjerimo sada da li USER testuser1 ima pristup tabeli korisnici čiji je vlasnik SCHEMA testchema1:

SQL> conn testuser1
Enter password:
Connected.

SQL> select * from testschema1.korisnici;



          ID      IME        PREZIME          DATUM_KREI

---------- ----------    ----------------          ----------

         1        Suad             Adrovic          28.01.2014



Spisak privilegija i ROLE-a koje USER/SCHEMA mogu imati možete pogledati na link-u.


Thursday, January 23, 2014

Oracle DB - "geneza" - strip


Na sajtu OracleAlchemist.com našao sam ovaj smiješni strip o "genezi"  Oracle baze podataka i morao sam da ga objavim.




Razumjeće ga svi Oracle database administratori.




Windows/Linux server - Quick Info


Često se desi da moram izvršiti intervenciju na nekom serveru čije karakteristike ne znam. Najbrži i najlakši način da saznam sve što me interesuje o datom serveru jeste upotreba odgovarajućih sistemskih komandi.

Ako je na serveru instaliran Windows OS sve informacije mogu dobiti pomoću samo jedne komande.

Procedura je sledeća:

1. Ulogovati se na server sa administratorskim privilegijama

2. Pokrenuti Command Prompt (Start -> Run -> cmd)

3. Otkucati komandu:

systeminfo


Pomoću komande systeminfo moguće je dobiti sve neophodne informacije o Operativnom Sistemu i sve informacije o hardware-u koji je instaliran na serveru.

Output navedne komande izgleda ovako:



Radi lakše analize moguće je kreirati tekstualni fajl komandom:

systeminfo > SysInfo.txt 


Kada je u pitanju Unix/Linux OS za brzo dobijanje informacija o serveru najbolje je koristiti neku shell skriptu. Ja najčešće korisitim skripu:


#!/bin/bash
#
SYSINFO=`head -n 1 /etc/issue`
IFS=$'\n'
UPTIME=`uptime`
D_UP=${UPTIME:1}
MYGROUPS=`groups`
DATE=`date`
KERNEL=`uname -a`
CPWD=`pwd`
ME=`whoami`
CPU=`arch`

printf "<=== SYSTEM ===>\n"
echo "  Distro info:    "$SYSINFO""
printf "  Kernel:\t"$KERNEL"\n"
printf "  Uptime:\t"$D_UP"\n"
free -mot | awk '
/Mem/{print "  Memory:\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb"}
/Swap/{print "  Swap:\t\tTotal: " $2 "Mb\tUsed: " $3 "Mb\tFree: " $4 "Mb"}'
printf "  Architecture:\t"$CPU"\n"
cat /proc/cpuinfo | grep "model name\|processor" | awk '
/processor/{printf "  Processor:\t" $3 " : " }
/model\ name/{
i=4
while(i<=NF){
        printf $i
        if(i<NF){
                printf " "
        }
        i++
}
printf "\n"
}'
printf "  Date:\t\t"$DATE"\n"
printf "\n<=== USER ===>\n"
printf "  User:\t\t"$ME" (uid:"$UID")\n"
printf "  Groups:\t"$MYGROUPS"\n"
printf "  Working dir:\t"$CPWD"\n"
printf "  Home dir:\t"$HOME"\n"
printf "\n<=== NETWORK ===>\n"
printf "  Hostname:\t"$HOSTNAME"\n"
ip -o addr | awk '/inet /{print "  IP (" $2 "):\t" $4}'
/sbin/route -n | awk '/^0.0.0.0/{ printf "  Gateway:\t"$2"\n" }'
cat /etc/resolv.conf | awk '/^nameserver/{ printf "  Name Server:\t" $2 "\n"}'


Procedura za kreiranje i izvršavanje shell skripte je sledeća:

1. Kopirati navedenu skriptu

2. Na Unix/Linux serveru pokrenuti terminal (kao root user) ili uspostaviti SSH konekciju sa radne stanice (takođe, kao root user)

3. Kreirati shell script fajl komandom:

 # vi info.sh

4. Pritisnuti taster "i" i paste-ovati kopiranu skriptu u ovaj fajl

5. Snimiti fajl i izaći iz VI editora na sledeći način: pritisnuti dugme ESC i kucati komandu

:wq

6. Napraviti izvršnu shell skriptu komandom:

# chmod +x info.sh


7.  Pokrenuti skriptu komandom:

# ./info.sh


Dobijaju se sledeće informacije:



Takođe, i ovdje je moguće kreirati tekstualni fajl radi lakše analize, komanda je slična:

# ./info.sh > SysInfo.txt




Tuesday, January 21, 2014

Oracle DB - Instanca


Oracle baznu instancu čini rezervisani memorijski prostor na serveru i skup Oracle baznih procesa. Pod rezervisanim memorijskim prostorom podrazumijeva se prostor u RAM memoriji servera koji je Oracle baza podataka "rezervisala" za sebe. Taj prostor u RAM-u servera naziva se SGA (System Global Area). Pored SGA prostora, Oracel baza podataka "zauzima" dodatni prostor u RAM-u za rad svojih procesa. Taj prostor u RAM-u naziva se PGA (Program Global Area).

SGA

Oracle SGA predstavlja ovir memorijskog prostora koji je potreban procesima Oracle baze podataka za njihov rad. U okviru SGA prostora izdvajaju se posebne memorijske (buffer) cjeline. Najtipičnije memorijske cjeline u okviru SGA memoriskog prostora su:

buffer cache ili "database buffer cache" - predstavlja prostor u RAM-u u koji se smještaju podaci koji su pročitani iz baznog data fajla s ciljem dalje obrade pomoću SQL naredbi

shared pool - predstavlja memorijski keš (cache) parsiranih često korišćenih SQL naredbi

redo log buffer - sadrži informacije o komitovanim transakcijama koje baza još nije upisala u Redo Log fajl

dictionary cache - sadrži informacije o data dictionary (sistemskim) tabelama, kao npr. informacije o korisničkim nalozima, data-fajlovima, segmentima, ekstentima, tabelama i privilegijama

java pool - služi za parsiranje JAVA naredbi

library cache - sadrži SQL naredbe, PL/SQL procedure i pakete, kao i kontrolne strukture kao npr. lock-ove

large pool - je prostor u RAM-u koji je rezervisan za posebne sistemske operacije: Backup/Restore, serverske I/O operacije, ...


Pored ovih memorijskih struktura postoje i neke druge, ali one se kreiraju zavisno od opcija koje Oracle baza koristi. Neke od dodatnih memorijskih struktura su: streams pool, nk buffer cache (n veličina baznog bloka), itd.

Grafički, SGA bi mogla da se predstavi na sledeći način:


Veličina SGA memorije definiše se prilikom instalacije Oracle baze podataka, a moguća je i naknadna modifikacija njene veličine. Počevši od 10g verzije Oracle baze podataka uvodi se i novi pojam vezan za SGA, a to je Automatic Memory Management (AMM). AMM obogućava automatizaciju podešavanja SGA memorijskog prostora, uvode se novi parametri, ... ali o tome će mo kasnije.


Oracle bazni procesi

Drugu komponentu Oracle bazne instance čine Oracle bazni procesi. Osnovi Oracle bazni procesi su:

database writer (DBWn) - proces koji je zadužen za upisivanje sadržaja baznog buffer cache-a u data fajl. n označava redni broj procesa

log writer (LGWR) - proces koji je zadužen za upisivanje redo log podataka u Redo Log fajl. Redo log podaci se generišu u redo log baferu u okviru SGA memorije

checkpoint (CKPT) - u specifičnim vremenskim intervalima bazni proces DBWn vrši upisivanje svih modifikovanih podataka koji se nalaze u baznom baferu SGA memorije u bazni data fajl. Taj događaj se naziva checkpoint

system monitor (SMON) - proces izvršava proceduru za oporavak instance prilikom njenog startovanja u slučaju da je instanca nepropisno prestala sa radom. SMON, takođe, vrši brisanje privremenih (temporary) segmenata koji se više ne koriste kao i oporavak "mrtvih" transakcija koje su nastale "padom" sistema
 
process monitor (PMON) - proces koji je zadužen za oporavak korisničkog procesa u slučaju da je došlo do nekog problema prilikom rada korisnika na bazi. PMON proces zadužen je i za "čišćenje" keša (cache-a) i oslobađanje resursa koje je korisnički proces koristio

archiver (ARCn) - proces koji je zadužen za kopiranje (arhiviranje) "punih" Redo Log-ova prije njihovog brisanja. ARCn proces postoji samo ako Oracle baza radi u ARCHIVE LOG modu.


Pored nabrojanih procesa postoji još veliki broj procesa koji se aktiviraju u slučaju da je uključena neka dodatna opcija na Oracle bazi podataka .


Instanca se grafički može predstaviti na sledeći način:





Thursday, January 16, 2014

Oracle DB - Koncept i terminologija


Ako na nekom serveru imamo instaliranu Oracle RDBMS bazu podataka takvu instalaciju nazivamo ORACLE Server.

ORACLE Server se sastoji iz dvije komponente: Instance i Baze podataka. Često se javlja zabuna tako da ljudi miješaju ova dva pojma. Objasnimo ih:

Instancu čine Oracle procesi i alocirana memorija (SGA + PGA) na serveru. Instanca omogućava rad korisnika sa Oracle bazom podataka.

Bazu podataka predstavljaju svi bazni fajlovi koji se nalaze na fajl sistemu servera, a to su: Oracle Data fajlovi, Redo log fajlovi, kontrolni fajlovi i inicijalizacioni fajlovi.

Miješanje pojmova Instance i baze podataka najverovatnije je posledica njihovog imenovanja, naime pri instalaciji Oracle RDBMS baze podataka na jedanom serveru ime instance i baze podataka je isto:

SQL> select instance_name from v$instance;



INSTANCE_NAME

----------------

ora11g



SQL> select name from v$database;



NAME

---------

ORA11G


Ali prilikom klasterskih (RAC) instalacija Oracle RDBMS baze podataka na dva ili više servera kreira se samo jedna baza (sa jedinstvenim imenom) i veći broj instanci (na svakom serveru klastera po jedna).

Oracle baznu instancu detaljnije ću objasniti na nekom od sledećih postova.





Windows - Spisak instaliranog software-a


Ovo je, po meni, najlakši i najbrži način dobijanja spiska svog instaliranog software-a na Windows operativnom sistemu.

Procedura je sledeća:

1. Kopirati skriptu:


Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
strComputer = "."
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strEntry1a = "DisplayName"
strEntry1b = "QuietDisplayName"
strEntry2 = "InstallDate"
strEntry3 = "VersionMajor"
strEntry4 = "VersionMinor"
strEntry5 = "EstimatedSize"

Set objReg = GetObject("winmgmts://" & strComputer & _
 "/root/default:StdRegProv")
objReg.EnumKey HKLM, strKey, arrSubkeys
WScript.Echo "Installed Applications" & VbCrLf
For Each strSubkey In arrSubkeys
  intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _
   strEntry1a, strValue1)
  If intRet1 <> 0 Then
    objReg.GetStringValue HKLM, strKey & strSubkey, _
     strEntry1b, strValue1
  End If
  If strValue1 <> "" Then
    WScript.Echo VbCrLf & "Display Name: " & strValue1
  End If
  objReg.GetStringValue HKLM, strKey & strSubkey, _
   strEntry2, strValue2
  If strValue2 <> "" Then
    WScript.Echo "Install Date: " & strValue2
  End If
  objReg.GetDWORDValue HKLM, strKey & strSubkey, _
   strEntry3, intValue3
  objReg.GetDWORDValue HKLM, strKey & strSubkey, _
   strEntry4, intValue4
  If intValue3 <> "" Then
     WScript.Echo "Version: " & intValue3 & "." & intValue4
  End If
  objReg.GetDWORDValue HKLM, strKey & strSubkey, _
   strEntry5, intValue5
  If intValue5 <> "" Then
    WScript.Echo "Estimated Size: " & Round(intValue5/1024, 3) & " megabytes"
  End If
Next



2. Negdje na fajl sistemu kreirati fajl soft.vbs i u njega kopirati skriptu iz koraka 1.

3. Pokrenuti Windows Command Prompt (Start -> RUN: cmd) i pozicionirati se u folder gdje je smještena skripta soft.vbs.

4. Skriptu pokrenuti pomoću sledeće komande:

 cscript //nologo soft.vbs > install.txt


Na primjer, ako je skripta smještena u root direktorijumu C: diska, to bi izgledalo ovako:






Nakon toga dobija se fajl install.txt koji sadrži spisak svog instaliranog software-a na sistemu.



 

Tuesday, January 14, 2014

Oracle DB – Arhitektura – Drugi dio


Logička struktura Oracle RDBMS baze podataka




Logički Oracle RDBMS baza podataka podijeljena je na logičke jedinice koje se zovu TABLESPACE-ovi. Tablespace predstavlja logičku grupaciju podataka, odnosno svih objekata koji pripadaju nekoj aplikaciji. Svaki tablespace može obuhvatati jedan ili više Baznih Data fajlova. Svaka Oracle RDBMS baza podataka podijeljena je na više tablespace-ova, osnovni tablespace-ovi su: SYSTEM, SYSAUX, UNDO, USERS i TEMP.

U SYSTEM tablespace Oracle baza podataka smiješta podatke koji su važni za rad same baze, a to su podaci o kreiranju novih data fajlova, povećanju njihove veličine, podaci o kreitanju tablespace-ova, itd.

SYSAUX tablespace je predstavljen u Oracle RDBMS verziji 10gR1 i namijenjen je za smiještanje podataka o performansama rada baze podataka.

UNDO tablespace, takođe predstavljen u Oracle RDBMS verziji 10gR1, namijenjen  je za smještanje undo podataka. Undo podaci su originalni podaci iz tabele koji se privremeno smještaju u UNDO tablespace kada korisnik izvršava delete ili update operacije nad podacima u tabeli. Undo podaci su neophodni zbog održavanja konzistentnosti podataka u slučaju da korisnik ne želi snimiti promjene nad podacima koje je napravio pomoću operacija delete i update, ili se desio neki problem na sistemu a korisnik nije snimio svoje izmjene.

USERS tablespace namijenjen je za smiještanje podataka koje unosi korisnik ili za podatke koje koristi neka aplikacija. Obično, za svaku aplikaciju kreira se poseban tablespace.

TEMP tablespace koristi se za privremeno smiještanje podataka prilikom sortiranja pri izvršenju SQL koda.   

Najsitnija logička podjela je podjela tablespace-a na extent-e. Extent-i predstavljaju specifične skupove kontinualnih data blokova koji se nalaze na jednoj lokaciji u kojima se smiještaju specifični tipovi informacija.

Pored extent-a, tablespace se logički dijeli i na segment-e. Segment-i su, prosto rečeno, grupe extent-a koji su predefinisani za neku logičku strukturu. Postoji više tipova segment-a, a to su:

Data segment - Svaka tabela je ustvari data segment. Svi podaci koji se nalaze u tabelama nalaze se u extent-ima data segment-a.

Index segment – Svaki index je ustvari index segment.

Temporary segment – Ovaj tip segmenta se kreira samo u trenutku kada je nekoj SQL operaciji potreban privremeni (temporary) prostor u bazi kako bi se ona izvršila. Nakon toga ovaj privremeni prostor na bazi se oslobađa.

Rollback segment U ranijim verzijama (prije verzije 10gR1) Oracle RDBMS baze podataka koristile su rollback segment-e za smiještanje undo podataka. Informacije koje su se nalazile u rollback segment-ima korišćene su u toku oporavka baze kako bi se obezbijedila konzistentnost podataka. Međutim, novije verzije Oracle baza podataka rade u automatic undo managment modu tako da baza za undo podatke koristi poseban (UNDO) tablespace.

Grafički, tablespace bi moglo da se predstavi ovako:




Bitno je napomenuti da postoje i različite vrste tablespace-ova zavisno od veličine baznog bloka. Default-na veličina baznog bloka je 8k. Bazni blok može imati vrijednost od 2k do 32k. Veličina bloka može se definisati na nivou cijelog sistema (baze) ili na nivou tablespace-a. Izbor veličine baznog bloka prevashodno zavisi od namjene Oracle RDBMS baze podataka (da li je to Warehouse ili Transakciona baza).

Postoji još jedna podjela tablespace-a na smalfile i bigfile tablespace. Smalfile tablespace je default-ni tablespace format koji je opisan u prethodnom tekstu. Bigfile tablespace je specijalni tip tablespace-a koji može imati samo jedan data fajl ali njegova veličina može biti dosta velika (zavisno od veličine baznog bloka tablespace-a). 

Logička struktura Oracle RDBMS baze podataka grafički se može predstaviti na sledeći način:




Monday, January 13, 2014

Oracle DB – Arhitektura – Prvi dio




Arhitektura Oracle RDBMS baze podataka najbolje se može razumjeti ako se struktura baze posmatra na dva načina: fizički i logički. Oracle baza podataka ima svoju fizičku strukturu i svoju logičku strukturu. Pored toga, arhitektura Oracle RDBMS baze podataka (i fizička i logička) razlikuje se i od verzije do verzije Oracle RDBMS software-a.

Fizička struktura Oracle RDBMS baze podataka

Fizičku strukturu Oracle RDBMS baze podataka čine fajlovi koji pripadaju bazi i koji se nalaze na fajl sistemu servera, a to su sledeći fajlovi: 

-          Parametarski fajlovi (Parameter Files)
-          Kontrolni fajlovi (Control Files)
-          Bazni Data fajlovi (Datafiles)
-          Redo Log fajlovi (Redo Log Files)
-          Arhivirani Redo Log fajlovi (Archive Log Files)
-          Alert i Trace fajlovi (Alert and Trace Log Files)
-          Password file
-          Backup fajlovi (Backup Files)


Parametarski fajlovi su osnovni fajlovi Oracle RDBMS baze podataka, oni sadrže listu konfiguracionih parametara za startovanje i rad baze podataka. Postoje dvije vrste parametarskih fajlova: statički (initialization parameter fileinit[SID].ora) parametarski fajl i dinamički (server parameter filespfile[SID].ora) parametarski fajl. Razlika se može naslutiti iz samih imena ovih fajlova, statički parametarski fajl se ne može mijenjati dok je baza aktivna (to je prosti text fajl, može se editovati bilo kojim text editorom), dok se dinamički parametarski fajl može mijenjati samo dok je baza aktivna i to pomoću SQLPlus prompta. Oracle baza podataka u toku svog rada može imati samo jedan aktivan paramatarski fajl. Dinamički parametarski fajl pojavio se u Oracle 9i verziji RDBMS baze podataka, a od verzije 10gR2 to je i default-ni parametarski fajl.

Kontrolni fajlovi su, takođe, osnovni fajlovi Oracle RDBMS baze podataka, i oni sadrže informacije o fizičkoj strukturi Oracle baze podataka, a to su sledeće informacije: ime baze, imena i lokacije baznih data fajlova i redo log fajlova i time stamp vremena kada je baza kreirana. Kontrolni fajlovi su binarni fajlovi koji su po default-u multipleksirani, tj. kreiraju se dva ili više kontorlna fajla sa istovetnim sadržajem.

Bazni Data fajlovi su fizički fajlovi na fajl sistemu servera u kojima se nalaze podaci koji se smještaju u bazu, bilo od strane korisnika koji rade na bazi bilo od same baze koja sama tu smješta informacije o svom radu. Data fajlovi su, takođe, osnovni fajlovi Oracle RDBMS baze podataka.

Redo Log fajlovi su osnovni fajlovi Oracle RDBMS baze podataka, to su log fajlovi koji bilježe sve što se u bazi radi. Redo Log fajlovi su organizovani po grupama, obično se kreiraju po tri grupe, mada je dobro imati ih što je više moguće i to na posebnim diskovima. Svaka Redo Log grupa mora imati makar po jedan log fajl (najbolje je imati ih maka po dva). Informacije koje se nalaze u Redo Log fajlovima služe za oporavak baze u slučaju da se desi neki neočekivani događaj (nestanak struje, neočekivani restart servera, ...). Oracle Redo Log fajlovi su rotirajući log fajlovi, tj. kada se jedna Redo Log grupa napuni aktivira se sledeća log grupa koja postaje aktivna Redo Log grupa, a podaci u staroj log grupi se brišu i tako u krug.

Arhivirani Redo Log fajlovi se kreiraju samo ako Oracle baza podataka radi u ARCHIVE LOG modu. To su opcioni Oracle RDBMS bazni fajlovi. Kada Oracle baza radi u ARCHIVE LOG modu napunjeni Redo Log fajlovi brišu se tek nakon što se arhiviraju na posebnoj lokaciji na disku servera. Ovo je veoma važna funkcija koja omogućava (garantuje) oporavak (uz odgovarajući backup) baze u slučaju da se desi neki problem u radu sistema (problem sa diskom na kojem se nalazi baza, korisničke greške, korupcija Oracle Data fajlova, ... ). Svaka Oracle produkciona baza podataka trebalo bi da radi u ARCHIVE LOG modu.

Alert i Trace fajlovi su posebni trace fajlovi koje kreiraju posebni procesi unutar Oracle baze podataka i u njima se hronološki bilježe podaci koji su važni za rad tih procesa: vrijeme startovanja, vrijeme stopiranja, važne promjene stanja, kao i eventualne greške u radu procesa. Alert log fajl je specialni log (trace) fajl koji hronološki bilježi sve poruke, upozorenja i greške koje nastaju u toku rada Oracle baze podataka. Ovi fajlovi nisu obavezni, oni se automatski kreiraju po potrebi.

Password file je specijalna vrsta fajla u kojem se nalaze informacije koje omogućavaju administratoru baze da se prijavi na bazu sa svim svojim administratorskim privilegijama na bazu sa udaljenog računara (npr. pomoću baznog klijenta). Ovo je, takođe, opcioni bazni fajl.

Backup fajlovi su fajlovi koji nastaju prilikom backup-a Oracle baze podataka. Backup fajlovi se, po pravilu, smiještaju na poseban disk ili na neki eksterni medium (traku ili eksterni HDD). Backup fajlovi su potrebni za oporavak baze u slučaju da se desi neki značajniji problem u radu baze (korupcija data fajla ili Redo Log fajla, otkazivanje diska, problem sa operativnim sistemom, ...).

Fizička struktura Oracle baze podataka se može predstaviti i grafički na sledeći način: 







Logičku strukturu Oracle RDBMS baze podataka predstaviću u narednom postu.