You are on page 1of 50

Managementul Bazelor de date

Activiti specifice managementului unei baze de date

Cuprins
1.1. n ce const managementul BD.

1.2. Database Administrator (DBA) component esenial n managementul BD


Tipuri de utilizatori i sarcinile fiecruia.

1.3.ORACLE SERVER sistem relaional-obiectual de administrare a unei BD


Privilegiile DBA; Modaliti de autentificare a DBA; Administrarea fiierelor de parole.

Faciliti; Structur (componente).

1.1. n ce const managementul BD

Presupune planificarea, organizarea i controlul tuturor resurselor hard i soft astfel nct definirea, manipularea i utilizarea datelor din BD s se realizeze n condiii optime. Managementul BD este realizat de administratorul BD (DBA) prin intermediul SGBD-ului i a SO.

Tipuri de utilizatori i sarcinile fiecruia

Administratorul bazei de date (DBA) Dezvoltatori de aplicaii Administratori de aplicaii Utilizatori finali al bazei de date Administratorul de reea

Administratorul bazei de date

instalarea softului pe server, a aplicaiilor pe staii, a driverelor de reea; alocarea memoriei sistemului i planificarea cerinelor viitoare de memorie ale acestuia; planificarea BD prin definirea structurior logice ale memoriei, a cerinelor generale de proiectare a BD i a structurii de salvare;

Administratorul bazei de date


crearea bazei de date i a obiectelor acesteia (tabele, viziuni, indeci); implementarea BD proiectate prin definirea segmentelor de revenire (rollback), a tabelelor spaiu (tablespaces) i a obiectelor BD; modificarea structurii bazei de date n funcie de cerinele dezvoltatorilor de aplicaii; controlul i monitorizarea accesului utilizatorilor la baza de date; monitorizarea i optimizarea performanelor bazei de date; definirea i asigurarea politicii de salvare a datelor (backup) i refacere (recovery) a bazei de date;

Administratorul bazei de date


arhivarea datelor pe medii magnetice; asigurarea legturii cu firma care ofer suportul tehnic i licena de utilizare a produselor; asigura integritatea datelor stabileste politica de securitate a datelor

Dezvoltatorul de aplicaii
analiza, proiectarea si implementarea unei aplicaii(procese, date, etc.); estimarea necesarului de resurse pentru aplicaie; definirea, daca este cazul, a modificrilor aplicatiei (procese, structurilor de date, etc.); elaborarea documentatiei de prezentare,realizare si operare; transmiterea tuturor informaiilor despre activitile de mai sus ctre administratorul bazei de date; stabilirea msurilor de securitate pentru aplicaie.

Utilizatorul final al bazei de date

are acces la baza de date prin intermediul unei aplicaii sau a instrumentelor Oracle; adugarea, modificarea i tergerea datelor din baza de date n concordan cu drepturile de acces pe care le are; generarea unor rapoarte cu datele din baza de date.

1.2. Database Administrator (DBA) component esenial n managementul BD

Privilegiile DBA Modaliti de autentificare a DBA Administrarea fiierelor de parole

Privilegiile DBA

cont de administrator pentru sistemul de operare, care s-i permit s execute

comenzile sistemului de operare; cont de administrator BD. De exemplu pentru Oracle exista dou conturi de utilizator SYS i SYSTEM cu parolele iniiale CHANGE_OF_INSTALL i respectiv MANAGER; rol de DBA, care este creat automat la momentul crerii unei baze de date. Acest rol conine toate privilegiile bazei de date.

Modalitati de autentificare

Datorit faptului c un administrator execut activiti pe care un utilizator obinuit nu le poate executa este necesar ca acesta s poat fi autentificat nainte de a executa activitile de administrare. Administratorul bazei de date, spre deosebire de utilizatorii obinuii, va trebui s aib i privilegii pentru lucrul cu sistemul de operare pentru a putea accesa fiierele bazei de date (cearea i tergerea fiierelor). De asemenea el va trebui s aib acces i la toate funciile bazei de date.

Autentificarea folosind

sistemul de operare

Se folosesc doua conturi;


SYSOPER (STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVELOG i RECOVER) SYSDBA (toate privilegiile de sistem cu opiunea ADMIN OPTION, precum i rolul OSOPER). Se poate executa comanda CREATE DATABASE.

Autentificarea folosind fiierul

de parole.

