Sunteți pe pagina 1din 5

Laborator 1: Spații pentru tabele și fișiere de date

Conţinut: Acest şablon este utilizat pentru crearea unui utilizator cu rolul de DBA şi a unui nou
tablespace denumit INV.
Observaţii:
1. După fiecare pas (a,b,c,…) realizaţi câte o captură de ecran pe care o inseraţi în acest şablon.
2. Interfaţa Enterprise Manager Console poate fi accesată utilizând http://37.120.250.20:5500/em
pentru server-ul ASE. Numele bazei de date este oracle si portul 1521.
Pentru instanta locala (masina virtuala):
Enterprise manager console http://xpone:1158/em
Instanta BD
host: xpone
port 1521
service name: orcl

Cerinţe:
1. Creaţi utilizatorul DBA1_NUME (unde NUME este numele propiu) cu parola oracle
parcurgand urmatorii pasi:
a) Deschideţi Enterprise Manager Console
b) Va conectaţi cu utilizatorul MS_DBA şi parola oracle (pentru masina virtuala cu SYS/oracle si
rolul SYSDBA). Dacă este prima dată când vă conectaţi în EM (Enterprise Manager) trebuie să
acceptaţi condiţiile precizate în pagina de start.
c) Click pe tab-ul Server. In pagina apărută din secţiunea Security->Users, click pe link-ul Users.
In dreapta paginii click Create şi in fereastra apărută completaţi :
NAME - DBA1_NUME
Enter Password şi Confirm Password – oracle
d) click pe tab-ul ROLES, din fereastră click pe EDIT LIST şi alegeţi din Available Roles
următoarele : CONNECT, DBA, RESOURCE. Click OK.
e) Click Show SQL pentru a vedea comenzile generate, apoi pe Return pentru a reveni în pagina
principală. La final click OK, va apare mesajul The object has been created successfully
f) Vă deconectaţi ca MS_DBA şi vă conectaţi în Enterprise Manager Console cu utilizatorul
DBA1_NUME.

2. Utilizând Enterprise Manager, vizualizaţi informaţiile referitoare la tablespace-ul EXAMPLE


urmând link-ul Server > Storage->Tablespaces. Răspundeţi la următoarele întrebări:
Question 1: Spaţiul liber rămas în procente este?
_______________________________________________________________________
Question 2: Câte segmente sunt în tablespace-ul EXAMPLE? (Urmaţi link-ul:
“Show Tablespace Contents” din lista Actions şi Go).
_______________________________________________________________________
Question 3: Care dintre indecşii din tablespace-ul EXAMPLE ocupă cel mai mult spaţiu?
(Urmaţi link-ul: Search type “INDEX”)?
_______________________________________________________________________
3. Creaţi un tablespace nou, de tipul locally managed (LMT) numit INV_NUME parurgând
următorii paşi:
a) In Enterprise Manager, selectaţi Server > Storage >Tablespaces.
b) Click Create.
c) La tablespace name introduceţi INV_NUME şi verificaţi ca opţiunea Extent Management
să fie Locally Managed, Type să fie Permanent, Status să fie Read Write, şi Use Bigfile
tablespace să nu fie selectat.
d) Click Add regiunea Datafiles.
e) In pagina Add Datafile, introduceţi inv_NUME01.dbf pentru File Name, şi 3 MB la File
Size.
f) Click Continue.
g) Click Storage, şi verificaţi ca Extent Allocation să fie Automatic, Segment Space
Management să fie Automatic, iar Logging să fie enabled.
h) Click pe General.
i) Click Show SQL să revedeţi comenzile SQL. La final apăsaţi Return.
j) Click OK, va apare unmesaj Update Message.

4. Deschideţi SQL Developer şi vă conectaţi cu utilizatorul DBA1_NUME.


Pentru conexiunea in SQL Developer folositi urmatoarele detalii in fereastra New database
Connection (click dr pe Connection-> New Connection):

Connection Name: numele Dvs


