Vous êtes sur la page 1sur 24

ADMINISTRATION ORACLE

-Dfinitions
Une base de donnes est un ensemble de donnes structures, stockes sur un support permanent. Cest aussi la mmoire du systme dinformation. Ces donnes sont gres par des systmes de gestion tels SGBD, ORACLE. Unit de traitement de linformation : rpondre aux questions, avoir des renseignements. Automatiser un S.I revient avoir des applications servant dintermdiaire entre lutilisateur et les donnes.

Le DBA limites les utilisations, prserve les donnes, prvoit des sauvegarde (RESTORE et RECOVER dans oracle).

Un serveur oracle comprend une instance et une base de donnes.

I-Linstance
Elle comprend une zone mmoire Systme Global Area SGA et des Process darrires plan ou Background Process. o La SGA La SGA conserve les donnes a lentre ainsi quaprs. Cest une structure mmoire. La SGA est une zone mmoire qui est utilise par la base de donnes pour partager les informations entre les diffrents processus Oracle. o Le Process Background A la connexion du client on lui alloue un serveur process propre qui joue le rle dintermdiaire entre lui et les donnes, il comprend le PGA qui conserve les informations lors de la session. Le mode serveur ddi est un mode ou a un utilisateur on fait correspondre un et un seul serveur process et inversement. Le mode serveur partag conserve plusieurs utilisateurs un seul serveur.

La base de donn

Comprend trois types de fichiers : de donnes, de contrle, de journalisation. Il existe aussi les archives quoracle ne considre pas comme fichier. Elle possde une structure physique(les diffrents types de fichiers) et une structure logique (tablespaces etc.).

Connexion la base de donnes


Chemin de communication entre un process utilisateur et linstance
2

Une session diffre de la connexion part les interactions faites pendant une dure prcise, cest ltat de lutilisation courant.

Instance
user User process Server process

La SGA

PGA SGA

PGA

Process backgrou

Database buffer cache: stocke la copie des donnes manipuler de faon temporaire Redo log buffer: stocke les modifications apportes aux blocs (action, coordonnes des lieux modifies), lor de la restauration de linstance on y recharge les blocs par reprage, il contient les informations relativement aux changements apportes aux blocs de donnes de la base. Shared pool: il comprend library cache, data dictionary cache, control structures Il contient les textes de requtes, les plans dexcution, lensemble des dfinitions (nom) des objets dune table pour vrifier lexistence du contenu insrer par lutilisateur zone mmoire ajout pour aider les 2 autres Large pool (facultative, il nexiste quen mode serveur partage) : gre les informations modifies lors de la session Java pool : zone mmoire rserve a lexcution des programmes JAVA et Stream pool : Stocke les messages recueillis par le server process.

Cest un groupe de structure mmoire partage entre les diffrent diffrents backgrounds process et les serveur process, il comprend les serveurs d informations de contrle d dune instance Tandis que la PGA est propre son serveur process ou son background process, il stocke les informations de session , session.

Les process background

Le SMON Corriger les plantages de l'instance et vrifier la synchronisation des donnes. Rejouer le contenu des REDO LOG FILE afin de pouvoir rejouer les transactions et de resynchroniser les donnes dans les fichiers de donnes. Sert aussi nettoyer les segments temporaires (order by) aprs leur utilisation. Il sert aussi dfragmenter les fichiers de donnes, fichiers tablespaces et autres. Maintenir la cohrence de la base rend la base accessible aux base, ase utilisateurs, restaure linstance en cas de plantage toute les te
4

transactions valides et qui se sont enregistr que dans le fichier de journalisation Il fusionne les espaces libres toute les 3secondes=timeout Le PMON Le processus PMON (ou Process Monitor) va tre surtout ddi aux processus des utilisateurs. Il va servir annuler les transactions d'une session (lors d'un plantage de la session par exemple), mais aussi servir relcher tous les verrous (restreindre laccessibilit, monopolise les donnes utilises lors de la session) poss par la session, et relcher toutes les ressources (donnes) dtenues par la session. Le DBWR Le processus DBWn (ou Database Writer) va tre ddi l'criture du Database Buffer Cache dans les fichiers de donnes de la base de donnes. Ce processus est aussi l pour vrifier en permanence le nombre de blocs libres dans le Database Buffer Cache afin de laisser assez de place de disponible pour l'criture des donnes dans le buffer. DBWn se dclenchera lors des vnements suivants :