Dup stabilirea unui utilizator ca administrator, de exemplu utilizatorul SCOTT cu parola TIGER, acesta va fi autorizat la unul din privilegiile SYSDBA sau SYSOPER, cu comanda GRANT, dup care utilizatorul SCOTT se va conecta la baza de date ca SYSDBA sau SYSOPER cu comanda CONNECT; Exemplu: GRANT SYSDBA TO scott GRANT SYSOPER TO scott CONNECT scott/tiger AS SYSDBA CONNECT scott/tiger AS SYSOPER;

Autentificarea folosind fiierul

de parole.

autentificarea pe baza de sistem de operare are preceden faa de cea pe baz de fiier de parole pentru SYSDBA i SYSOPER; un utilizaror va fi conectat ca SYSDBA sau SYSOPER automat, indiferent de parola care o tasteaz.

Administrarea BD cu ajutorul Enterprise Manager

Odat cu apariia Oracle 10g, administratorii de baze de date au la dispoziie o interfaa grafica Enterprise Manager-un instrument in mod grafic- care face ca munca de administrare sa devina interactiva. Pentru a deschide pagina Enterprise Manager se folosete un browser web. n cazul n care Oracle este instalat pe acelei computer pe care se face si administrarea se acceseaz link-ul: http://localhost:1158/em/ . n cazul n care se lucreaz pe alt main dect cea pe care este instalat Oracle, n loc de localhost va fi tastat adresa serverului Oracle. n prima pagin care se deschide administratorul se autentific pe baz de parol.

Administrarea fiierelor de parole


n aceast activitate sunt incluse operaiile de crearea fiierului cu parole, setarea parametrului de iniializare a bazei de date REMOTE_LOGIN_PASSWORDFILE, adugarea de utilizatori n acest fiier ntreinerea fiierului cu parole. n Oracle 10g,11g managementul fisierului de parole se poate face prin intermediul Enterprise Manager. Se merge la meniul Administration -> Users, unde se poate vizualiza o list cu toi utilizatorii existeni

Lista cu utilizatorii existeni.

Fereastra de modificare parole

n fereastra de modificare a parolei unui utilizator administratorul are posibilitatea de a stabili modul n care se va face autentificarea (prin sistemul de operare sau cu fiierul de parole), poate seta o nou parol i poate stabili tabelela spaiu implicit i cea temporar n care utilizatorul va lucra. Tot aici se poate expira o parol (ceea ce nseamn c utilizatorul cnd se va conecta prima dat i se va cere s i aleag o nou parol), s se blocheze sau s deblocheze un cont. n aceast fereastr accesnd tab-ul Roles se pot acorda rolurii utilizatorilor (ex. Rolul de DBA).

Modificarea parolei unui utilizator

Crearea fiierului cu parole

se poate executa cu utilitarul ORAPWD, care are trei parametrii: FILE, PASSWORD i ENTRIES, dintre care primii doi sunt obligatorii, iar ultimul este opional. Aceti parametrii definesc numele fiierului cu parole, parola pentru utilizatorul SYS i respectiv numrul de utilizatori care pot executa activiti de administrator (DBA);

Setarea parametrului de iniializare

REMOTE_LOGIN_PASSWORDFILE,

Valorile pe care le poate lua acest parametru sunt: NONE, EXCLUSIVE i SHARED, n care: NONE determin ca baza de date Oracle s funcioneze fr fiier de parole; EXCLUSIVE determin ca fiierul de parole s fie folosit exclusiv numai de ctre o singur baz de date; SHARED determin ca fiierul de parole s fie folosit de ctre mai multe baze de date i este folositor atunci cnd un singur administrator administreaz mai multe baze de date.

Not: Pentru a avea un grad mare de securitate pentru baza de date, va trebui ca imediat dup crearea fiierului cu parole parametrul de iniializare REMOTE_LOGIN_PASSWORDFILE s fie setat pe valoarea EXCLUSIVE.

Adugarea de utilizatori n fiierul cu parole


Se face n Enterprise Manager la pagina Administration->Users apsnd butonul Create. Acesta are ca efect deschiderea unei ferestre unde DBA va introduce datele noului utilizator. Exemplu: se deschide Enterprise Manager; se conecteaz utilizatorul SYS, cu parola aleas la instalare ca SYSDBA; dac este necesar, se monteaz i se deschide o baz de date existent; se creeaz utilizatorii care se doresc a fi administratori i care s fie adugai n fiierul cu parole; se atribuie unul din privilegiile SYSDBA sau SYSOPER acestui utilizator. Utilizatorul este adugat n fiierul cu parole i se poate conecta acum ca SYSDBA sau SYSOPER cu acest nume de utilizator n loc de numele SYS, folosind una din comenzile:CONNECT USER1/parola1 AS SYSDBA sau

