Sunteți pe pagina 1din 6

Exercices A : chap.

2 &
3----------------------------------------------------------------------------------
-------------------------------

2.1 Quel est le nom des instances actives sur votre machine host ?
****************

SQL> show parameter v$instance


SQL> SELECT instance_name, status, active_state, blocked,
instance_mode, host_name, version FROM v$instance;

2.2 Dcouverte de l'arborescence d'Oracle et de quelques fichiers sensibles


****************

a) localiser les fichiers suivants et indiqus leur rle :

# Fichier .log :

SQL> SELECT* FROM v$logfile;

-- Fichier de journalisation, enregistre toutes les


modifications survenues sur la base de donnes. Ils sont essentiels dans les
processus de restauration.

# Fichier .sql :

SQL> -- Pour ma part, parcourir les repertoires de l'OS


pour le retrouver.

-- Fichier contenant le script de cration de la base de


donnes.

# Fichier .trc :

SQL> -- Interroger la vue V$DIAG_INFO

SELECT* FROM V$DIAG_INFO;

-- Fichier de trace : Complmentaire au fichier d'alerte,


enregistre tous les vnements d'erreurs ou les modifications paramtres systmes
survenus.

# Fichier .ora

SQL> SELECT file_name, tablespace_name, status, bytes,


maxbytes, autoextensible, online_status FROM dba_data_files;

-- Fichier de donnes : Contiennent les donnes de la base.

2.3 Paramtres d'initialisations ****************

a) Donner les diffrentes possibilits pour visuliser les paramtres


d'initialisation d'une instance active.

SQL> SHOW PARAMETER pfile;


SQL> SELECT name, value FROM v$parameter WHERE name like ('%pfile
%');

b) Lister via un ordre SQL uniquement les paramtres modifis

SQL>
SELECT name, value, isses_modifiable, issys_modifiable,
ismodified
FROM v$system_parameter
WHERE ismodified <> UPPER('false'); -- On aurait pu aussi
utiliser l'oprateur de comparaison !=, c pareil.

--# voir liste oprateurs oracle:


http://www.gladir.com/CODER/ORACLE/operator.htm

-- ISSES_MODIFIABLE Indique si le paramtre est modifiable


ou non avec un ALTER SESSION.
-- ISSYS_MODIFIABLE Indique si le paramtre est modifiable
ou non avec un ALTER SYSTEM.
-- ISMODIFIED Indique comment le paramtre a t modifi.
Si c'est par un ALTER SYSTEM, la valeur sera MODIFIED.

-- Plus d'info: http://orafrance.developpez.com/dbahelp/

2.4 Le dictionnaire de donnes d'Oracle ****************

a) Donner la liste des vues du dictionnaire de donnes d'Oracle(dict)


trie par nom

SQL> DESC DICTIONARY -- ou DICT c'est son synonyme.

SQL> SELECT* FROM DICTIONARY ORDER BY table_name;

2.5 Donner la liste des utilisateurs (v$session : username, serial#, sid,


paddr, program, terminal, ident) ****************
connects sur votre instance courante.
Ident est une colonne rajoute pour identifier de faon explicite les
process background et les process utilisateurs.
S'il s'agit d'un process utilisateur, ident vaut "PROCESS BACKGROUND"
sinon il vaut "PROCESS UTILISATEUR".

SQL>
SELECT s.USERNAME User_Oracle,
s.OSUSER User_OS,
s.SID,
s.SERIAL#,
p.SPID,
s.SERVER,
s.STATUS,
s.MACHINE,
s.PROGRAM,
TO_CHAR(s.LOGON_TIME, 'hh24:mi:ss') Time_Connect,
d.name DISP,
ss.name SERV
FROM V$PROCESS p,
V$SESSION s,
V$DISPATCHER d,
V$CIRCUIT c,
V$SHARED_SERVER ss
WHERE p.ADDR = s.PADDR
AND s.SADDR=c.SADDR (+)
AND c.DISPATCHER=d.PADDR (+)
AND c.SERVER=ss.PADDR (+)
AND s.USERNAME IS NOT NULL
ORDER BY s.USERNAME, p.SPID;

2.6 Dterminer la taille de la SGA ****************

a) Taille globale (v$sga) en mga octet

SELECT SUM(value/1024/1024) "Taille_Sga_en_Mo"


FROM V$SGA;

b) Taille dtaille (v$sgastat)

SELECT pool, SUM(ROUND(bytes/(1024*1024),2)) || ' MB'


"SIZE"
FROM (SELECT DECODE(pool, NULL, NAME, pool) pool, NAME,
BYTES FROM v$sgastat) v$sgastat
GROUP BY pool;

2.7 Indiquer si la taille des buffers de donnes est suffisante ou non en


calculant le ratio suivant :

R = ( 1 - (Physical reads / (db block gets + consistent gets))) * 100

Dans le cas ou elle n' est pas suffisante, proposer des mesures pour
amliorer la situation.
Notes :
a) Nom des statistiques intressantes :
- db block gets : nombre de blocs lus
- consistent gets : nombre de blocs recherchs dans
le buffer RBS ou le RBS
- physical reads : nombre de blocs lus sur disque.
b) db block gets + consistent gets = nombre total de blocs lus en
mmoire ou sur disque

