Oracle - prezentare
Serverul Oracle este un sistem de gestiune a bazelor de date relaţionale şi obiectual-relationale.
El este produsul principal al firmei Oracle Corporation, cu implementări în multe sisteme de operare şi configuraţii hardware
(de la procesoare paralele la calculatoare personale).
Un server Oracle constă dintr-o instanţă Oracle şi o bază de date Oracle.
Instanţa Oracle
Folosirea unei baze de date:
- pornirea unei instanţe Oracle,
- montarea unei baze de date,
- deschiderea unei baze de date.
După parcurgerea acestor etape, în memoria internă:
- este alocată o zonă sistem globală (SGA - System Global Area)
- sunt pornite anumite procese în background
Pentru fiecare proces este rezervată o zonă globală a procesului (PGA - Program Global Area). Această zonă
este automat creată de către sistem atunci când se cere execuţia unui proces sistem sau utilizator,
şi se foloseşte numai de acest proces.
La nivelul sistemului de operare (pe care se execută instanţa) apar servicii care execută cererile clientilor
(exemple: OracleDBConsoleorcl, OracleServiceORCL, OracleOraDB12Home1TNSListener, etc.).
Zona SGA conţine datele necesare pentru execuţia instanţei Oracle şi are o anumită structură.
Dintre zonele de memorie amintim:
- Zona Shared pool, cu o dimensiune precizată de parametrul SHARED_POOL_SIZE (într-un fişier de parametri). Această zonă
se foloseşte în timpul fazei de analiză a unei comenzi utilizator. Se descompune în două părti:
- Library cache: care păstrează textul ultimelor comenzi utilizator, împreună cu arborele de analiză şi
planul de execuţie a comenzii (paşii care trebuie urmaţi pentru execuţia comenzii). Dacă o
comandă se reexecută şi în această zonă mai există informaţii despre ea, atunci informaţiile se
folosesc şi execuţia va fi mai rapidă.
- Data dictionary cache: păstrează ultimele date folosite din dicţionarul de date
(definiţii de coloane, nume şi privilegii pentru utilizatori, etc.)
- Zona de buffere pentru baza de date. La execuţia unei comenzi sunt necesare unele date
memorate în fişiere. Pentru a putea fi consultate, aceste date trebuie să fie în memoria internă.
Dacă ele sunt deja aici, atunci se pot folosi şi se câştigă timp la execuţie.
Dimensiunea unui buffer din această zonă este egală cu dimensiunea unui bloc şi (din structura fizică a bazei de date) şi este precizată
de parametrul DB_BLOCK_SIZE. Numărul de buffere se stabileşte cu parametrul DB_BLOCK_BUFFERS.
- Zona de buffere pentru fişierele jurnal. O modificare în baza de date se poate efectua
imediat sau mai târziu, când se ia această decizie. Pentru a gestiona aceste situaţii, modificările se păstrează
in fişiere jurnal. Pentru gestiunea acestor fişiere se foloseşte o zonă de buffere.
Dimensiunea în octeţi este dată de parametrul LOG_BUFFER.
Dintre procesele sistem care sunt lansate în execuţie la crearea unei instanţe Oracle se pot aminti:
- Database Writer (DBWR) - care scrie date în baza de date şi asigură accesul concurent la baza de date
- Log Writer (LGWR) - care scrie înregistrările schimbate din baza de date
- Process Monitor (PMON) - care reface o stare implicită dacă o resursă s-a terminat eronat
- Checkpoint process (CKPT) - care actualizează baza de date la decizia de a păstra modificările în baza de date
- Archiver process (ARCH) - care se foloseşte pentru arhivarea fişierelor jurnal
Baza de date Oracle
O bază de date are o structură fizică şi o structură logică, care se gestionează separat.