CONNECT USER1/parola1 AS SYSOPER

Listarea membrilor fiierului cu parole

Se face din viziunea $PWFILE_USERS folosind comanda

SELECT * FROM V$PWFILE_USERS

Intreinerea fiierului cu parole


Se refer la executarea activitilor de : extinderea fiierului; - relocarea fiierului; - tergerea fiierului; - schimbarea strii fiierului.

1.3. ORACLE SERVER sistem relaionalobiectual de administrare a unei BD

Faciliti Structur (componente)

Faciliti

permite managementul datelor organizate n BD ; lucreaz client/server permite ca prelucrrile s fi mprite ntre serverul de baze de date i programele de aplicaie ale utilizatorilor aflate pe staiile conectate la server; lucreaz cu BD foarte mari; asigur accesul concurenial pentru mai muli utilizatori ai BD; previne accesul neautorizat la BD; asigur reastaurarea BD dup producerea unei erori; permite lucrul distribuit; asigur integritatea datelor; asigur portabilitatea aplicaiilor; permite conectarea mai multor tipuri de calculatoare i SO n aceeai reea.

Serverul ORACLE: Structura (componente)


Baza de date:structura logic(schema obiectelor BD;blocurile de date;extensiile;segmentele) Structura fizic(fisierele de date;fisierele de refacere;fisierele de control) Limbajele:SQL i PL/SQL; Instana ORACLE(aria global de memorieSGA;procesele globale de baz)

Spatii pentru tabele(tablespaces)

sunt unitile logice de memorie n care este mprit o baz de date; pot fi spaii pentru tabele de sistem i spatii pentru tabele de utilizator; Din punct de vedere al accesibilitii aceste pot fi on line i off line; sunt stocate pe disc sub form de fiiere de date specifice SO pe care rezid SGBD.

Schema obiectelor BD

Se pot regsi n mai multe spatii pentru tabele , iar un spaiu tabel poate conine obiecte din mai multe scheme; Cuprinde:

Tabele; Vederi (view); Secvene ; Unitile de program (Program Units) Sinonimele; Indecii i clusterii.

Tabele de baza si derivate

Tabelele sunt uniti de baz n memorarea

datelor unei BD. Acestea conin rnduri i coloane. n Oracle avem i tabele partajate. Tabelele derivate (viziunile) sunt proiecii ale unei tabele sau mai multor tabele accesibile utilizatorilor. Vederile nu memoreaz date, ci prezint datele din tabelele pe care s-au creat, numite tabele de baz. La fel ca i cu tabelele, cu vederile se pot efectua operaii. Toate operaiile efectuate asupra vederilor afecteaz tabelele de baz.

Avantajele tabelelor derivate

furnizeaz nivele adiionale de securitate, restricioneaz accesul la anumite coloane dintr-o tabel sau tabele; ascund complexitatea structurii BD; simplific accesul la date. O vedere poate fi construit printr-un acces complicat la mai multe tabele, iar utilizatorul va opera cu vederea fr a fi nevoit s emit cereri foarte complicate ctre BD; pot memora cereri extrem de complexe. De exemplu o cerere poate efectua calcule extrem de laborioase asupra unei tabele. Prin salvarea acestei cereri ca pe o vedere, calculele respective se vor efectua numai prin simplu apel al acestei vederi.

Secvenele si unitati de program

Secvenele sunt numere unice de

identificare a coloanelor unei tabele i pot fi utilizate la efectuarea diferitelor operaii ntr-o aplicaie.

Unitile de program (Program Units)

refer procedurile memorate, funciile i pachetele. Procedurile i funciile sunt subprograme PL/SQL care execut anumite activiti. Pachetele sunt metode de ncapsulare i memorare, a procedurilor i funciilor corelate, ca o unitate n baza de date.

Sinonime

Sinonimele sunt alternative (aliasuri) pentru

numele tabelelor, secvenelor sau unitilor de program i sunt folosite pentru a masca numele real al obiectului, a furniza un acces public la obiect i a simplifica instruciunile SQL. Sinonimele pot fi publice sau private. Sinonimul privat este disponibil numai la nivel unui anumit utilizator.