Lorsque le nombre de bloc dirty atteint une certaine limite aprs que le LGWR ai crit dans le fichier de journalisation. Lorsqu'un processus sera la recherche de blocs libres dans le Database Buffer Cache, et qu'il ne sera pas en mesure d'en trouver. Lors de timeouts (environ toutes les 3 secondes par dfaut) Lors d'un checkpoint (evenement qui maintien letat de cohrence de la base, quand le DBWR crit dans le data file)

Le LGWR Il se contente dcrire ce qui se trouve dans le Redo Log Buffer dans le fichier de journalisation. Il se dclanche :

Quand une transaction est termine avec un COMMIT Quand le REDO LOG Buffer est au 1/3 plein (peut dpendre de vos propres paramtres) Quand il y a plus de 1Mo d'informations de log contenues dans le buffer Avant que DBWn n'crive le contenu du Database Buffer Cache dans les fichiers du disque dur

Le CHECKPOINT Ce processus va servir mettre jour les en-ttes des fichiers de donnes, et mettre jour les fichiers CONTROL FILE afin de spcifier que l'action de CHECKPOINT s'est bien droule (par exemple lors d'un changement de groupe de REDO LOG FILES). Le CHECKPOINT est un vnement qui se dclencher lors :

D'un changement de groupe de REDO LOG FILE. D'un arrt normal de la base de donnes (c'est dire sans l'option ABORT) D'une demande explicite de l'administrateur D'une limite dfinie par les paramtres d'initialisation LOG_CHECKPOINT_INTERVAL, LOG_CHECKPOINT_TIMEOUT, et FAST_START_IO_TARGET

NB : L'vnement CHECKPOINT va ensuite dclencher l'criture d'un certain nombre de blocs du Database Buffer Cache dans les fichiers de donnes par DBWn aprs que LGWR ait fini de vider le REDO LOG Buffer. Le ARCn Ce paramtre va avoir pour seule fonction de copier un fichier REDO LOG FILE un autre emplacement. Cette copie se dclenchera automatiquement en mode ARCHIVELOG (en mode NOARCHIVELOG le processus n'existe pas) lors du changement de groupe de REDO LOG FILE. Il bloque les actions du LGWR quand il agit.

Pour dmarrer une base de donnes on cre une instance qui ncessite la lecture dun fichier dinitialisation. Il y a deux types de fichiers dinitialisation : le spfile et le pfile, cependant les deux fichiers ne sont pas synchroniser. Le spfile=>server parameter file * Persitent parameter file * Cest un fichier binaire * Contient les paramtres pour crer une instance (taille des structures mmoire, nombre de Background Process .) * Nest modifier que par le server, le DBA ne peux pas directement diter le fichier spfile Le pfile => parameter file ou static parameter file
7

- Cest un fichier texte - Cest la version du spfile en texte - ditable par le DBA Quand on dmarre la base de donnes un processus du server cherche le Spfile, sil ne le trouve pas il dmarre avec le fichier dinitialisation texte. Dmarrage avec pfile On cre dabord le fichier pfile partir du spfile
SQL> create pfile='C:\oraclexe\app\oracle\admin\XE\pfile\initXE.ORA' 2 from spfile;

Puis on verrouille aves SHUTDOWN, On dmarre avec


SQL> startup pfile='C:\oraclexe\app\oracle\admin\XE\pfile\initXE.ORA' Instance ORACLE lance.

Alter database open=>

Alter database mount /=> La base de donne (le fichier de contrle) est monte et il est ncessaire que se fichier soit valide et que des fichiers de contrle multiplexe (identique) soit au mme niveau dinformation et seuls les administrateurs peuvent se connecter.

Startup nomount=> Nomount la base de donnes nest pas encore rattacher linstance, seul linstance est cre

Etapes de dmarrage de la base


Restriction daccs la base Au dmarrage >startup restrict ; La connexion nest alors permise qu lutilisateur en mode restricted session Pour vrifier le mode daccs la base on fait select logins from v$instance ;

Aprs le dmarrage Dans ce cas on tape la commande


>alter system enable restricted session

Pour voir les utilisateurs connects on fait


Select username from v$session;

Pour quitter le mode restrict on fait>alter system disable restricted session. Pour dconnect un utilisateur qui est dj connect alors quon est en mode restrict on fait >alter system kill session sid,serial# Pour donner un utilisateur le privilge restricted session
>grant restricted session to scott;

Et on le retire avec > revoke restricted session to scott ; Mode darrt


Nouvelle connection
Shut down normal

Attentes des session

Attentes des transaction oui

Mises a jour et fermeture des fichiers oui