2.8 Dterminer la taille de la PGA associe votre session en mode server


ddi (v$session, v$sesstat, v$statname).

-- PGA associe ma session

SELECT SID, b.NAME, ROUND(a.VALUE/(1024*1024),2) MB FROM


v$sesstat a, v$statname b
WHERE (NAME LIKE '%session uga memory%' OR NAME LIKE '%session pga
memory%')
AND a.statistic# = b.statistic#
AND SID = 62;
-- Le SID de la session dont on souhaite voir
la PGA alloue (Le rcuprer par la requte du haut en 2.5)

-- PGA consomme par chaque session

SELECT DECODE(TRUNC(SYSDATE - LOGON_TIME), 0, NULL, TRUNC(SYSDATE -


LOGON_TIME) || ' Days' || ' + ') ||
TO_CHAR(TO_DATE(TRUNC(MOD(SYSDATE-LOGON_TIME,1) * 86400), 'SSSSS'),
'HH24:MI:SS') LOGON, SID, v$session.SERIAL#, v$process.SPID ,
ROUND(v$process.pga_used_mem/(1024*1024), 2) PGA_MB_USED, v$session.USERNAME,
STATUS, OSUSER, MACHINE, v$session.PROGRAM, MODULE
FROM v$session, v$process
WHERE v$session.paddr = v$process.addr
--and status = 'ACTIVE'
--and v$session.sid = 97 -- pour une session
spcifique
and v$session.username is not null
--and v$process.spid = 24301
ORDER BY pga_used_mem DESC;

-- To find the total PGA memory used by processes

SELECT ROUND(SUM(pga_used_mem)/(1024*1024),2) PGA_USED_MB


FROM v$process;

2.9 Donner le texte de la requte lance par chaque utilisateur connect sur
la base (v$sqlarea, v$session).

Exercices B : chap.3 &


4----------------------------------------------------------------------------------
-------------------------------

A/
3.1. Crer dune base DBCOURS.CERAM.FR Le nom de linstance DBCOURS.

# Dj cr avec DBCA

B/
# OK

Exercices C :
chap.4-----------------------------------------------------------------------------
------------------------------------

4.1. Lister lensemble des fichiers de donnes, de contrle et redo log


composant la base DBCOURS

SQL>
4.2 Cration de tablespaces

-- Sous ASM
# Tablespace des tables

Create tablespace TS_TAB_AIRBASE;

Alter tablespace TS_TAB_AIRBASE


Add datafile;

# Tablespace des index

Create tablespace TS_IND_AIRBASE;

Alter tablespace TS_IND_AIRBASE


Add datafile;

-- Infos sur les tablespaces

SELECT TABLESPACE_NAME,BLOCK_SIZE,
STATUS,EXTENT_MANAGEMENT,CONTENTS,RETENTION
FROM DBA_TABLESPACES
ORDER BY TABLESPACE_NAME;

-- Infos sur les datafiles des tablespaces

SELECT FILE_NAME, status


FROM DBA_DATA_FILES;

----------------------------------------Cration des
tables--------------------------------

SQL> CREATE TABLE pilote (ID_pil NUMBER, Nompren_pil varchar2(25);


SQL> ALTER TABLE pilote
ADD CONSTRAINT pk_idpil PRIMARY KEY(ID_pil);

SQL> CREATE TABLE avion(id_av NUMBER, libeav VARCHAR2(15));


SQL> ALTER TABLE avion
ADD CONSTRAINT pk_idav PRIMARY KEY(ID_av);

SQL> CREATE TABLE vol(id_vol NUMBER, datev DATE, heuredeb_v


VARCHAR2(10), heurefin_v VARCHAR2(10), id_pil NUMBER, id_av number);
SQL> ALTER TABLE vol
ADD CONSTRAINT fk_idpil FOREIGN KEY (id_pil) REFERENCES
pilote(id_pil);

ALTER TABLE vol


ADD CONSTRAINT fk_idav foreign key (id_av) REFERENCES
pilote(id_pil);

4.3. Rollbacks segments


N'existe plus en 11g et version sup.
Remplac par le tablespace UNDO.

4.4 Modifier le schma de la base arienne

-- Gestion de l'espace (Mise jour) - #OK

4.5 Crer le schma de la base arienne sous le compte SYSTEM

#OK

4.6 Inserer quelques enregistrements dans la table PILOTE

#OK
SQL> insert into pilote values (1,'Moise KOUADIO');
SQL> insert into pilote values (2, 'Sylvie Azemar');
SQL> insert into pilote values (3, 'Alain Demarie');
insert into pilote values (4,'Andre Costaud');

4.7 Lister les informations sur le segment (dba_segments) et les extensions


(dba_extents) de la table PILOTE

SQL> -- Afficher le nombre des blocs des extents du segment PILOTE


SELECT extent_id
, file_id
, block_id
, blocks
FROM dba_extents
WHERE owner = user
AND segment_name = 'PILOTE';

SQL> -- Afficher la taille de la table PILOTE


SELECT segment_name, segment_type, ROUND(bytes/1024,2) Size_kb
FROM dba_segments
WHERE segment_name IN('PILOTE');

Exercices D :
chap.5-----------------------------------------------------------------------------
------------------------------------

S-ar putea să vă placă și