Indecii i clustere

Indecsii sunt structuri opionale asociate cu tabelele pentru a mri viteza de acces la date. Clusterele sunt metode opionale de memorare a datelor unor tabele. Clusterele grupeaz mai multe tabele fizic memorate mpreun pentru c au mai multe coloane comune sau cel mai des sunt folosite mpreun. Coloanele de legtur ale tabelelor ntr-un cluster se numesc chei cluster (cluster key).

Blocurile de date , extensiile i segmentele


Sunt elemente de control eficient al spaiului de pe disc aferent unei baze de date. Blocul de date este unitatea de memorie cea mai mic manipulat de SGBD Oracle; Extensia este format din mai multe blocuri de date contigue; Segmentul este format din mai multe extensii. Segmentele pot fi:

segmente de date ; segmente de indeci ; segmente roollback ; segmente temporare .

Structura fizic a bazei de date

Este definit de un set de fiiere specifice sistemului de operare pe care rezid SGBD Oracle, folosite pentru memorarea structurilor logice ale bazei de date i pentru pstrarea unor informaii tehnice de control ; Aceste fiiere sunt: fiiere de date (Data files); fiiere Redo log (Redo Log files); fiiere de control (Control files).

Fiierele de date (Data files)

Conin datele unei baze de date, sub forma structurilor logice ale acesteia (tabele, vederi, secvene, proceduri memorate, sinonime, indeci, clustere i link-uri de baz de date). Fiierele de date au urmtoarele caracteristici: un fiier de date poate aparine unei singure baze de date, pot fi extinse automat n anumite momente specifice ale funcionrii bazei de date, unul sau mai multe fiiere de date pot fi memorate intrun spatiu pentru tabele.

Fiierele Redo Log (Redo Log files)

Sunt folosite pentru memorarea tuturor schimbrilor de date produse asupra unei baze de date, astfel nct dac se ntmpl o cdere de curent s se previn distrugerea datelor bazei de date. Se pot folosi simultan mai multe fiiere de acest fel care s rezide pe discuri diferite

Fiierele de control (Control files)


Sunt folosite pentru memorarea informaiilor necesare pentru controlul structurii fizice a unei baze de date : numele bazei de date; numele i locaiile fiierelor de date; data creerii bazei de date, etc.

Instana ORACLE

Este o combinaie logic ntre structurile de memorie (SGA i PGA) i procesele ORACLE de baz active n momentul pornirii unei BD. Structurile de memorie intern sunt folosite pentru executarea unor activiti Oracle specifice: memorarea programelor, care vor fi executate, precum i datele ce vor fi utilizate de acestea. Structurile de memorie sunt SGA (System Global Area) i PGA (Program Global Area).

SGA si PGA
SGA este o regiune partajabil de memorie care conine datele i informaiile necesare unei instane Oracle. Conine : Database Buffer Cache - conine blocurile de date cele mai recent utilizate pentru a reduce utilizarea discului; Redo Log Buffer - conine datele despre blocurile modificate; Shared Pool - pentru prelucrarea instruciunilor SQL; Cursorii (Statement Handles or Cursores) - folosii pentru manipularea instruciunilor unui limbaj gazd folosind facilitatea Oracle Call Interface. PGA este zona de memorie care conine datele i

Procesul ORACLE
Este un mecanism al sistemului de operare care poate executa o serie de pai. Are propria sa zon de memorie n care se execut. Un server Oracle are dou tipuri de procese :procese utilizator ;procese Oracle.

Procesul utilizator (user proces) este creat i meninut pentru a executa codul de program aferent unui anumit limbaj (C++) sau un produs Oracle (Oracle tool), SQL*Forms, Sql*Graphics etc.

Procese ORACLE

Procesul Oracle este apelat de ctre un alt proces pentru a executa funcia cerut de ctre acesta. Procesele Oracle sunt Procese server i Procese background. Procesele server (Server Processes) sunt utilizate de Oracle pentru a

prelucra cererile proceselor utilizator. Oracle poate fi configurat astfel nct s permit unul sau mai multe procese utilizator. Din acest punct de vedere avem servere dedicate care au un singur proces utilizator i servere multi prelucrare (multi-threaded server configuration). Pe anumite sisteme procesele utilizator i procesele server sunt separate, iar n altele sunt combinate ntr-unul singur. Dac folosim sistemul multi prelucrare sau dac procesele utilizator i procesele server se afl pe maini diferite atunci aceste procese trebuie s fie separate.