non

Shutdown transactional

non

non

Shutdown non immediate Shutdown abort non

non non

Oui avec rollback ou commit non Non

oui

Oui , un check pint ce fait non

En cas de cohrence la restauration de linstance au redmarrage nest pas ncessaire. Le cas de Shutdown ABORT

A larrt
_ Pas decheckpoint _ les transactions non valides ne sont pas annules, Ils sont enregistres dans les fichiers de journalisation

Au redmarrage
Les fichiers de journalisation sont lus pour rejouer les transactions dj valides _ Les segment UNDO sont lus pour annuler les transactions non valides, leur image son remis dans le data base buffer cache _ Les ressources sont libres

En cas de disfonctionnement de linstance, ces trois fichiers dtiennent les informations sur les erreurs survenues lors de la gestion de linstance , en tant dautre informations. Il sagit des fichiers dalertes, des fichiers trace des backgrounds process qui sont rpertories dans le background_dump_dest, et

10

aussi les fichiers trace des user process rpertori dans le user_dump_dest. Pour localiser ces fichiers (rpertoire) on fait la commande show
parameter background_dump_dest, show parameter user_dump_dest

On peut aussi faire select value from v$parameter where


name=background_dump_dest

Ils constituent une des comportements de la base de donnes. Il est binaire, lu ltat Mount et est indispensable au fonctionnement de la base de donnes. Il nest rattach qu une seule base de donnes. Il maintient lintgrit de la base et est continuellement mise jour par le serveur durant lutilisation de la base de donnes, raison pour laquelle il doit tre disponible en criture toute fois que la base de donnes est ouverte. Les informations dans le fichier de Contrle ne sont dites que par le serveur Oracle ; Il nous faut au moins un fichier de contrle valide pour lutilisation de la base,mais on peut le multiplexer jusqu 8 exemplaires.

Que contient le fichier de contrle ?

11

Il contient entre autres le nom et lidentifiant de la base de donnes, la date de cration de la base, le nom des tables spaces, le nom et lemplacement de fichiers de donnes et de journalisation, les numros de squence des journaux, les informations de checkpoint, les informations de sauvegarde et les images undo.

Retrouver le fichier de contrle


Show parameter control_files Select value from v$parameter where name=control_files Select name from v$controlfile Multiplexer un fichier de contrle Soit au dmarrage avec spfile Les copies du fichier de contrle ne sont pas forcement en tat de cohrence, parce que ce dernier est en continuelle modification. Il faut alors arrter la base. 1__>identifier lemplacement des fichiers de contrle existants 2__ >modifier le paramtre control files de spfile en ajoutant le nom des nouveaux fichiers Scope= Memory signifie que les modifications ne sont valable que pour linstance en cours, il son effective aussitt jusqu larrt de linstance. Scope= spfile signifie que les modifications sont crites dans le fichier spfile mais ne seront effective que lors de la prochaine session de linstance. Scope=booth les modifications sont effective pour la session en cour ainsi qu la prochaine.
12

3__> on arrte linstance 4__> on copie lun des fichiers de contrle dans les nouveaux emplacements
SQL> show parameter control_files; NAME control_files TYPE string .DBF SQL> alter system 2 set control_files='C:\oraclexe\oradata\XE\CONTROL.DBF','D:\tpora\fic.control\CONTROL02.DBF' 3 SCOPE=spfile; SQL> shutdown immediate On copie le fichier de contrle qui est dans oracleexe dans le fichier tpora dans fic.control en le renommant tel quon lavait annonc en tant que control02 VALUE C:\ORACLEXE\ORADATA\XE\CONTROL

Ils enregistrent les modifications apportes la base. Les membres dun groupe ont la mme taille. Pour savoir la o se trouve le ficher de journalisation :select group#,member from v$logfile ; Col member format a6 : pour laffichage. SQL> select group#,member from v$logfile; Larchivage permet de sauvegarder les fichiers de journalisations. Pour vrifier que le mode darchivage :
13

SQL> select archiver from v$instance; ARCHIVE STOPPED SQL> select log_mode from v$database; LOG_MODE NOARCHIVELOG

Grer les archives utilise beaucoup despace en mmoire. Si on fonction en mode archives, on peut en cas de problme on peut restaurer les donnes jusqu'au dernier comite.Pour amener la base de donnes en mode archives log on doit tre a ltat mount.
SQL> rem l'etat actuel de l'instance SQL> select status from v$instance; SQL> rem pour activer l'archivage on doit tre l'tat mount SQL> rem donc je dmarre l'instance pour le positionner mount SQL> shutdown SQL> startup nomount SQL> alter database mount; SQL> alter database archivelog; SQL> alter database open;