Username: DBA1_NUME
Parola: oracle

Server Masina virtuala


Host: 37.120.250.20 Host: xpone
Port 1521 Port: 1521
Service_name: oracle Service_name: orcl

Modificaţi scriptul lab_05_05.sql (disponibil în directorul ce conţine acest şablon) şi


înlocuiţi numele tablespace-ului INV_NUME cu cel creat anterior de Dvs. Rulaţi scriptul
pentru crearea şi popularea unei tabele din tablespace-ul INV_NUME (tabela X).

Datorită dimensiunii limitate a acestui tablespace va apare o eroare la inserarea de înregistrări,


nefiind spaţiu suficient pentru extindere, care este această eroare?
_______________________________________________________________________

5. Remediaţi eroarea prin alocarea de spaţiu tablespace-ului INV_NUME.


a) In Enterprise Manager, selectaţi Server > Storage > Tablespaces.
b) Selectaţi tablespace-ul INV_NUME, click Edit.
c) In regiunea Datafiles, click Edit.
d) Schimbaţi File Size de la 3 MB la 7 MB.
e) Click Continue.
f) Click Show SQL pentru vizualizarea comenzilor generate.
Care sunt acestea?
_______________________________________________________________________

Click Return si in final APPLY.

6. Mergeţi în SQL Developer ştergeţi tabela x astfel: drop table x purge. Rulaţi scriptul
lab_05_05.sql pentru a recrea tabela.
De această dată inserarea este finalizată cu succes, existând spaţiu suficient pentru această
operaţie.

7. La final executaţi în SQL Developer comanda drop table x purge pentru a şterge tabela şi
a elibera spaţiul.

8. Ştergeţi tablespace-ul INV_NUME astfel:


a) Click pe tab-ul Tablespaces.
b) Alegeţi tablesapce-ul INV_NUME din lista disponibilă şi click pe opţiunea Delete.
c) In fereastra apărută verificaţi ca opţiunea Delete associated datafiles from the OS să fie bifată.
Astfel se şterge şi fişierul de date de pe hardisk asociat tabelei spaţiu.
d) Click Yes. Tablespace-ul se va şterge.

9. OBS : Dacă lucraţi pe un server propriu sau pe masina virtuala, urmaţi paşii descrişi la punctul
4 şi creaţi un nou tablespace denumit INVENTORY cu un fişier de date INVENTORY01.dbf cu
dimensiunea de 100 MB. Bifaţi şi opţiunea Automatically extend datafile when full
(AUTOEXTEND), iar la Increment puneţi 1024 KB.
Pentru server-ul ASE acest tablespace este deja creat.
Comenzi SQL pentru gestiunea tabelelor spaţiu:

Comanda SQL pentru crearea unui tablespace este:


CREATE TABLESPACE nume_tablespace DATAFILE 'nume datafile cu
specificatia directorului.dbf' SIZE dimesiunea_in_M [AUTOEXTEND ON NEXT
1024K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE
MANAGEMENT AUTO]

De exemplu pentru tablespace-ul INVENTORY :


CREATE SMALLFILE TABLESPACE "INVENTORY" DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\inventory01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT
LOCAL SEGMENT SPACE MANAGEMENT AUTO

Pentru a sterge un tablespace se utilizeaza comanda :


DROP TABLESPACE tablespace_name [INCLUDING CONTENTS [AND DATAFILES]
[CASCADE CONSTRAINTS]];

Pentru vizualizarea informaţiilor legate de tabelele spaţiu se pot utiliza tabele din dicţionar:
DBA_TABLESPACES sau V$TABLESPACE

DBA_TS_QUOTAS sau USER_TS_QUOTAS – pentru vizualizarea spaţiunlui


ocupat în tabelele spaţiu

De exemplu pentru a vizualiza informaţii legate de spaţiul ocupat în tabelele spaţiu create de
utilizatorul curent se poate utiliza comanda:
SELECT * FROM USER_TS_QUOTAS