Sistemul client/server separ procesele utilizator de procesele server i le execut pe maini diferite.

Procesele background (Background processes


Sunt create pentru fiecare instan Oracle pentru a executa asincron anumite funcii. Acestea sunt:

Database Writer(DBWR) scrie datele modificate n baza


de date;

Log Writer(LGWR) scrie nregistrrile redo log pe disc; Checkpoint(CKPT) scrie nregistrrile checkpoint la timpul
potrivit ;

System Monitor(SMON) execut recuperarea unei

instane la momentul pornirii, colecteaz spaiul liber etc; Process Monitor(PMON) recupereaz procesele utilizator dac acestea cad accidental; Archiver(ARCH) copiaz n mod online fiierele Redo Log n fiiere de arhiv atunci cnd acestea se umplu cu date.

Modul de lucru n sistemul client/server


Pe server ruleaz o instan Oracle, adesea numit gazd sau server de baz de date (Database server). Pe un calculator local (local machine sau client workstation) ruleaz o aplicaie ntr-un proces utilizator. Aplicaia client ncearc s ia legtura cu serverul Prin intermediul unui Listener care are rolul de a asocia un proces utilizator cu un proces server; Severul detecteaz cererea de conectare i creeaz un proces server pentru soluionarea cererii. Utilizatorul execut o instruciune SQL i finalizeaz (comite) tranzacia. De exemplu modific numele sau o coloan ntr-un rnd al tabelei. Serverul primete cererea i verific dac o astfel de instruciune SQL o mai are deja n buffer. Dac exist o execut, dac nu o creeaz . Severul regsete valorile de date din fiierele de date aferente bazei de date i le memoreaz n SGA. Procesul server execut modificarea datelor n SGA. Procesul DBWR scrie datele modificate n baza de date, iar LGWR nregistreaz tranzacia efectuat n fiierul Redo log. Dac tranzacia s-a terminat corect, Serverul trimite un mesaj aplicaiei, altfel se transmite un mesaj de eroare.

Dicionarul de date (Data Dictionary)

Este un set de tabele i vederi care sunt folosite n modul read-only pentru a referi datele bazei de date; Este actualizat automat de ctre Oracle ori de cte ori intervin actualizri al structurii bazei de date; Proprietarul dicionarului de date este utilizatorul SYS si nici un utilizator nu poate altera obiecte din schema SYS.

Dicionarul de date (Data Dictionary)

Este accesat n dou scopuri:


DD este adus n memoria SGA; Nu se vor creea niciodat obiecte care s aparin utilizatorului SYS; Nimeni nu va modifica niciodat date din DD. Singura tabel care face excepie este tabela SYS.AUDIS.

De ctre Oracle pentru a prelucra o instruciune DDL; De ctre orice utilizator Oracle pentru a afla informaii despre baza de date.

Vederile DD sunt prefixate cu USER, ALL sau DBA. Vederile prefixate cu USER furnizeaz informaii despre obiectele utilizatorilor, cele ALL despre toate obiectele din baza de date la care un utilizator are acces, iar cele cu DBA dau informaii despre toat baza de date.
Exist tabele speciale care pot fi accesate numai de ctre administrator pentru a vedea performanele Oracle. Utilizatorul SYS este proprietarul acestor tabele. Numele lor este prefixat cu V_$, iar sinonimele lor cu V$.

Dicionarul de date (Data Dictionary)

Categoriile de informaii ce se pot obine din dicionarul de date:


Informaii despre fiierele Online Redo Log; Informaii despre spaiile pentru tabele; Informaii despre fiierele de date ( Data Files); Informaii despre obiectele bazei de date; Informaii despre segmentele bazei de date; Informaii despre extensii ale bazei de date; Informaii despre pachetele Oracle cu valoare de dicionar (Dictionary Storage). Informaii despre utilizatorii bazei de date i profilele acesteia; Informaii despre privilegiile i rolurile din baza de date.

Exemple

SELECT object_name, object_type FROM user_objects; SELECT owner, object_name, object_type FROM all_objects; Accesarea vederilor DBA se va face prin prefixare cu SYS pentru c nu sunt create sinonime. SELECT owner, object_name, object_type FROM sys.dba_objects;

You might also like