On peut voir que les fichiers qui appartiennent au table espace.


14

Un tablespace gre un ou plusieurs fichiers de donnes. Il est subdivise en segment (table employees) qui contient un Extent est un ensemble de bloc continu. Les tablespaces qui ne sont pas permanent ne peuvent pas contenir les informations pour les utilisateurs. Les types de tablespaces Les tablespaces system: qui on t cre avec la base et qui contient les donns la base. La base peut se passer du tablespaces undo, mais lorsquil existe, sa perte entrainera larrt de la base. Les tablespaces non-system: sont cres par les utilisateurs et contiennent les donnes des utilisateurs. Comment crer les tablespaces
SQL> create tablespace my_tabspace 2 datafile 'C:\oraclexe\TP_Oracles\Tablespaces\MY_TABSPACE.DBF' size 50M;

Pour avoir les fichiers qui appartiennent la tablespaces


SQL> select file_name 2 from dba_data_files 3 where tablespace_name='MY_TABSPACE';

Pour voir les proprits du tablespace


SQL> desc dba_data_files; SQL> select file_name,bytes/1024/1024 taille,status autoextensible 2 from dba_data_files 3 where tablespace_name='MY_TABSPACE';

15

Lorsquon atteint la limite du fichier de la tablespace, sil y a un seul fichier il faut quil soit extensible.
Comment specifier les proprites des fichiers dun tablespaces File_name size taille Rense

Autoextend

next_taille

Maxsize

Maxsize unlimted taille

On peut amener le tablspace a offline ou online offline les utilisateurs nont plus accs. On ne peut pas faire des requtes sur un tablspace offline.
Alter tablespace my_tabspace offline;

POUR renommer On met dabord le tablspace en offline puis


SQL> alter tablespace my_tabspace offline; SQL> alter tablespace my_tabspace 2 rename datafile 'C:\oraclexe\TP_Oracles\Tablespaces\MY_TABSPACE03.DBF' 3 to 'C:\oraclexe\TP_Oracles\Tablespaces\MY_TABSPACE_babs.DBF'; SQL> alter tablespace my_tabspace online;

SQL> select file_name 2 from dba_data_files 3 where tablespace_name='MY_TABSPACE'; FILE_NAME C:\ORACLEXE\TP_ORACLES\TABLESPACES\MY_TABSPACE.DBF


16

C:\ORACLEXE\TP_ORACLES\TABLESPACES\MY_TABSPACE02.DBF C:\ORACLEXE\TP_ORACLES\TABLESPACES\MY_TABSPACE_BABS.DBF

Comment crer un tablespace temporaire Ne stocke que des objets permanents comme les tables. Lintrt est de stocker les donns pour des requtes avec de tries.
SQL> create temporary tablespace My_temp 2 tempfile 'C:\oraclexe\TP_Oracles\Tablespaces\MY_TEMPO01.DBF' size 50M;

Le tablespace par defaut de la base (on peut pas le suprimm sauf si on cree un autre) et ne stocke pas des objets permanants.
Select property_value From database_properties Where property_name=DEFAUT_TEMP_TABLESPACE ; Alter database Default temporary tablespace my_temp;

Les tablespaces undo


Les tablespces undo contient limage des blocs modifis par une transaction. Les images undo servent annuler les transaction non valids et lorsquil y a une modification,les utilisateurs font leur transaction au niveau du tablespace undo. Transaction acid: atomique tout sexcute ou rien ne sexcute. C :cohrence I :isolation
17

D : durabilit : doit tre permanant une transaction ne se fait que sur un seul segment qui lui peut contenir plusieurs transactions.

Utiliser pour Stock dans protect

undo Image avant transaction Rollback, consistance la lecture, requtes Undo segment

redo Donne en cour de modification

Redo log file

Show parameter undo_retention est utiliser pour indiquer les temps durant lequel les transactions seront stock au niveau de la des segments undo.les images undo non valids ne sont jamais supprime. Le temps de stockage peut tre grer par guarantee ou noguarantee. Les transactions valides seront stocks pendant 15mn. Cration dun tablespace UNDO
SQL> create undo tablespace My_UNDO 2 datafile 'C:\oraclexe\TP_Oracles\Tablespaces\My_UNDO01.DBF' size 50M;

Les attributs du tablespace undo


SQL> select autoextensible,bytes/1024/1024,increment_by*8192/1024/1024 2 from dba_data_files 3 where tablespace_name='MY_UNDO'

18

4 and file_name like '%MY_UNDO01.DBF'; AUT BYTES/1024/1024 INCREMENT_BY*8192/1024/1024 NO 50

Le temps de stockage
SQL> select retention 2 from dba_tablespaces 3 where tablespace_name='MY_UNDO'; RETENTION NOGUARANTEE SQL> show parameter undo_retention NAME undo_retention TYPE VALUE 900

integer

SQL> alter tablespace my_undo retention guarantee; SQL> show parameter undo_tablespace; NAME undo_tablespace SQL> alter system 2 set undo_tablespace='UNDO'; SQL> drop tablespace my_undo; TYPE VALUE MY_UNDO

string

19

Comment crer un utilisateur Create user alia identified by kimba Desc_dba_users : pour voir les proprits des utilisateurs
SQL> desc dba_users Nom NULL ? Type

USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE

NOT NULL VARCHAR2(30) NOT NULL NUMBER VARCHAR2(30) NOT NULL VARCHAR2(32) DATE

Select account status :pour voir quand lutilisateur a t cr et ltat du compte.


SQL> select account_status,default_tablespace,created 2 from dba_users 3 where username='KORKA'; ACCOUNT_STATUS OPEN DEFAULT_TABLESPACE SYSTEM 19/12/ CREATED

Select temporary : pour voir le tablespaces temporaire de alia.


SQL> select temporary_tablespace 2 from dba_users 3 where username='KORKA'; TEMPORARY_TABLESPACE TEMP

Pour autoriser lutilisateur a cr de tables


20

SQL> grant create session to korka;

Le profil lensemble de configuration pour grer les ressources de la machine et les mots de passes. Le quota rservation despaces Comment supprim un user On ne peut pas supprimer un user connect.
Drop user alia

Pour bloquer le compte on fait account lock ;


Alter user korka Account unlock;

Quand on cre un user on lui attribuant un schma (la collection des objets de user). Pour changer le tablespace par dfaut.
Alter database Default tablespace users; Alter user korka quato 0 on system;

Quota 0 system pour ne peut rien crer au niveau du tablespace system. Pour supprimer un user ayant des objets, il faut prciser la cascade
Drop user korka cascade ;

Un role contient lensemble de privilges


Grant connect,resource to korka ;

Il existe deux types de privilges sous oracle : objet et systme Les privilges objets autorisation sur les objets dun schma
21

Les privilges system autorisation niveau base de donnes. Exemple de privilge objet Grant priv1,priv2,priv3 On objet dest1,dest2,.. Destination:public,utilisateur,role.

Lorsquun utilisateur x1 donne un privilge (ses propres objets) un utilisateur x2, ladministrateur et x1 peuvent retirer le privilge x2. Mais lorsque lutilisateur x2 donne le privilge quil a reu de x1 x3, ni x1, ni ladministrateur ne peuvent lui le retire. Seul x2 peut le retirer ou que x1 retire le privilge x2 ce qui rompt la chaine des privilges. Sur scoot/tiger
Grant select on employees to korka; Grant select,update on employees to korka; Grant select on employees to korka with grant option;

Le privilge objet nest peut tre retir que par celui qui la donn.
Revoke select on employees from korka; SQL> select privilege from dba_tab_privs 2 where grantee='NAMATA' 3 and grantor='KORKA'; SQL> select privilege from dba_tab_privs,table_name,owner 2 where grantee='NAMATA'

22

3 and grantor='KORKA'; SQL> select grantee,privilege ,table_name from user_tab_privs where grantor='KORKA';

syntaxe pour le privilge system


grant priv1,priv2 to dest1,dest2 with admin option

exemple SQL> grant update any table to korka; Autorisation de privilges (GRANT) accepte. SQL> desc dba_sys_privs; Nom GRANTEE PRIVILEGE ADMIN_OPTION SQL> select privilege 2 from dba_sys_privs 3 where grantee='KORKA'; PRIVILEGE CREATE JOB CREATE TABLE NULL ? Type NOT NULL VARCHAR2(30) NOT NULL VARCHAR2(40) VARCHAR2(3)

La rvocation des privilges system ne se fait pas en cascade et ladministrateur peut retirer le privilge tout le monde.
Grant all privilege from korka;
23

Revoke all privilege from korka; Pour cer un role Create role nom role [identified by pwd]; 3

24

Vous aimerez peut-être aussi