0% ont trouvé ce document utile (0 vote)
402 vues72 pages

DB Oraclec

Transféré par

Houda EL Hajji
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
402 vues72 pages

DB Oraclec

Transféré par

Houda EL Hajji
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ADMINISTRATION DES BASES DE DONNEES

Pr BOUZIDI

Anne universitaire 2007-2008

Objectifs
Comprendre le rle et l'importance de chacune des tches de l'administration des bases de donnes Matriser ladministration de la base de donnes Oracle

D.BOUZIDI

Plan du cours
Introduction Architecture conceptuelle de la BD Oracle Installation et configuration du logiciel Oracle Database 10g Contrle la base de donnes Gestion du fichier de contrle Gestion des fichiers de journalisation Gestion des structures de stockages Administration des utilisateurs et des schmas Gestion des rles Sauvegarde / rcupration

Introduction

Rappel (1)
Base de donnes (BD) : ensemble de donnes organis en vue de son utilisation par des programmes correspondant des applications distinctes et de manire faciliter l'volution indpendante des donnes et des programmes. SGBD : ensemble de programmes qui permettent l'accs une BD Une table est llment de base dune BD
Constitue de lignes de donnes Chaque ligne comporte une ou plusieurs colonnes Une colonne unique d'une ligne unique est appele champ
Ligne

Colonne

Table
D.BOUZIDI

Champ 5

Rappel (2)
base de donnes relationnelle : Entit/Relation Contraintes d'intgrit : utilises pour garantir la validit des donnes stockes dans les tables Les types de contrainte suivants :
NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY

SQL : langage de programmation interactif standard permettant d'extraire et de mettre jour les infos d'une BD (interrogation, mj, contrle daccs, cohrence, intgrit, )
D.BOUZIDI 6

Tches d'un administrateur de BD (1)


Rle SI (Systme dInformation) : Administration et gestion efficace des donnes (lors de la mise en oeuvre de nouveaux systmes bass sur les Bases de Donnes)
viter la redondance des donnes viter un mauvais transfert d'un systme l'autre assurer la bonne comprhension des donnes
implmenter la conception de la BD

D.BOUZIDI

Tches d'un administrateur de BD (2)


Rle technologique (Niveau physique) : Administration et gestion efficiente des BD (lors de la mise en oeuvre de nouveaux serveurs de BD ou de nouvelles BD)
Evaluer le matriel pour le serveur de base de mat donnes donn Installer le logiciel Oracle Planifier la BD Crer et ouvrir la BD Cr Sauvegarder la BD Rcuprer la BD suite une panne cup Grer de la scurit s curit Surveiller les performances de la BD

D.BOUZIDI

Architecture conceptuelle de la BD Oracle

Objectifs
Matriser les concepts et le Ma Matriser les concepts et le fonctionnement de larchitecture oracle : fonctionnement de l larchitecture oracle :
Instance Instance Fichiers de donnes, Fichiers de donn donnes, Fichiers de paramtrage Fichiers de param paramtrage

D.BOUZIDI

10

Prsentation
Processus utilisateur Processus serveur PGA

Instance
Mmoire SGA Zone de mmoire partage

D.BOUZIDI

L'instance indispensable au bon L'instance indispensable au bon fonctionnement d'une base de donnes fonctionnement d'une base de donnes Oracle Oracle Les fichiers de donnes Les fichiers de donnes Les fichiers de donnes facultatifs (fichier Les fichiers de donnes facultatifs (fichier d'initialisation, fichier de mots de passe, d'initialisation, fichier de mots de passe, etc...) etc...)

D.BOUZIDI

Fichier ALERT Paramtres Fichier

Fichier Trace

Fichiers de donnes

Fichiers de contrle

Fichiers de journalisation

Fichier PWD

Base de donnes

11

Prsentation

12

Linstance
Instance
Mmoire SGA Cache des tampons des DATA
SMON PMON

Zone de mmoire partage Cache library Cache dictio D


LGWR ARCH CKPT

tampons Journalis ation


DBW

L'instance est la composition de 2 sous ensembles : L'instance est la composition de 2 sous ensembles : Une zone mmoire (SGA) pour stocker les donnes issues des Une zone mmoire (SGA) pour stocker les donnes issues des fichiers de donnes sur le disque dur. Afin de pouvoir les fichiers de donnes sur le disque dur. Afin de pouvoir les partager entre les diffrents processus. partager entre les diffrents processus. Des processus d'arrire plan :servent grer les transferts Des processus d'arrire plan :servent grer les transferts de donnes entre la mmoire et le disque dur, plus d'autres de donnes entre la mmoire et le disque dur, plus d'autres actions ncessaires au bon fonctionnement de la base de actions ncessaires au bon fonctionnement de la base de donnes. donnes.
D.BOUZIDI 13

System global Area


Instance
Mmoire SGA Cache des tampons des DATA
SMON PMON

Zone de mmoire partage Cache library Cache dictio D


LGWR ARCH CKPT

tampons Journalis ation


DBW

La SGA ou System global Area La SGA ou System global Area 1. Shared Pool :: zone de mmoire partage 1. Shared Pool zone de mmoire partage 2. Database Buffer Cache :: cache de tampons de donnes 2. Database Buffer Cache cache de tampons de donnes 3. Redo Log Buffer :: tampon de journalisation 3. Redo Log Buffer tampon de journalisation
La taille totale de la mmoire SGA est dfinie par le paramtre SGA_MAX_SIZE La taille totale de la mmoire SGA est dfinie par le paramtre SGA_MAX_SIZE Variable_size : :sont deux variables exprime la taille de lespace rserv la SGA Variable_size sont deux variables exprime la taille de lespace rserv la SGA fixedSize fixedSize D.BOUZIDI 14

System global Area


La SGA ou System global Area Shared Pool : utilise pour partager les informations sur utilis les objets de la base de donnes ainsi que sur les droits donn et privilges accords aux utilisateurs. privil accord se dcoupe en 2 blocs : d La Library Cache : stocke les informations sur les ordres SQL excuts rcemment dans une zone SQL ex cut r Cache qui contiendra le texte de l'ordre SQL, la version compile de l'ordre SQL et son plan d'excution. compil d'ex Le Dictionnary Cache : contenant les dfinitions des d objets de la base de donnes qui ont t utilis donn utilis rcemment. Permettra au serveur Oracle de ne pas avoir aller chercher ces informations sur le disque chaque excution d'une requte SQL . ex

D.BOUZIDI

15

System global Area


La SGA ou System global Area La SGA ou System global Area Database Buffer Cache :: Database Buffer Cache Sert stocker les blocs de donnes utiliss rcemment Sert stocker les blocs de donnes utiliss rcemment Fonctionne selon le principe dit du bloc ancien. Fonctionne selon le principe dit du bloc ancien. Sa taille est dfinie par deux paramtres Sa taille est dfinie par deux paramtres
DB_BLOCK_SIZE :: dfini lors de la cration de la base de DB_BLOCK_SIZE dfini lors de la cration de la base de donnes, reprsente la taille d'un bloc de donnes Oracle. donnes, reprsente la taille d'un bloc de donnes Oracle. Celui-ci est dfini de manire dfinitive et ne pourra plus Celui-ci est dfini de manire dfinitive et ne pourra plus tre modifi. tre modifi. DB_BLOCK_BUFFERS :: dfini le nombre de blocs Oracle qui DB_BLOCK_BUFFERS dfini le nombre de blocs Oracle qui pourront tre contenus dans le Database Buffer Cache. pourront tre contenus dans le Database Buffer Cache. Ce paramtre est devenu obsolte partir de la version 9i et Ce paramtre est devenu obsolte partir de la version 9i et a t remplac par DB_CACHE-Size. Exprim en octets ce a t remplac par DB_CACHE-Size. Exprim en octets ce paramtre modifiable dynamiquement paramtre modifiable dynamiquement alter system set db_cache_size=100M; alter system set db_cache_size=100M;
D.BOUZIDI 16

System global Area


La SGA ou System global Area La SGA ou System global Area Redo Log Buffer :: sert exclusivement enregistrer toutes Redo Log Buffer sert exclusivement enregistrer toutes les modifications apportes sur les donnes de la base. les modifications apportes sur les donnes de la base. Mmoire de type circulaire, et dont on pourra changer la Mmoire de type circulaire, et dont on pourra changer la taille avec le paramtre LOG_BUFFER taille avec le paramtre LOG_BUFFER Oracle ne pourra craser les donnes contenues dans ce Oracle ne pourra craser les donnes contenues dans ce buffer que si elles ont t crites dans les fichiers buffer que si elles ont t crites dans les fichiers REDOLOG FILE REDOLOG FILE Le paramtre dfinissant la taille de Redo log buffer est Le paramtre dfinissant la taille de Redo log buffer est log_buffer log_buffer

D.BOUZIDI

17

Program global Area


Processus utilisateur Processus serveur PGA

Instance
Mmoire SGA Zone de mmoire partage

Mmoire non partage. Mmoire non partage. seulement utilise par des processus serveur ou d'arrire plan seulement utilise par des processus serveur ou d'arrire plan alloue lors du dmarrage du processus et dsalloue lors de alloue lors du dmarrage du processus et dsalloue lors de l'arrt du processus. l'arrt du processus. Elle contient :: Elle contient La zone de tri :: Appele SORT AREA. La zone de tri Appele SORT AREA. Les informations de sessions, les privilges de l'utilisateur Les informations de sessions, les privilges de l'utilisateur Le Stack Space :: Cette zone contiendra toutes les autres Le Stack Space Cette zone contiendra toutes les autres variables d'environnement et de session de l'utilisateur variables d'environnement et de session de l'utilisateur
D.BOUZIDI 18

Les processus d'arrire plan


Instance
Mmoire SGA Cache des tampons des DATA
SMON PMON

tampons Journalis ation


DBW

Zone de mmoire partage Cache library Cache dictio D


LGWR ARCH CKPT

Le processus SMON (System Monitor) sert :: Le processus SMON (System Monitor) sert Corriger les plantages de l'instance Corriger les plantages de l'instance Vrifier la synchronisation des donnes .. Vrifier la synchronisation des donnes Si l'instance plante :: Si l'instance plante Rejouer des transactions de REDO LOG FILE valides Rejouer des transactions de REDO LOG FILE valides mais non non enregistres sur le disque dur mais non non enregistres sur le disque dur Ouvrir la BD pour les utilisateurs les informations non Ouvrir la BD pour les utilisateurs les informations non valides ne sont pas accessibles valides ne sont pas accessibles Annuler ttes les transactions non valids Annuler ttes les transactions non valids SMON sert nettoyer les segments TMP et dfragmente les SMON sert nettoyer les segments TMP et dfragmente les fichiers de donnes fichiers de donnes
D.BOUZIDI

19

Les processus d'arrire plan


Le processus PMON (Process Monitor) ddi aux Le processus PMON (Process Monitor) ddi aux utilisateurs, il sert :: utilisateurs, il sert annuler les transactions d'une session (lors d'un plantage annuler les transactions d'une session (lors d'un plantage de la session par exemple) de la session par exemple) relcher tous les verrous poss par la session, relcher tous les verrous poss par la session, relcher toutes les ressources dtenues par la session. relcher toutes les ressources dtenues par la session. Le processus DBWR (DataBaseWriter) ddi :: Le processus DBWR (DataBaseWriter) ddi l'criture du Database Buffer Cache dans les fichiers de l'criture du Database Buffer Cache dans les fichiers de donnes donnes vrifier en permanence le nombre de blocs libres dans le vrifier en permanence le nombre de blocs libres dans le Database Buffer Cache afin de laisser assez de place de Database Buffer Cache afin de laisser assez de place de disponible pour l'criture des donnes dans le buffer disponible pour l'criture des donnes dans le buffer Le processus DBWR se dclanche :: Le processus DBWR se dclanche Lorsque le nombre de bloc dirty atteint une certaine limite Lorsque le nombre de bloc dirty atteint une certaine limite Lorsqu'un processus recherchant de blocs libres dans le Lorsqu'un processus recherchant de blocs libres dans le Database Buffer Cache, et qu'il n a trouv. Database Buffer Cache, et qu'il n a trouv. Lors de timeout (3 secondes par dfaut) Lors de timeout (3 secondes par dfaut) Lors d'un checkpoint Lors d'un checkpoint
D.BOUZIDI

20

Les processus d'arrire plan


Le processus LGWR :: va crire les informations contenues dans Le processus LGWR va crire les informations contenues dans le REDO LOG Buffer dans les fichiers REDOLOG FILE. le REDO LOG Buffer dans les fichiers REDOLOG FILE. Il se dclanche :: Il se dclanche Qd une transaction est termine avec un COMMIT Qd une transaction est termine avec un COMMIT Qd le REDO LOG Buffer est au 1/3 plein (paramtrable) Qd le REDO LOG Buffer est au 1/3 plein (paramtrable) Qd il y a plus de 1Mo d'infos de log contenues dans le buffer Qd il y a plus de 1Mo d'infos de log contenues dans le buffer Le processus CKPT :: sert mettre jour les en-ttes des Le processus CKPT sert mettre jour les en-ttes des fichiers de donnes, et les fichiers de contrle CONTROL FILE fichiers de donnes, et les fichiers de contrle CONTROL FILE afin de spcifier que l'action de CHECKPOINT s'est bien afin de spcifier que l'action de CHECKPOINT s'est bien droule droule Le processus ARCH :: copie un fichier REDO LOG FILE un Le processus ARCH copie un fichier REDO LOG FILE un autre emplacement. autre emplacement. La copie se dclenche automatiquement en mode La copie se dclenche automatiquement en mode ARCHIVELOG lors du changement de groupe de REDO LOG ARCHIVELOG lors du changement de groupe de REDO LOG FILE (en mode NOARCHIVELOG le processus n'existe pas). FILE (en mode NOARCHIVELOG le processus n'existe pas).
D.BOUZIDI 21

Excution des requtes


Une requte SELECT :: Le client se connecte au serveur, ce qui Une requte SELECT Le client se connecte au serveur, ce qui gnre la cration d'un processus serveur. gnre la cration d'un processus serveur. Lexcution dune requte SELECT seffectue en trois phases :: Lexcution dune requte SELECT seffectue en trois phases Le parsage :: Le parsage Vrifier lexistence dune requte identique (Algorithme de Vrifier lexistence dune requte identique (Algorithme de Hachage) dans la LIBRARY CACHE Hachage) dans la LIBRARY CACHE Vrifier la syntaxe de la requte, les noms des objets et les Vrifier la syntaxe de la requte, les noms des objets et les privilges de lutilisateur (DICTIONNARY CACHE) privilges de lutilisateur (DICTIONNARY CACHE) Verrouiller les objets en question durant la phase de Verrouiller les objets en question durant la phase de parsage afin d'viter toutes modifications de structure. parsage afin d'viter toutes modifications de structure. Gnrer le meilleur plan d'excution de la requte qui sera Gnrer le meilleur plan d'excution de la requte qui sera enregistr dans LIBRARY CACHE afin d'optimiser les enregistr dans LIBRARY CACHE afin d'optimiser les prochaines excutions de la requte. prochaines excutions de la requte. L'excution :: Le serveur excute la requte et rcupre les donnes L'excution Le serveur excute la requte et rcupre les donnes Le fetch Le fetch Rcupration des lignes et renvoie au processus utilisateur Rcupration des lignes et renvoie au processus utilisateur sous leur forme brute. (le formatage se fait au niveau du sous leur forme brute. (le formatage se fait au niveau du client selon les paramtres dfinis par lutilisateur client selon les paramtres dfinis par lutilisateur
D.BOUZIDI 22

Excution des requtes


Une requte DML :: Une requte DML Le parsage :: Le parsage Le mme scnario que pour une requte SELECT. Le mme scnario que pour une requte SELECT. L'excution :: L'excution Pour assurer une bonne cohrence des donnes, Pour assurer une bonne cohrence des donnes, cration par le serveur cration par le serveur Une image avant :: utile pour les autres utilisateurs ou Une image avant utile pour les autres utilisateurs ou en cas dannulation, enregiste dans le segment en cas dannulation, enregiste dans le segment ROLLBack ROLLBack Une image aprs :: utile pour la transaction en cours). Une image aprs utile pour la transaction en cours).

D.BOUZIDI

23

Installation et configuration du logiciel Oracle Database 10g

Objectifs
Connatre la configuration requise pour le systme Utiliser l'architecture Optimal Flexible Architecture (OFA) Installer et configurer le logiciel avec Oracle Universal Installer

D.BOUZIDI

25

Configuration systme requise


512 Mo de mmoire physique (RAM) 1 Go d'espace de swap 400 Mo d'espace disque utilis comme espace temporaire (/tmp ou \Temp) 1,5 Go d'espace disque pour le logiciel Oracle 1,5 Go d'espace disque pour la base de donnes prconfigure

D.BOUZIDI

26

Architecture OFA (Optimal Flexible Architecture)


Lobjectif de l'architecture OFA est de :
dfinir une organisation des rpertoires (application, base de donnes, ) recommender une convention de nomage des fichiers

OFA permet de faciliter les tches d'administration rptitives :


basculement entre plusieurs bases de donnes Oracle gestion et administration adquate de la croissance de la base de donnes Contribution limination de la fragmentation de l'espace libre

D.BOUZIDI

27

Architecture OFA (Optimal Flexible Architecture)


Dfinir les points de montage dansl e cas de system UNIX:
/u01 /disk01

Nommer les rpertoires :


/u01/app/oracle /u01/app/applmgr

Nommer les fichiers :


Fichiers de contrle : controln.ctl Fichiers de journalisation : redon.log Fichiers de donnes : tn.dbf

D.BOUZIDI

28

Les variables d'environnement


ORACLE_SID : nom de l'instance (par dfaut ORCL) ORACLE_HOME : rpertoire de base contenant le logiciel Oracle ORACLE_BASE : base de la structure de rpertoires Oracle pour l'architecture OFA NLS_LANG : paramtres de langue, de territoire et de jeu de caractres client

D.BOUZIDI

29

Dmarrage de Oracle Universal Installer

D.BOUZIDI

30

Emplacement et type dinstallation

D.BOUZIDI

31

Liste des produits de linstallation

D.BOUZIDI

32

Lancement de linstallation

Deux Messages Box affichant des erreurs A 43% de linstallation, cliquer sur OK Un autre 63%, cliquer sur ressayer
D.BOUZIDI 33

Assistant de Configuration des service NET, iSQL et BD

D.BOUZIDI

34

Configuration de la Base de donnes

D.BOUZIDI

35

Fin de linstallation

D.BOUZIDI

36

Contrle la base de donnes Database 10g

Objectifs
dmarrer et arrter des outils : iSQL*Plus et Enterprise Manager Database Control dmarrer et arrter le processus d'coute Oracle dmarrer et arrter Oracle Database 10g

D.BOUZIDI

38

Dmarrer et arrter iSQL*Plus


$ isqlplusctl start iSQL*Plus 10.1.0.2.0 Copyright (c) 2004 Oracle. Starting iSQL*Plus ... iSQL*Plus started.

All rights reserved.

$ isqlplusctl stop iSQL*Plus 10.1.0.2.0 Copyright (c) 2004 Oracle. Stopping iSQL*Plus ... iSQL*Plus stopped.

All rights reserved.

D.BOUZIDI

39

Structure de gestion
Les trois composants de la structure de gestion d'Oracle Database 10g sont les suivants :
Instance de base de donnes Processus d'coute Interface de gestion (Database Control)

Database Control

Listener
40

D.BOUZIDI

Dmarrer et arrter Database Control


$ emctl start dbconsole TZ set to US/Pacific Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0 Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved. http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication Starting Oracle Enterprise Manager 10g Database Control ...................... started. -----------------------------------------------------------------Logs are generated in directory /u01/app/oracle/product/10.1.0/db_1/edrsr9p1.us.oracle.com_orcl/sy sman/log

$ emctl stop dbconsole TZ set to US/Pacific Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0 Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved. http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication Stopping Oracle Enterprise Manager 10g Database Control ... ... Stopped.

D.BOUZIDI

41

Accder Database Control

D.BOUZIDI

42

Page d'accueil Database

D.BOUZIDI

43

Modifier le statut du processus d'coute

D.BOUZIDI

44

Etapes des procdures de dmarrage et d'arrt


DEMARRAGE OUVERTURE Ouverture de tous les fichiers conformment au fichier de contrle de cette instance.

MOUNT

NOMOUNT

Ouverture du fichier de contrle de cette instance.

Dmarrage de l'instance. ARRET ARRET

D.BOUZIDI

45

Options d'arrt
Mode d'arrt Permettre de nouvelles connexions Attendre la fin des sessions en cours Attendre la fin des transactions en cours Imposer un point de reprise et fermer les fichiers Mode d'arrt : A Abort T Transactional I Immediate N Normal x o NON OUI A x x x x I x x x o T x x o o N x o o o

D.BOUZIDI

46

Diffrents types d'arrt


Transfert de fonds Arrt en mode Normal Arrt en Arrt en mode mode Immediate Transactional

1 2 3 4 5

Vrification de soldes Ajout de nouveaux fonds Retrait de fonds de l'ancien compte Validation Dconnexion

Arrt de la base de donnes donn

Arrt de la base de donnes donn Arrt de la base de donnes donn

D.BOUZIDI

47

Options SHUTDOWN
Vers le bas :
Pendant les oprations

Le cache de SHUTDOWN NORMAL tampons de la ou base de donnes SHUTDOWN est crit dans les TRANSACTIONAL fichiers de donnes ou Les modifications SHUTDOWN IMMEDIATE non valides sont annules Les ressources sont libres Base de donnes cohrente (base de donnes propre)
D.BOUZIDI

Vers le haut :
Pas de rcupration d'instance

48

Options SHUTDOWN
Vers le bas :
Vers le haut : Les fichiers de Les mmoires SHUTDOWN ABORT journalisation en ou tampon ligne sont chec d'une modifies ne utiliss pour instance sont pas crites ou rappliquer dans les STARTUP FORCE les modifications fichiers de Les segments donnes d'annulation Les sont utiliss modifications pour annuler les non valides ne modifications sont pas Base de donnes non valides annules incohrente Les ressources (base de donnes "dirty") sont libres
49

Pendant les oprations

D.BOUZIDI

Options SHUTDOWN
STARTUP [Option] STARTUP [Option] NOMOUNT :: Cr la SGA et dmarre les processus en arrire NOMOUNT Cr la SGA et dmarre les processus en arrire plan mais ne permet pas l'accs la base (reste un OPEN faire). plan mais ne permet pas l'accs la base (reste un OPEN faire). MOUNT :: Monte la base pour certaines activits DBA mais ne MOUNT Monte la base pour certaines activits DBA mais ne permet aucun accs la base. permet aucun accs la base. OPEN :: Permet aux utilisateurs d'accder la base. OPEN Permet aux utilisateurs d'accder la base. EXCLUSIVE :: Autorise l'instance courant seulement accder EXCLUSIVE Autorise l'instance courant seulement accder la base. la base. PFILE :: Spcifie le fichier d'initialisation prendre en compte. PFILE Spcifie le fichier d'initialisation prendre en compte. FORCE :: Annule l'instance courante avant d'effectuer un FORCE Annule l'instance courante avant d'effectuer un dmarrage normal. dmarrage normal. RESTRICT :: Autorise seulement l'accs aux utilisateurs avec le RESTRICT Autorise seulement l'accs aux utilisateurs avec le privilge RESTRICTED SESSION. privilge RESTRICTED SESSION. RECOVER Dmarre la restauration media quand la base RECOVER Dmarre la restauration media quand la base dmarre. dmarre.

D.BOUZIDI

50

Exemple de commande dmarrage et Exemple de commande dmarrage et darrt de la base de donnes darrt de la base de donnes
Dmarre l'instance et ouvre la base de donnes :: Dmarre l'instance et ouvre la base de donnes
STARTUP PFILE=init015.ora STARTUP PFILE=init015.ora

Fait passer la base de donnes de l'tat NOMOUNT Fait passer la base de donnes de l'tat NOMOUNT MOUNT :: MOUNT
ALTER DATABASE ORCL MOUNT; ALTER DATABASE ORCL MOUNT;

Ouvert la base de donnes en mode lecture seule Ouvert la base de donnes en mode lecture seule (READ ONLY) :: (READ ONLY)
ALTER DATABASE ORCL OPEN READ ONLY; ALTER DATABASE ORCL OPEN READ ONLY;

Arrte de ll instance et la base de donnes :: Arrte de instance et la base de donnes


SHUTDOWN Immediate; SHUTDOWN Immediate;
D.BOUZIDI 51

Ouvrir une base de donnes en mode lecture seule (READ ONLY)


Toute base de donnes peut tre ouverte en mode Toute base de donnes peut tre ouverte en mode lecture seule. lecture seule. Dans ce mode, vous pouvez :: Dans ce mode, vous pouvez lancer des interrogations, lancer des interrogations, effectuer des oprations de tri sur disque effectuer des oprations de tri sur disque avec des tablespaces grs en local, avec des tablespaces grs en local, utiliser des fichiers de donnes hors ligne utiliser des fichiers de donnes hors ligne et en ligne, et non des tablespaces, et en ligne, et non des tablespaces, rcuprer des fichiers de donnes hors rcuprer des fichiers de donnes hors ligne et des tablespaces. ligne et des tablespaces.
52

D.BOUZIDI

Fichier de paramtres d'initialisation


Instance
Mmoire SGA Cache des tampons des DATA
SMON PMON

Zone de mmoire partage Cache library Cache dictio D


LGWR ARCH CKPT

tampons Journalis ation


DBW

init001.ora

SQL> CONNECT sys/PwdSys AS SYSDBA SQL> CONNECT sys/PwdSys AS SYSDBA SQL> STARTUP SQL> STARTUP PFILE=C:\oracle\product\10.1.0\admin\orcl\pfile\init001.ora PFILE=C:\oracle\product\10.1.0\admin\orcl\pfile\init001.ora

Paramtres D.BOUZIDI D.BOUZIDI

Dimensionnez la mmoire SGA. Dimensionnez la mmoire SGA. Dfinissez les valeurs par dfaut de la BD et de l'instance. Dfinissez les valeurs par dfaut de la BD et de l'instance. Dfinissez les limites relatives aux utilisateurs ou aux Dfinissez les limites relatives aux utilisateurs ou aux processus. processus. Dfinissez les limites relatives aux ressources de la BD. Dfinissez les limites relatives aux ressources de la BD. Dfinissez les divers attributs physiques de la BD, tels que Dfinissez les divers attributs physiques de la BD, tels que la taille des blocs. la taille des blocs. Indiquez l'emplacement des fichiers de contrle, des Indiquez l'emplacement des fichiers de contrle, des fichiers journaux archivs, du fichier ALERT et des fichiers fichiers journaux archivs, du fichier ALERT et des fichiers trace. trace.

Fichier

53

Utiliser les paramtres

54

Exemple de fichier de paramtres


# Initialization Parameter File: initU15.ora # Initialization Parameter File: initU15.ora db_name = U15 db_name = U15 control_files = (/DISK1/control01.con, control_files = (/DISK1/control01.con, /DISK2/control02.con) /DISK2/control02.con) db_block_size = 8192 db_block_size = 8192 db_block_buffers = 2048 db_block_buffers = 2048 shared_pool_size = 52428800 shared_pool_size = 52428800 log_buffer = 64K log_buffer = 64K processes = 50 processes = 50 db_files = 1024 db_files = 1024 log_files = 10 log_files = 10 max_dump_file_size = 10240 max_dump_file_size = 10240 background_dump_dest = (/home/disk3/user15/BDUMP) background_dump_dest = (/home/disk3/user15/BDUMP) user_dump_dest = (/home/disk3/user15/UDUMP) user_dump_dest = (/home/disk3/user15/UDUMP) core_dump_dest = (/home/disk3/user15/CDUMP) core_dump_dest = (/home/disk3/user15/CDUMP) rollback_segments = rollback_segments = (r01,r02,r03,r04,r05,r06,r07,r08) (r01,r02,r03,r04,r05,r06,r07,r08) ... ...

D.BOUZIDI

55

Quelques paramtres
BACK_GROUND_DUMP_DEST :Emplacement o les fichiers traces des processus en arrire plan sont enregistrs. USER_DUMP_DEST Emplacement o les fichiers traces sont crs. CONTROL_FILES : Noms des fichiers de contrle. DB_CACHE_SIZED : taille du tampon de donnes, (remplace le paramtre DB_BLOCK_BUFFERS dfinissant le nombre de blocs mis en cache dans la SGA, paramtre obsolte partir de la version 9i) DB_NAME : Identifiant de la base de donnes de 5 caractres ou moins. (seul paramtre ncessaire la cration d'une base). SHARED_POOL_SIZE : Taille en octets de la zone de partage. IFILE : Permet de rfrencer un autre fichier de paramtre imbriquer dans la dfinition. LOG_BUFFER : Nombre d'octets allous au buffer redolog dans la SGA. MAX_DUMP_FILE_SIZE : Taille maximum des fichiers trace, spcifie en nombre de blocs de l'OS. PROCESSES : Nombre de processus de l'OS pouvant se connecter simultanment linstance. SQL_TRACE : Active loutil de suivi SQL pour chaque session utilisateur. TIMED_STATISTICS : Active ou non le minutage dans les fichiers trace et sur les crans.
D.BOUZIDI 56

Vues dynamiques des performances


Sont gres par le serveur Oracle et mises jour en permanence. Sont gres par le serveur Oracle et mises jour en permanence. Contiennent des donnes sur les structures de disque et de Contiennent des donnes sur les structures de disque et de mmoire. mmoire. Contiennent des donnes utiles pour le rglage des performances. Contiennent des donnes utiles pour le rglage des performances. Sont associes des synonymes publics portant le prfixe V$. Sont associes des synonymes publics portant le prfixe V$. v$fixed_table contient le nom de toutes les vues disponibles v$fixed_table contient le nom de toutes les vues disponibles
V$PARAMETER : des infos sur les paramtres d'initialisation param

Mmoire SGA

V$SYSTEM_PARAMETER : des infos sur les paramtres param dinitialisation et leurs modification ventuelles V$SGA : des infos sur la SGA V$OPTION : la liste des options installes sur le serveur Oracle install V$PROCESS : des infos sur les processus actifs courant V$SESSION : des infos sur la session courante V$VERSION : Liste le numro de version et les composants num V$INSTANCE : Affiche l'tat de l'instance courante l'

D.BOUZIDI

57

Afficher les vues dynamiques des performances


OUVERTURE Dictionnaire de donnes donn

MOUNT

NOMOUNT

Lecture des donnes donn sur disque

ARRET

Lecture des donnes donn en mmoire m

D.BOUZIDI

58

Affichage des paramtres


Afficher les valeurs des paramtres en cours Afficher les valeurs des paramtres en cours
Excutez la commande :: Excutez la commande
SHOW PARAMETER control SHOW PARAMETER control

Interrogez la vue dynamique des performances Interrogez la vue dynamique des performances V$PARAMETER :: V$PARAMETER
SELECT name FROM v$parameter WHERE name LIKE '%control%'; SELECT name FROM v$parameter WHERE name LIKE '%control%';

Certains paramtres d'initialisation peuvent tre modifis Certains paramtres d'initialisation peuvent tre modifis pendant l'excution d'une instance (grce aux commandes pendant l'excution d'une instance (grce aux commandes Alter session et Alter system). Alter session et Alter system).
ALTER SESSION SET SQL_TRACE=true; //session courante ALTER SESSION SET SQL_TRACE=true; //session courante ALTER SYSTEM SET TIMED_STATISTICS=true; ALTER SYSTEM SET TIMED_STATISTICS=true; ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED; ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED;
// DEFERRED Indique que le paramtre ne sera modifi qu' // DEFERRED Indique que le paramtre ne sera modifi qu' partir de la prochaine session. partir de la prochaine session.
D.BOUZIDI 59

Gestion des sessions


Activer et dsactiver une session en mode restreint Activer et dsactiver une session en mode restreint Excutez la commande STARTUP pour restreindre Excutez la commande STARTUP pour restreindre l'accs une base de donnes :: l'accs une base de donnes
STARTUP RESTRICT STARTUP RESTRICT

Excutez la commande ALTER SYSTEM pour mettre Excutez la commande ALTER SYSTEM pour mettre une instance en mode restreint :: une instance en mode restreint
ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM ENABLE RESTRICTED SESSION;

Interrompre une session Interrompre une session Dans la vue dynamique des performances V$SESSION, Dans la vue dynamique des performances V$SESSION, identifiez la session interrompre :: identifiez la session interrompre
SELECT sid, serial# FROM v$session WHERE SELECT sid, serial# FROM v$session WHERE username='SCOTT'; username='SCOTT';

Excutez la commande ALTER SYSTEM :: Excutez la commande ALTER SYSTEM


ALTER SYSTEM KILL SESSION '7,15'; ALTER SYSTEM KILL SESSION '7,15';

D.BOUZIDI

60

Fichiers ALERT et TRACE


Les fichiers trace peuvent tre crits par les Les fichiers trace peuvent tre crits par les processus serveur et les processus d'arrireprocessus serveur et les processus d'arrireplan. plan. Le serveur Oracle vide les informations relatives Le serveur Oracle vide les informations relatives aux erreurs dans des fichiers trace. aux erreurs dans des fichiers trace. Le fichier ALERT est le journal chronologique Le fichier ALERT est le journal chronologique des messages et des erreurs. des messages et des erreurs. La fonction trace par processus serveur peut La fonction trace par processus serveur peut tre active ou dsactive par :: tre active ou dsactive par une commande ALTER SESSION, une commande ALTER SESSION, le paramtre SQL_TRACE. le paramtre SQL_TRACE.

D.BOUZIDI

61

Gestion du fichier de contrle

Utiliser le fichier de contrle


Petit fichier binaire :: Indique au serveur o sont situs Petit fichier binaire Indique au serveur o sont situs les fichiers constituant la base de donnes les fichiers constituant la base de donnes Ncessaire :: Ncessaire
au montage au montage au fonctionnement de la base de donnes au fonctionnement de la base de donnes

Li une seule base de donnes Li une seule base de donnes Modifi frquemment par le serveur oracle. Modifi frquemment par le serveur oracle. Indispensable pour la restauration de la base. Indispensable pour la restauration de la base. Doit tre multiplex Doit tre multiplex En cas de perte du fichier de contrle, En cas de perte du fichier de contrle, la base de donnes doit tre restaure la base de donnes doit tre restaure Pour afficher les noms des fichiers de CTL Pour afficher les noms des fichiers de CTL
show parameter control_files show parameter control_files select value from v$parameter where name='control_files'; select value from v$parameter where name='control_files';
D.BOUZIDI 63

Contenu du fichier de contrle


Nom et identificateur de la base de donnes Nom et identificateur de la base de donnes Date de cration de la base de donnes Date de cration de la base de donnes Emplacement des fichiers de donnes et de journalisation Emplacement des fichiers de donnes et de journalisation Noms des tablespaces et les fichiers de donnes (nom de Noms des tablespaces et les fichiers de donnes (nom de fichier,statut lecture/criture, en ligne ou non) fichier,statut lecture/criture, en ligne ou non) Les fichiers log en ligne Les fichiers log en ligne Historique de journalisation archivs Historique de journalisation archivs Informations de sauvegarde Informations de sauvegarde Informations sur les blocs corrompus Informations sur les blocs corrompus

D.BOUZIDI

64

Multiplexer le fichier de contrle


control_files=("C:\oracle\product\10.1.0\oradata\orcl\control01.ctl", control_files=("C:\oracle\ product\ 10.1.0\ oradata\ orcl\ "C:\oracle\product\10.1.0\oradata\orcl\control02.ctl", "C:\ oracle\ product\ 10.1.0\ oradata\ orcl\ "C:\oracle\product\10.1.0\oradata\orcl\control03.ctl") "C:\ oracle\ product\ 10.1.0\ oradata\ orcl\

Unit
control01.ctl

Unit 2 Unit 3
control02.ctl control03.ctl

D.BOUZIDI

65

Multiplexer le fichier de contrle


Deux mthodes pour multiplexer le fichier de contrle :: Deux mthodes pour multiplexer le fichier de contrle Mthode 1 Mthode 1
Visualiser les fichiers de contrle existants Visualiser les fichiers de contrle existants Arrter la base Arrter la base Modifier le paramtre CONTROL_FILES dans le fichier init.ora Modifier le paramtre CONTROL_FILES dans le fichier init.ora Copier le fichier de contrle en utilisant les commandes OS Copier le fichier de contrle en utilisant les commandes OS Dmarrer la base de donnes Dmarrer la base de donnes

Mthode 2 Mthode 2
Ajouter le nouveau fichier de contrle /disk3/oradata/orcl/control04.ctl Ajouter le nouveau fichier de contrle /disk3/oradata/orcl/control04.ctl dans le paramtre CONTROL_FILES en utilisant la commande :: dans le paramtre CONTROL_FILES en utilisant la commande
alter system set control_files= alter system set control_files= '/disk1/oradata/orcl/control01.ctl', '/disk1/oradata/orcl/control01.ctl', '/disk1/oradata/orcl/control02.ctl ', '/disk1/oradata/orcl/control02.ctl ', '/disk1/oradata/orcl/control03.ctl ', '/disk1/oradata/orcl/control03.ctl ', '/disk1/oradata/orcl/control04.ctl' scope=spfile; '/disk1/oradata/orcl/control04.ctl' scope=spfile; '/disk1/oradata/orcl/control04.ctl'

Arrter la base Arrter la base Copier le fichier de contrle en utilisant les commandes OS Copier le fichier de contrle en utilisant les commandes OS Dmarrer la base de donnes Dmarrer la base de donnes
Oracle met jours les fichiers de contrle en mme temps, mais seul le premier fichier cit dans le Oracle met jours les fichiers de contrle en mme temps, mais seul le premier fichier cit dans le paramtre CONTROL_FILES est consult. paramtre CONTROL_FILES est consult. //SCOPE=SPFILE:le changement de paramtre est enregistr dans le SPFILE, et ne sera pris en compte //SCOPE=SPFILE:le changement de paramtre est enregistr dans le SPFILE, et ne sera pris en compte quau prochain dmarrage de l'instance. Utilis pour les paramtres non dynamique quau prochain dmarrage de l'instance. Utilis pour les paramtres non dynamique

D.BOUZIDI

66

sauvegarder le fichier de contrle


Deux mthodes :: Deux mthodes
Commande sauvegardant le fichier de contrle en un fichier binaire :: Commande sauvegardant le fichier de contrle en un fichier binaire alter database backup controlfile to nom_du_fichier alter database backup controlfile to nom_du_fichier Commande crant un fichier en format texte dans le rpertoire Commande crant un fichier en format texte dans le rpertoire USER_DUMP_DEST USER_DUMP_DEST alter database backup controlfile to trace; alter database backup controlfile to trace;

Cest recommand de sauvegarder le fichier de contrle chaque Cest recommand de sauvegarder le fichier de contrle chaque modification de la structure de la base (Ajout, renomme ou modification de la structure de la base (Ajout, renomme ou suppression de fichiers de donnes ou de journalisation). suppression de fichiers de donnes ou de journalisation).

D.BOUZIDI

67

Obtenir des informations

V$CONTROLFILE : affiche tous les noms des fichiers de contrle et et leur statut qui peut tre NULL ou INVALID V$CONTROLFILE_RECORD_SECTION : plusieurs infos sur le fichier de contrle (TYPE : Type de la section, RECORD_SIZE : Taille d'une d'une entre en bits, RECORDS_TOTAL : Nombre d'entres alloues pour la entr d'entr allou section, RECORDS_USED : Nombres d'entres utilises dans la d'entr utilis section, FIRST_INDEX : Index de la premire entre, LAST_INDEX : premi entr Index de la dernire entre) derni entr V$KCCDI : affiche la valeur de MAXLOGMEMBERS (DIMLM) Liste des vues qui lisent directement du fichier de contrle : V$THREAD, V$DATABASE, V$DATAFILE, V$DATAFILE_HEADER V$LOGFILE, V$ARCHIVED_LOG, V$BACKUP, V$BACKUP_DATAFILE, V$BACKUP_PIECE, V$BACKUP_REDOLOG, V$BACKUP_SET,

Fichier de contrle

D.BOUZIDI

68

Gestion des fichiers de journalisation (les fichiers log)

Utiliser des fichiers de journalisation Utiliser des fichiers de journalisation


Permettent la base de garder une trace de toutes les altrations de Permettent la base de garder une trace de toutes les altrations de donnes, donnes, En cas de crash de la base, ils permettent de rejouer les modifications En cas de crash de la base, ils permettent de rejouer les modifications apportes la base. apportes la base. Doivent tre multiplixs au moins au nombre de deux Doivent tre multiplixs au moins au nombre de deux

Instance
Mmoire SGA Zone de mmoire partage

LGW ARC

Fichiers de donnes

Fichiers de contrle Base de donnes

Fichiers de journalisation Fichiers archivages des logs

D.BOUZIDI

70

Mode de fonctionnement des fichiers de Mode de fonctionnement des fichiers de journalisation journalisation

Groupe 1

Groupe 2

Groupe 3

Membre1

Membre1

Membre1

Unit 1 Unit

Membre2

Membre2

Membre2 Unit 2 Unit

En mode NOARCHIVELOG, un fichier log plein est disponible aprs que les En mode NOARCHIVELOG, un fichier log plein est disponible aprs que les changements enregistrs dedans sont crits dans les fichiers de donnes. changements enregistrs dedans sont crits dans les fichiers de donnes. En ARCHIVELOG, un fichier log plein est disponible aprs que les changements En ARCHIVELOG, un fichier log plein est disponible aprs que les changements effectus dedans sont crits dans les fichiers de donnes et tait archiv effectus dedans sont crits dans les fichiers de donnes et tait archiv Un fichier log en ligne ou archiv est identifi par son numro de squence Un fichier log en ligne ou archiv est identifi par son numro de squence
D.BOUZIDI 71

Obtenir des informations Obtenir des informations


Sur l'archivage partir :: Sur l'archivage partir
Ligne de commande ::ARCHIVE LOG LIST; Ligne de commande ARCHIVE LOG LIST; V$DATABASE (NAME,LOG_MODE)SELECT name, log_mode FROM v$database; V$DATABASE (NAME,LOG_MODE) SELECT name, log_mode FROM v$database; V$INSTANCE (ARCHIVER) V$INSTANCE (ARCHIVER) SELECT archiver FROM v$instance;
SELECT archiver FROM v$instance;

Sur les groupes partir :: Sur les groupes partir


V$THREAD (groups, current_group#, sequence# )) //fichier log en cours V$THREAD (groups, current_group#, sequence# //fichier log en cours SELECT groups, current_group#, sequence# FROM v$thread; SELECT groups, current_group#, sequence# FROM v$thread;

Sur les groupes et les membres partir :: Sur les groupes et les membres partir
V$LOG (group#, members, status, sequence, bytes) //les infos du fichier CTL V$LOG (group#, members, status, sequence, bytes) //les infos du fichier CTL status : unused (jamais crit), current (en ligne et en cours d'criture), active (en ligne et ncessaires la restauration de la base ), inactive (en ligne non ncessaires la restauration de la base)
SELECT group#, sequence#, bytes, members, status FROM v$log ; SELECT group#, sequence#, bytes, members, status FROM v$log ;

V$LOGFILE (group#, type, status, member) V$LOGFILE (group#, type, status, member) status : invalid (le fichier est inaccessible), stale (le fichier est incomplet), deleted (le fichier nest pas utilis), vide (le fichier est en cours dutilisation)
D.BOUZIDI SELECT * FROM v$logfile; SELECT * FROM v$logfile; 72

Changements de fichier de Changements de fichier de journalisation et points de reprise journalisation et points de reprise
Un log switch est le point o la base arrte d'crire dans l'un des Un log switch est le point o la base arrte d'crire dans l'un des fichiers redo en ligne et commence crire dans un autre. fichiers redo en ligne et commence crire dans un autre. Se dclanche :: Se dclanche
Le fichier log courant est plein et on doit continuer crire dans le fichier redo Le fichier log courant est plein et on doit continuer crire dans le fichier redo Configur pour qu'il se reproduit intervalles rguliers Configur pour qu'il se reproduit intervalles rguliers Manuellement Manuellement

Imposer des changements de fichier de journalisation l'aide de la Imposer des changements de fichier de journalisation l'aide de la commande :: commande
ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM SWITCH LOGFILE; La commande suivante permet d'archiver le redo log courant et d'activer le La commande suivante permet d'archiver le redo log courant et d'activer le redo log suivant. redo log suivant. ALTER SYSTEM CHECKPOINT; //archiver le redo log courant. . ALTER SYSTEM CHECKPOINT; //archiver le redo log courant

Grer les points de reprise l'aide des paramtres d'initialisation :: Grer les points de reprise l'aide des paramtres d'initialisation
LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_TIMEOUT LOG_CHECKPOINT_TIMEOUT FAST_START_IO_TARGET FAST_START_IO_TARGET

D.BOUZIDI

73

Processus CKPT Processus CKPT


Le CHECKPOINT est un vnement qui se dclencher lors :: Le CHECKPOINT est un vnement qui se dclencher lors
D'un changement de groupe de REDO LOG FILE. D'un changement de groupe de REDO LOG FILE. D'un arrt normal de la base de donnes (c'est dire sans l'option D'un arrt normal de la base de donnes (c'est dire sans l'option ABORT) ABORT) D'une demande explicite de l'administrateur D'une demande explicite de l'administrateur D'une limite dfinie par les paramtres d'initialisation D'une limite dfinie par les paramtres d'initialisation LOG_CHECKPOINT_INTERVAL :: spcifie le nombre maximum de LOG_CHECKPOINT_INTERVAL spcifie le nombre maximum de blocs du REDO LOG Buffer qui seront alors lus lors d'une blocs du REDO LOG Buffer qui seront alors lus lors d'une restauration de l'instance. restauration de l'instance. LOG_CHECKPOINT_TIMEOUT :: Dfini en secondes. Il permet de LOG_CHECKPOINT_TIMEOUT Dfini en secondes. Il permet de dfinir le temps maximum entre 2 CHECKPOINTS (ver > 8i :: permet dfinir le temps maximum entre 2 CHECKPOINTS (ver > 8i permet de dfinir le temps maximal de lecture du processus LGWR ). de dfinir le temps maximal de lecture du processus LGWR ). FAST_START_IO_TARGET :: en secondes, il dfinit le temps FAST_START_IO_TARGET en secondes, il dfinit le temps maximum pour restaurer une instance. maximum pour restaurer une instance.

L'vnement CHECKPOINT dclenche L'vnement CHECKPOINT dclenche


Le LGWR :: vide le REDO LOG Buffer. Le LGWR vide le REDO LOG Buffer. l'criture d'un certain nombre de blocs du Database Buffer Cache dans l'criture d'un certain nombre de blocs du Database Buffer Cache dans les fichiers de donnes par DBWn. Le nombre de blocs cris par DBWn les fichiers de donnes par DBWn. Le nombre de blocs cris par DBWn est dfini avec le paramtre FAST_START_IO_TARGET est dfini avec le paramtre FAST_START_IO_TARGET
D.BOUZIDI 74

Ajout des groupes Ajout des groupes

Manipulation des fichiers de log

ALTER DATABASE ADD LOGFILE('/DISK1/Redo30.log','/DISK2/Redo31.log') size 1M; ALTER DATABASE ADD LOGFILE('/DISK1/Redo30.log','/DISK2/Redo31.log') size 1M;

Ajout des membres un groupe Ajout des membres un groupe


Groupe 1 Groupe 2 Groupe 3

ALTER DATABASE ADD LOGFILE MEMBER ALTER DATABASE ADD LOGFILE MEMBER '/DISK2/Redo11.log' TO GROUP 1, '/DISK2/Redo11.log' TO GROUP 1, '/DISK2/Redo21.log' TO GROUP 2; '/DISK2/Redo21.log' TO GROUP 2;

Redo10.log

Redo20.log

Redo30.log

Redo11.log

Redo21.log

Redo31.log

Modification demplacement Modification demplacement


1. Arrtez la base de donnes 1. Arrtez la base de donnes 2. Copiez les fichiers de log en ligne vers un nouvel emplacement. 2. Copiez les fichiers de log en ligne vers un nouvel emplacement. 3. Excutez la commande ALTER DATABASE RENAME FILE en mode MOUNT. 3. Excutez la commande ALTER DATABASE RENAME FILE en mode MOUNT.
ALTER DATABASE RENAME FILE '/DISK2/Redo11.log' TO '/DISK3/Redo11.log'; ALTER DATABASE RENAME FILE '/DISK2/Redo11.log' TO '/DISK3/Redo11.log';

Suppression des groupes :: Suppression des groupes


ALTER DATABASE DROP LOGFILE GROUP 3; ALTER DATABASE DROP LOGFILE GROUP 3;

Suppression des membres des groupes :: Suppression des membres des groupes
ALTER DATABASE DROP LOGFILE MEMBER '/DISK2/Redo21.log'; ALTER DATABASE DROP LOGFILE MEMBER '/DISK2/Redo21.log';

Effacement des fichiers de journalisation :: Effacement des fichiers de journalisation


ALTER DATABASE CLEAR LOGFILE '/DISK1/Redo20.log'; ALTER DATABASE CLEAR LOGFILE '/DISK1/Redo20.log'; D.BOUZIDI 75

Erreurs possibles du processus LGWR


Un membre d'un groupe contenant au moins Un membre d'un groupe contenant au moins deux fichiers de journalisation n'est pas deux fichiers de journalisation n'est pas disponible. disponible. Tous les membres du groupe suivant ne sont Tous les membres du groupe suivant ne sont pas disponibles. pas disponibles. Tous les membres du groupe en cours ne sont Tous les membres du groupe en cours ne sont pas disponibles. pas disponibles.

D.BOUZIDI

76

Obtenir des informations


V$THREAD : affiche les infos sur le fichier log courant V$LOG : donne les informations en lisant dans le fichier de contrle au contrle lieu de lire dans le dictionnaire de donnes donn V$LOGFILE : Pour voir les noms des membres d'un groupe ( GROUP# est le numro du groupe Redo Log. num STATUS prend la valeur : INVALID si le fichier est inaccessible, STALE si le fichier est incomplet , DELETED si le fichier n'est plus utilis et utilis VIDE si le fichier est en cours d'utilisation. MEMBER est le nom du membre Redo Log V$LOG_HISTORY : contient des infors concernant l'historique des fichiers redo partir du fichier de contrle. Le maximum que peut retenir la vue dpends du paramtre MAXLOGHISTORY. d param MAXLOGHISTORY.

Fichier de contrle

D.BOUZIDI

77

Analyser les fichiers de journalisation en ligne


Suivi des modifications :: Suivi des modifications
dans la base de donnes, dans la base de donnes, dans une table spcifique, dans une table spcifique, relatives un utilisateur particulier relatives un utilisateur particulier

Application de modles d'accs aux donnes. Application de modles d'accs aux donnes. Annulation des modifications de la base Annulation des modifications de la base de donnes. de donnes. Utilisation des donnes archives pour effectuer Utilisation des donnes archives pour effectuer des oprations de rglage et planifier les des oprations de rglage et planifier les capacits. capacits.

D.BOUZIDI

78

LogMiner
Le problme de ces fichiers c'est que l'on ne Le problme de ces fichiers c'est que l'on ne peut pas diter le contenu aussi facilement peut pas diter le contenu aussi facilement Oracle a fournit un outil trs pratique Oracle a fournit un outil trs pratique permettant d'analyser et dauditer les actions permettant d'analyser et dauditer les actions effectues sur la base :: LogMiner effectues sur la base LogMiner Deux scripts sont utiliss pour linstaller :: Deux scripts sont utiliss pour linstaller
<oracle home>/rdbms/admin/dbmslm.sql qui <oracle home>/rdbms/admin/dbmslm.sql qui installe le package DBMS_LOGMNR qui vous installe le package DBMS_LOGMNR qui vous servira analyser les REDO LOG, ainsi que des servira analyser les REDO LOG, ainsi que des procdures, vues et tables publiques. procdures, vues et tables publiques. <oracle home>/rdbms/admin/dbmslmd.sql qui <oracle home>/rdbms/admin/dbmslmd.sql qui installe le package DBMS_LOGMNR_D qui servira installe le package DBMS_LOGMNR_D qui servira construire le dictionnaire de donnes. construire le dictionnaire de donnes.

D.BOUZIDI

79

Utiliser LogMiner
Cration dun Snapshot du DD (pour avoir les dfinitions Cration dun Snapshot du DD (pour avoir les dfinitions des objets prsents dans la base de donnes) des objets prsents dans la base de donnes)
Initialiser le paramtre UTL_FILE_DIR :: Initialiser le paramtre UTL_FILE_DIR
Alter system SET utl_file_dir=/oracle/tmp/' SCOPE=spfile; Alter system SET utl_file_dir=/oracle/tmp/' SCOPE=spfile;

Cration dun fichier de dictionnaire :: Cration dun fichier de dictionnaire


EXECUTE DBMS_LOGMNR_D.BUILD(monDictionnaire.ora', /oracle/tmp/'); EXECUTE DBMS_LOGMNR_D.BUILD(monDictionnaire.ora', /oracle/tmp/');

Dfinition des fichiers de log analyser en configurant la vue Dfinition des fichiers de log analyser en configurant la vue V$LOGMNR_CONTENTS (spcifie les fichiers log analyser) V$LOGMNR_CONTENTS (spcifie les fichiers log analyser) Initialisation dune nouvelle liste et dfinition du premier Initialisation dune nouvelle liste et dfinition du premier fichier de log analyser fichier de log analyser
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo10.log', DBMS_LOGMNR.NEW); EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo10.log', DBMS_LOGMNR.NEW);

Ajout dautres fichiers analyser la liste :: Ajout dautres fichiers analyser la liste
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo20.log', DBMS_LOGMNR.ADDFILE); EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo20.log', DBMS_LOGMNR.ADDFILE);

Suppression de fichiers log de la liste :: Suppression de fichiers log de la liste


EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/disk1/Redo20.log',DBMS_LOGMNR.REMOVEFILE); EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/disk1/Redo20.log',DBMS_LOGMNR.REMOVEFILE); D.BOUZIDI 80

Utiliser LogMiner
Lancement de lanalyse Lancement de lanalyse
Initialisation dune session logMiner :: Initialisation dune session logMiner Initialisation dune session logMiner pour une priode donnes: Initialisation dune session logMiner pour une priode donnes:
EXECUTE Dbms_Logmnr.Start_Logmnr(/oracle/temp/monDictionnaire.ora', EXECUTE Dbms_Logmnr.Start_Logmnr(/oracle/temp/monDictionnaire.ora', starttime =>to_date('01-Jan-2006 00:00:00','DD-MON-YYYY HH:MI:SS'),endtime starttime =>to_date('01-Jan-2006 00:00:00','DD-MON-YYYY HH:MI:SS'),endtime => to_date('01-Jan-2006 10:00:00', 'DD-MON-YYYY HH:MI:SS')); => to_date('01-Jan-2006 10:00:00', 'DD-MON-YYYY HH:MI:SS')); EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>/tmp/monDictionnaire.ora'); EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>/tmp/monDictionnaire.ora');

Identification des modification apportes une table Identification des modification apportes une table
SELECT timestamp, username, sql_redo FROM v$logmnr_contents WHERE SELECT timestamp, username, sql_redo FROM v$logmnr_contents WHERE seg_name = 'EMP'; seg_name = 'EMP';

Arrt de la session logMiner Arrt de la session logMiner


EXECUTE DBMS_LOGMNR.END_LOGMNR; EXECUTE DBMS_LOGMNR.END_LOGMNR;

D.BOUZIDI

81

Obtenir des informations sur les Obtenir des informations sur les fichiers de journalisation analyser fichiers de journalisation analyser
Il existe 4 vues dynamiques lies notre session LogMiner Il existe 4 vues dynamiques lies notre session LogMiner (celles-ci n'existent que pendant notre session LogMiner) (celles-ci n'existent que pendant notre session LogMiner) V$LOGMNR_DICTIONARY :: contient les infos sur le V$LOGMNR_DICTIONARY contient les infos sur le dictionnaire de donnes de LogMiner. dictionnaire de donnes de LogMiner. V$LOGMNR_PARAMETERS :: contient les infos concernant V$LOGMNR_PARAMETERS contient les infos concernant la session LogMiner en cours. la session LogMiner en cours. V$LOGMNR_CONTENTS :: contient les infos issues des V$LOGMNR_CONTENTS contient les infos issues des fichiers REDO LOG. fichiers REDO LOG. V$LOGMNR_LOGS :: contient les infos sur tous les fichiers V$LOGMNR_LOGS contient les infos sur tous les fichiers REDO LOG qui ont t ajouts pour cette session REDO LOG qui ont t ajouts pour cette session

D.BOUZIDI

82

Gestion des structures de stockages

Hirarchie de stockage de la base de donnes


Base de donnes Tablespace Fichier de donnes Physique

Logique

Segment

Extent

Bloc Oracle

Bloc OS

Hirarchie de stockage de la base de donnes


Une base donnes est compose dun ensemble Une base donnes est compose dun ensemble dunits logiques appeles TABLESPACE. dunits logiques appeles TABLESPACE. Un TABLESPACE est compos d'au moins un Un TABLESPACE est compos d'au moins un DATAFILE, c'est dire un fichier de donnes qui est DATAFILE, c'est dire un fichier de donnes qui est physiquement prsent sur le serveur l'endroit stipul physiquement prsent sur le serveur l'endroit stipul lors de sa cration. lors de sa cration. Chaque DATAFILE est constitu de SEGMENTS Chaque DATAFILE est constitu de SEGMENTS Un segment est d'au moins un EXTENT (ou page) Un segment est d'au moins un EXTENT (ou page) L'extent est un groupe de BLOCS contigus pouvant L'extent est un groupe de BLOCS contigus pouvant accueillir des donnes, il est constitu d'au moins 3 accueillir des donnes, il est constitu d'au moins 3 blocs blocs Le bloc est le plus petit lment de stockage d'une Le bloc est le plus petit lment de stockage d'une base de donnes base de donnes

Les tablespaces
Une base donnes mmorise dans une ou plusieurs units Une base donnes mmorise dans une ou plusieurs units logiques appeles TABLESPACE. logiques appeles TABLESPACE. Cette organisation permet ladministrateur de :: Cette organisation permet ladministrateur de Contrler lallocation despace disque Contrler lallocation despace disque Assigner des quotas de ressource disque aux utilisateurs Assigner des quotas de ressource disque aux utilisateurs Contrler la disponibilit des donnes en rendant les Contrler la disponibilit des donnes en rendant les tablespaces online ou offline tablespaces online ou offline Constituer des units de sauvegarde ou de restauration Constituer des units de sauvegarde ou de restauration partielle de la base partielle de la base Rpartir les zones de stockage entre plusieurs disques Rpartir les zones de stockage entre plusieurs disques pour accrotre les performances pour accrotre les performances

Quelques types de tablespaces


Tablespace SYSTEM: Tablespace SYSTEM:
Cr lors de la cration de la base de donnes (avec lordre CREATE DATABASE) Cr lors de la cration de la base de donnes (avec lordre CREATE DATABASE) Contient :: les tables du dictionnaire de donnes, les procdures, les fonctions, les Contient les tables du dictionnaire de donnes, les procdures, les fonctions, les packages, les triggers packages, les triggers

Tablespace TEMP :: Tablespace TEMP


Contient :: les segments temporaires utiliss par Oracle lors doprations de tri Contient les segments temporaires utiliss par Oracle lors doprations de tri (SORT_AREA_SIZE insuffisante), de cration dindex et de tables temporaires, (SORT_AREA_SIZE insuffisante), de cration dindex et de tables temporaires, Chaque BD doit comporter un tablespace temporaire affect aux utilisateurs comme Chaque BD doit comporter un tablespace temporaire affect aux utilisateurs comme tablespace temporaire (si aucun tablespace temporaire n'est dsign lors de la tablespace temporaire (si aucun tablespace temporaire n'est dsign lors de la cration du compte, Oracle affecte ce tablespace l'utilisateur cration du compte, Oracle affecte ce tablespace l'utilisateur CREATE DATABASE <NomBase>... CREATE DATABASE <NomBase>... DEFAULT TEMPORARY TABLESPACE temp01; DEFAULT TEMPORARY TABLESPACE temp01; On peut dsigner un tablespace temporaire pour un utilisateur donn On peut dsigner un tablespace temporaire pour un utilisateur donn ALTER USER scott ALTER USER scott TEMPORARY TABLESPACE temp01; TEMPORARY TABLESPACE temp01;

Tablespace USERS :: Tablespace USERS


Contient :: les segments de donnes utilisateurs (tables,clusters, index,) Contient les segments de donnes utilisateurs (tables,clusters, index,) On peut dfinir #ts tablespaces USERS pour sparer les diffrentes applications On peut dfinir #ts tablespaces USERS pour sparer les diffrentes applications

Tablespace UNDO :: Tablespace UNDO


Rserv l'annulation des commandes DDL (UPDATE, INSERT, etc...). Lors dune Rserv l'annulation des commandes DDL (UPDATE, INSERT, etc...). Lors dune suppression par exemple, ORACLE copie les lignes supprimer dans le tablespace suppression par exemple, ORACLE copie les lignes supprimer dans le tablespace UNDO et ensuite indique que les blocs contenant les donnes dans le tablespace UNDO et ensuite indique que les blocs contenant les donnes dans le tablespace d'origine sont libres (le paramtre undo_tablespace, undo_management) d'origine sont libres (le paramtre undo_tablespace, undo_management) CREATE UNDO TABLESPACE undotbs CREATE UNDO TABLESPACE undotbs DATAFILE '<oracle_Home>\oradata\orcl\undotbs.dbf' size 100M; DATAFILE '<oracle_Home>\oradata\orcl\undotbs.dbf' size 100M;

Cration de tablespaces
CREATE TABLESPACE app_data CREATE TABLESPACE app_data DATAFILE '/DISK1/app_data_01.dbf SIZE 100M, DATAFILE '/DISK1/app_data_01.dbf SIZE 100M, '/DISK2/app data_ 02.dbf SIZE 100M '/DISK2/app data_ 02.dbf SIZE 100M DEFAULT STORAGE ( INITIAL 500K DEFAULT STORAGE ( INITIAL 500K NEXT NEXT MAXEXTENTS MAXEXTENTS PCTINCREASE PCTINCREASE 500K 500K 500 500 0 ); 0 );

o INITIAL : Dfinit la taille du premier extent (Par dfaut o INITIAL : Dfinit la taille du premier extent (Par dfaut 5*DB_BLOCK_SIZE) 5*DB_BLOCK_SIZE) o NEXT se rapporte la taille de l'extent suivant. o NEXT se rapporte la taille de l'extent suivant. o MINEXTENTS exprime le nombre d'extents allous lors de la cration o MINEXTENTS exprime le nombre d'extents allous lors de la cration du segment (Par dfault 1). du segment (Par dfault 1). o MAXEXTEBTS est le nombre maximal dextents pouvant tre alloues o MAXEXTEBTS est le nombre maximal dextents pouvant tre alloues un segment un segment o PCTINCREASE dfinie le pourcentage de croissance de la taille du o PCTINCREASE dfinie le pourcentage de croissance de la taille du segment suivant segment suivant

Gestion de lespace dans les tablespaces


A la cration d'un objet (par exemple une table), ORACLE cre un extent .. A la cration d'un objet (par exemple une table), ORACLE cre un extent Lors de remplissage (ajout/modification), Oracle rempli les blocs de donnes Lors de remplissage (ajout/modification), Oracle rempli les blocs de donnes qui constituent l'extent jusqu' remplir l'extent entirement et cre un qui constituent l'extent jusqu' remplir l'extent entirement et cre un nouvel extent si le prcdent est plein nouvel extent si le prcdent est plein Deux modes de gestion de lespace :: Deux modes de gestion de lespace Tablespaces grs par le dictionnaire de donnes: Tablespaces grs par le dictionnaire de donnes: ORACLE stocke les informations relatives l'allocation d'espace dans ORACLE stocke les informations relatives l'allocation d'espace dans le dictionnaire de donnes le dictionnaire de donnes Ceci induit une charge supplmentaire pour toutes les oprations Ceci induit une charge supplmentaire pour toutes les oprations sur les objets d'un tablespace. Ladministrateur doit bien sur les objets d'un tablespace. Ladministrateur doit bien dimensionner la taille des extents pour viter une fragmentation dimensionner la taille des extents pour viter une fragmentation excessive excessive Tablespaces grs localement (locally managed )) :: Tablespaces grs localement (locally managed Les informations sont stockes au niveaux des enttes des Les informations sont stockes au niveaux des enttes des tablespaces, ceci vite des accs intempestifs au dictionnaire de tablespaces, ceci vite des accs intempestifs au dictionnaire de donnes (option dfinit par dfaut partir de la version 9i) donnes (option dfinit par dfaut partir de la version 9i) Deux modes de gestion des extents :: Deux modes de gestion des extents
Le mode UNIFORM impose Oracle de crer des extents de taille Le mode UNIFORM impose Oracle de crer des extents de taille identique. Ce mode nest pas utilis pour un tablespace dannulation identique. Ce mode nest pas utilis pour un tablespace dannulation Le mode AUTOALLOCATE demande de crer des extents de plus en plus Le mode AUTOALLOCATE demande de crer des extents de plus en plus grands avec le nombre d'extents crs. Ce mode ne peut tre utilis pour grands avec le nombre d'extents crs. Ce mode ne peut tre utilis pour un tablespace temporaire un tablespace temporaire

Gestion de lespace dans les tablespaces


CREATE TABLESPACE user_data CREATE TABLESPACE user_data DATAFILE '/DISK2/user_data_01.dbf' SIZE 500M DATAFILE '/DISK2/user_data_01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M; UNIFORM SIZE 10M;

Cration de tablespace temporaire gr localement Cration de tablespace temporaire gr localement


CREATE TEMPORARY TABLESPACE temp CREATE TEMPORARY TABLESPACE temp TEMPFILE '/DISK2/temp_01.dbf' SIZE 500M TEMPFILE '/DISK2/temp_01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M; UNIFORM SIZE 10M;

Modification des paramtres de stockage Modification des paramtres de stockage


ALTER TABLESPACE app_data ALTER TABLESPACE app_data MINIMUM EXTENT 2M; MINIMUM EXTENT 2M;

On peut modifier un ensemble de paramtres On peut modifier un ensemble de paramtres


ALTER TABLESPACE app_data ALTER TABLESPACE app_data DEFAULT STORAGE ( DEFAULT STORAGE ( INITIAL 2M INITIAL 2M NEXT 2M NEXT 2M MAXEXTENTS 999 ); MAXEXTENTS 999 );

Statut dun tablespace


Tablespace "offline" non disponible pour accder aux donnes Tablespace "offline" non disponible pour accder aux donnes Certains tablespaces doivent tre "online" :: Certains tablespaces doivent tre "online" SYSTEM, SYSTEM, tablespaces contenant des segments d'annulation actifs. tablespaces contenant des segments d'annulation actifs. Pour mettre un tablespace "offline" :: Pour mettre un tablespace "offline"
ALTER TABLESPACE app_data OFFLINE; ALTER TABLESPACE app_data OFFLINE;

Pour mettre un tablespace "online" :: Pour mettre un tablespace "online"


ALTER TABLESPACE app_data ONLINE; ALTER TABLESPACE app_data ONLINE;

Tablespace disponible pour des oprations de lecture Tablespace disponible pour des oprations de lecture (Impossible de supprimer les objets du tablespace) (Impossible de supprimer les objets du tablespace) Pour crer un tablespace en lecture seule sur un lecteur non Pour crer un tablespace en lecture seule sur un lecteur non rinscriptible :: rinscriptible ALTER TABLESPACEREAD ONLY; ALTER TABLESPACEREAD ONLY; Placez le fichier de donnes sur le lecteur non rinscriptible Placez le fichier de donnes sur le lecteur non rinscriptible ALTER TABLESPACERENAME DATAFILE; ALTER TABLESPACERENAME DATAFILE;

Suppression :: Suppression

Manipulation des tablespaces

Tablespace supprim du dictionnaire de donnes. Tablespace supprim du dictionnaire de donnes. Eventuellement, contenu supprim du dictionnaire de donnes. Eventuellement, contenu supprim du dictionnaire de donnes. Fichiers de systme d'exploitation non supprims. Fichiers de systme d'exploitation non supprims. DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES; DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES;

Redimensionner un tablespace :: Redimensionner un tablespace Modification de la taille d'un fichier de donnes automatique Modification de la taille d'un fichier de donnes automatique
ALTER TABLESPACE app_data ADD DATAFILE '/DISK3/app_data_04.dbf' ALTER TABLESPACE app_data ADD DATAFILE '/DISK3/app_data_04.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M; MAXSIZE 500M;

Modification Manuellement Modification Manuellement


ALTER DATABASE ALTER DATABASE DATAFILE '/DISK5/app_data_02.dbf' DATAFILE '/DISK5/app_data_02.dbf' RESIZE 200M; RESIZE 200M;

Ajout dun datafile Ajout dun datafile


ALTER TABLESPACE app_data ALTER TABLESPACE app_data ADD DATAFILE '/DISK5/app_data_03.dbf' SIZE 200M; ADD DATAFILE '/DISK5/app_data_03.dbf' SIZE 200M;

Dplacement des datafiles Dplacement des datafiles


ALTER TABLESPACE app_data RENAME DATAFILE '/DISK3/app_data_01.dbf' ALTER TABLESPACE app_data RENAME DATAFILE '/DISK3/app_data_01.dbf' TO '/DISK5/app_data_01.dbf'; TO '/DISK5/app_data_01.dbf';

Types de segment
On distingue cinq types de segments :: On distingue cinq types de segments 1. Les segments de donnes 1. Les segments de donnes
Ils servent stocker les donnes des tables utilisateurs Ils servent stocker les donnes des tables utilisateurs et systme et systme Chaque table a un et un seul segment qui est cre Chaque table a un et un seul segment qui est cre automatiquement lors de la cration de la table. automatiquement lors de la cration de la table.

2. Les segments dindex 2. Les segments dindex


Servent stocker les donnes dindex. Ces donnes peuvent Servent stocker les donnes dindex. Ces donnes peuvent donc tre stockes dans un tablespace distinct des donnes donc tre stockes dans un tablespace distinct des donnes des tables. des tables. Un segment dindex est cr automatiquement lors de la Un segment dindex est cr automatiquement lors de la cration de lindex. On peut prciser lors de la cration dun cration de lindex. On peut prciser lors de la cration dun index, le tablespace dans lequel sera cr le segment. index, le tablespace dans lequel sera cr le segment.

D.BOUZIDI

93

Types de segment
On distingue cinq types de segments :: On distingue cinq types de segments 3. Les segments temporaires 3. Les segments temporaires
Utiliss par Oracle pour le traitement des requtes SQL Utiliss par Oracle pour le traitement des requtes SQL ncessitant un espace disque temporaire. ncessitant un espace disque temporaire. Les segments temporaires sont crs en cas de besoin et Les segments temporaires sont crs en cas de besoin et supprims aprs lexcution de la commande. supprims aprs lexcution de la commande. Le tablespace dans lequel sont cres ces segments est dfini Le tablespace dans lequel sont cres ces segments est dfini lors de la cration et modification dun utilisateur. Si ce lors de la cration et modification dun utilisateur. Si ce tablespace nest pas dfini, alors cest le tablespace SYSTEM tablespace nest pas dfini, alors cest le tablespace SYSTEM qui est utilis par dfaut. qui est utilis par dfaut.

4. Le segment damorage (BOOTSTRAP) 4. Le segment damorage (BOOTSTRAP)


Ce segment est cr dans le tablespace SYSTEM. Il contient Ce segment est cr dans le tablespace SYSTEM. Il contient les dfinitions des objets du dictionnaire de donnes qui sont les dfinitions des objets du dictionnaire de donnes qui sont charges lors de louverture de la base charges lors de louverture de la base

5. Les segments dannulation (ROLLBACK) 5. Les segments dannulation (ROLLBACK)


Ces segments (rollback segments) contiennent les donnes Ces segments (rollback segments) contiennent les donnes avant modification due une transaction. Ils permettent avant modification due une transaction. Ils permettent dannuler leur effet en cas de besoin. dannuler leur effet en cas de besoin.
D.BOUZIDI 94

Notion dextent et de bloc


Notion dextents :
Une extent est un ensemble contigu de blocs logiques allous Une extent est un ensemble contigu de blocs logiques allous un segment. un segment. Tout segment est initialement cr avec un extent initiale Tout segment est initialement cr avec un extent initiale (initial extent). (initial extent). Allocation lorsque le segment est cr, tendu ou modifi. Allocation lorsque le segment est cr, tendu ou modifi. Libration lorsque le segment est supprim, modifi, Libration lorsque le segment est supprim, modifi, tronqu, tronqu,

Notion de bloc :
Unit minimum d'entre/sortie Unit minimum d'entre/sortie Constitu d'un ou de plusieurs blocs de systme Constitu d'un ou de plusieurs blocs de systme d'exploitation d'exploitation Dfini par DB_BLOCK_SIZE Dfini par DB_BLOCK_SIZE Dfini lors de la cration de la base de donnes Dfini lors de la cration de la base de donnes
D.BOUZIDI 95

Contenu d'un bloc de base de donnes

En-tte (@ du bloc, Entype de segment,) segment, Espace libre : utilis pour utilis linsertion de nouvelles lignes ou mise jours ncessitant n despace sup. Donnes : lorsquune ligne ne Donn lorsqu peut tenir sur un seul bloc elle est stocke dans deux ou +iers stock +iers Blocs (blocs chans) (blocs cha

D.BOUZIDI

96

Paramtres d'utilisation de l'espace de bloc


INITRANS
La gestion de lespace libre dun bloc logique MAXTRANS La gestion de lespace libre dun bloc logique se fait en fonction des valeurs des se fait en fonction des valeurs des paramtres PCTFREE et PCTUSED. paramtres PCTFREE et PCTUSED. PCTFREE fixe le % despace du bloc qui PCTFREE fixe le % despace du bloc qui doit tre maintenu constamment libre. Sa doit tre maintenu constamment libre. Sa valeur par dfaut est 10%. valeur par dfaut est 10%. Quand un bloc ne peut tre utilis car la Quand un bloc ne peut tre utilis car la valeur PCTFREE de lui interdit, on ne valeur PCTFREE de lui interdit, on ne pourra recommencer le remplir que si pourra recommencer le remplir que si lespace occup est en % descend en lespace occup est en % descend en dessous de la valeur PCTUSED. Sa valeur dessous de la valeur PCTUSED. Sa valeur par dfaut est 40%. par dfaut est 40%.

PCTFREE PCTUSED

D.BOUZIDI

97

Utilisation de l'espace de bloc


PCTFREE=20 PCTUSED=40 80 % Insertions 1 Insertions 2

80 % 40 % Insertions 3 Insertions 3

D.BOUZIDI

98

Vues du dictionnaire de donnes


Informations de tablespace :: Informations de tablespace
DBA_TABLESPACES DBA_TABLESPACES V$TABLESPACE V$TABLESPACE DBA_TABLESPACE_USAGE_METRICS DBA_TABLESPACE_USAGE_METRICS

Informations de fichier de donnes :: Informations de fichier de donnes


DBA_DATA_FILES DBA_DATA_FILES DBA_TABLES DBA_TABLES V$DATAFILE V$DATAFILE

Informations de fichier temporaire :: Informations de fichier temporaire


DBA_TEMP_FILES DBA_TEMP_FILES V$TEMPFILE V$TEMPFILE

Informations sur les segments :: Informations sur les segments


DBA_SEGMENTS DBA_SEGMENTS

Informations sur les extents :: Informations sur les extents


DBA_EXTENTS (Extents utiliss) DBA_EXTENTS (Extents utiliss) DBA_FREE_SPACE (Extents libres) DBA_FREE_SPACE (Extents libres)
D.BOUZIDI 99

Administration des utilisateurs

Compte utilisateur
Pour crer un utilisateur, l'administrateur doit affecter un profil, Pour crer un utilisateur, l'administrateur doit affecter un profil, choisir une technique d'authentification et affecter des tablespaces choisir une technique d'authentification et affecter des tablespaces
Un nom utilisateur unique ou login (< 30 caractres, pas de caractres Un nom utilisateur unique ou login (< 30 caractres, pas de caractres spciaux et doit commencer par une lettre) spciaux et doit commencer par une lettre) Une mthode dauthentification :: Autre lauthentification par mot de Une mthode dauthentification Autre lauthentification par mot de passe ORACLE fait lauthentification par certificats, par biomtrie et passe ORACLE fait lauthentification par certificats, par biomtrie et par systme tier par systme tier Un tablespace par dfaut :: emplacement par dfaut o l'utilisateur Un tablespace par dfaut emplacement par dfaut o l'utilisateur mettra ses objets s'il n'indique pas d'autre tablespace (il faut lui mettra ses objets s'il n'indique pas d'autre tablespace (il faut lui accorder les privilges et les quotas ncessaires pour quil puisse crer accorder les privilges et les quotas ncessaires pour quil puisse crer des objets) des objets) Un tablespace temporaire :: emplacement dans lequel l'utilisateur peut Un tablespace temporaire emplacement dans lequel l'utilisateur peut crer des objets temporaires, tels que des tris et des tables temporaires crer des objets temporaires, tels que des tris et des tables temporaires Un profil utilisateur :: cest lensemble de restrictions de ressources Un profil utilisateur cest lensemble de restrictions de ressources concernant concernant
lutilisation de la base de donnes lutilisation de la base de donnes et le mot de passe affect l'utilisateur (longueur, priode dexpiration, ) et le mot de passe affect l'utilisateur (longueur, priode dexpiration, )

D.BOUZIDI

101

Le contrle de lutilisation de la BD :: Le contrle de lutilisation de la BD


CPU :: exprim par session ou par appel CPU exprim par session ou par appel

Profil utilisateur

CPU/Session (exprim en centimes de secondes) :: pour une valeur CPU/Session (exprim en centimes de secondes) pour une valeur gale 1000, un utilisateur, qui consomme plus de 10 secondes de gale 1000, un utilisateur, qui consomme plus de 10 secondes de temps de CPU, sera dconnect. temps de CPU, sera dconnect. CPU/Call :: au lieu de limiter la session globale dun utilisateur, on CPU/Call au lieu de limiter la session globale dun utilisateur, on empche que la commande qui consomme plus des ressources CPU empche que la commande qui consomme plus des ressources CPU de lutilisateur de lutilisateur

Network/Memory :: une session utilisateur consomme des Network/Memory une session utilisateur consomme des ressources rseau et mmoire, on peut donc grer :: ressources rseau et mmoire, on peut donc grer
Nombre de minutes pendant lesquelles un utilisateur peut tre Nombre de minutes pendant lesquelles un utilisateur peut tre connect avant d'tre automatiquement dconnect (Connect Time). connect avant d'tre automatiquement dconnect (Connect Time). Nombre de minutes pendant lesquelles une session utilisateur peut Nombre de minutes pendant lesquelles une session utilisateur peut rester inactive avant d'tre automatiquement dconnecte (Idle Time). rester inactive avant d'tre automatiquement dconnecte (Idle Time). Nombre de sessions simultanes pouvant tre cres l'aide d'un Nombre de sessions simultanes pouvant tre cres l'aide d'un compte utilisateur de base de donnes. compte utilisateur de base de donnes. Private SGA :: limite la quantit d'espace consomm dans la mmoire Private SGA limite la quantit d'espace consomm dans la mmoire pour le tri, cration dindex, etc. pour le tri, cration dindex, etc.

Disk I/O :: limite la quantit de donnes qu'un utilisateur peut Disk I/O limite la quantit de donnes qu'un utilisateur peut lire, par session ou par appel. lire, par session ou par appel.
D.BOUZIDI 102

Contrle de lauthentification :: Contrle de lauthentification

Profil utilisateur

Lauthentification permet de vrifier lidentit dune entit qui Lauthentification permet de vrifier lidentit dune entit qui souhaite utiliser les ressources de la base de donnes :: souhaite utiliser les ressources de la base de donnes
Ce mcanisme permet dtablir une relation de confiance pour les Ce mcanisme permet dtablir une relation de confiance pour les interactions ultrieures. interactions ultrieures. La responsabilit :: permettant de lier laccs et des actions des La responsabilit permettant de lier laccs et des actions des entits spcifiques. entits spcifiques.

Trois technique dauthentification: Trois technique dauthentification:


Password (Authentification par la base de donnes) :: cre chaque Password (Authentification par la base de donnes) cre chaque utilisateur avec un mot de passe associ qui doit tre fourni lorsde la utilisateur avec un mot de passe associ qui doit tre fourni lorsde la connexion (ex: CREATE USER scott IDENTIFIED by tiger;) connexion (ex: CREATE USER scott IDENTIFIED by tiger;) External (Authentification par le systme dexploitation) :: ce mode External (Authentification par le systme dexploitation) ce mode lauthentification repose sur celle dfinie par lOS. Aucun mot de lauthentification repose sur celle dfinie par lOS. Aucun mot de passe de base de donnes n'est utilis pour ce type de connexion. (ex: passe de base de donnes n'est utilis pour ce type de connexion. (ex: CREATE USER OPS$NomUser IDENTIFIED EXTERNALLY; CREATE USER OPS$NomUser IDENTIFIED EXTERNALLY; Global (Authentification globale) :: permet de renforcer Global (Authentification globale) permet de renforcer lauthentification via dautre systmes comme l'identification des lauthentification via dautre systmes comme l'identification des utilisateurs via la biomtrie, les certificats x509, les systmes tiers et utilisateurs via la biomtrie, les certificats x509, les systmes tiers et Oracle Internet Directory. Avantage fait une seul authentification Oracle Internet Directory. Avantage fait une seul authentification Lorsqu'un utilisateur est cr, son statut peut tre verrouill ou Lorsqu'un utilisateur est cr, son statut peut tre verrouill ou dverrouill. Si un compte utilisateur verrouill, ne peut tre utilis pour dverrouill. Si un compte utilisateur verrouill, ne peut tre utilis pour se connecter la base de donnes. se connecter la base de donnes. D.BOUZIDI Les comptes des nouveaux utilisateurs sont verrouills par dfaut 103 Les comptes des nouveaux utilisateurs sont verrouills par dfaut

))

Tablespace :: Tablespace

Tablespaces et de schmas

Un tablespace par dfaut est le tablespace dans lequel les objets sont Un tablespace par dfaut est le tablespace dans lequel les objets sont crs si aucun tablespace n'est dsign lors de la cration de l'objet crs si aucun tablespace n'est dsign lors de la cration de l'objet
Si on a pas choisi de tablespace par dfaut, le tablespace permanent par dfaut Si on a pas choisi de tablespace par dfaut, le tablespace permanent par dfaut dfini par le systme est utilis dfini par le systme est utilis Si on na pas indiqu de tablespace temporaire, celui dfini par le systme est Si on na pas indiqu de tablespace temporaire, celui dfini par le systme est utilis utilis CREATE USER user01 identified by PWDuser01 CREATE USER user01 identified by PWDuser01 DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users; DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users;

Schma :: Schma
L'ensemble des objets appartenant un utilisateur est appel schma (Tables, L'ensemble des objets appartenant un utilisateur est appel schma (Tables, Dclencheurs, Index, Vues, Squences, Types de donnes dfinis par l'utilisateur, Dclencheurs, Index, Vues, Squences, Types de donnes dfinis par l'utilisateur, ) ) Lors de la cration d'un utilisateur de base de donnes, un schma correspondant Lors de la cration d'un utilisateur de base de donnes, un schma correspondant portant le mme nom est cr pour cet utilisateur portant le mme nom est cr pour cet utilisateur Les objets du mme schma peuvent rsider dans diffrents tablespaces et un Les objets du mme schma peuvent rsider dans diffrents tablespaces et un tablespace peut contenir des objets de diffrents schmas tablespace peut contenir des objets de diffrents schmas Un utilisateur ne peut tre associ qu' un seul schma, le nom utilisateur et le Un utilisateur ne peut tre associ qu' un seul schma, le nom utilisateur et le schma sont souvent utiliss de manire interchangeable. schma sont souvent utiliss de manire interchangeable. Pour accder aux objets de lutilisateur user01 (si on a le droit) on prcede le nom Pour accder aux objets de lutilisateur user01 (si on a le droit) on prcede le nom de lobjet par le nom de lutilisateur (equi au nom du schma) de lobjet par le nom de lutilisateur (equi au nom du schma) Select * from user01.nomTable; Select * from user01.nomTable; D.BOUZIDI 104

Privilges
Par dfaut, lorsqu'un utilisateur est cr, aucun privilge ne Par dfaut, lorsqu'un utilisateur est cr, aucun privilge ne lui est accord, il ne peut effectuer aucune opration dans la lui est accord, il ne peut effectuer aucune opration dans la base de donnes. base de donnes. Si l'utilisateur ne dispose d'aucun quota dans aucun Si l'utilisateur ne dispose d'aucun quota dans aucun tablespace, il ne pourra pas crer d'objets. tablespace, il ne pourra pas crer d'objets. Deux types de privilge :: Deux types de privilge
Systme :: Systme
Accord par l'administrateur ou par quelqu'un qui la permission Accord par l'administrateur ou par quelqu'un qui la permission d'administrer le privilge a t accord, d'administrer le privilge a t accord, Permet aux utilisateurs d'effectuer des actions particulires dans la Permet aux utilisateurs d'effectuer des actions particulires dans la base de donnes (par exemple crer des Tablespaces). base de donnes (par exemple crer des Tablespaces).

Objet :: Objet
permet aux utilisateurs d'accder un objet spcifique et de le permet aux utilisateurs d'accder un objet spcifique et de le manipuler (table, sequence, ) manipuler (table, sequence, ) Sans permission spcifique, les utilisateurs ne peuvent accder qu' Sans permission spcifique, les utilisateurs ne peuvent accder qu' leurs propres objets. leurs propres objets. Les privilges objet peuvent tre accords par Les privilges objet peuvent tre accords par le propritaire d'un objet, le propritaire d'un objet, l'administrateur l'administrateur qui la permission d'accorder des privilges sur l'objet a t qui la permission d'accorder des privilges sur l'objet a t 105 accorde explicitement. accorde explicitement.

D.BOUZIDI

Privilges
DROP ANY object :: le privilge DROP ANY autorise l'utilisateur DROP ANY object le privilge DROP ANY autorise l'utilisateur supprimer des objets qui ne lui appartiennent pas supprimer des objets qui ne lui appartiennent pas CREATE, MANAGE, DROP, ALTER TABLESPACE :: les CREATE, MANAGE, DROP, ALTER TABLESPACE les utilisateurs qui ne sont pas administrateurs ne doivent utilisateurs qui ne sont pas administrateurs ne doivent gnralement pas pouvoir contrler les tablespaces. gnralement pas pouvoir contrler les tablespaces. GRANT ANY OBJECT PRIVILEGE :: ce privilge autorise les GRANT ANY OBJECT PRIVILEGE ce privilge autorise les utilisateurs accorder des permissions sur des objets qui ne utilisateurs accorder des permissions sur des objets qui ne leur appartiennent pas. leur appartiennent pas. ALTER DATABASE et ALTER SYSTEM :: les utilisateurs qui ne ALTER DATABASE et ALTER SYSTEM les utilisateurs qui ne sont pas administrateurs ne doivent gnralement pas tre sont pas administrateurs ne doivent gnralement pas tre autoriss modifier la base de donnes ou l'instance. autoriss modifier la base de donnes ou l'instance.

D.BOUZIDI

106

Exemples de privilges
Privilges systme Privilges systme
Catgorie
INDEX

Exemples
CREATE ANY INDEX ALTER ANY INDEX DROP ANY INDEX CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE CREATE SESSION ALTER SESSION RESTRICTED SESSION CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE

Privilges Objet Privilges Objet


OBJET
Table

TABLE

Privilges
ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE ALTER, SELECT DELETE, INSERT, SELECT, UPDATE EXECUTE

Squence vue Procdure

SESSION

TABLESPACE

D.BOUZIDI

107

Affectation de quotas
Un quota est une allocation d'espace dans un tablespace Un quota est une allocation d'espace dans un tablespace donn. donn. Par dfaut, un utilisateur ne dispose d'aucun quota sur aucun Par dfaut, un utilisateur ne dispose d'aucun quota sur aucun des tablespaces. des tablespaces. Trois options pour affecter un quota utilisateur Trois options pour affecter un quota utilisateur
Unlimited :: permet l'utilisateur d'employer tout l'espace Unlimited permet l'utilisateur d'employer tout l'espace disponible dans le tablespace. disponible dans le tablespace. Valeur :: indique l'espace pouvant tre employ par l'utilisateur. Valeur indique l'espace pouvant tre employ par l'utilisateur. Cette valeur ne garantit cependant pas que l'espace est rserv Cette valeur ne garantit cependant pas que l'espace est rserv pour l'utilisateur. Elle peut tre suprieure ou infrieure l'espace pour l'utilisateur. Elle peut tre suprieure ou infrieure l'espace actuellement disponible dans le tablespace. actuellement disponible dans le tablespace. Privilge systme UNLIMITED TABLESPACE :: remplace tous les Privilge systme UNLIMITED TABLESPACE remplace tous les quotas individuels sur les tablespaces et accorde l'utilisateur un quotas individuels sur les tablespaces et accorde l'utilisateur un quota illimit sur tous les tablespaces quota illimit sur tous les tablespaces
ALTER USER user01 ALTER USER user01 QUOTA 10M ON AppData; QUOTA 10M ON AppData;

D.BOUZIDI

108

Manipulation des comptes user


Cration dun utilisateur: Cration dun utilisateur:
CREATE USER user01 IDENTIFIED BY PwdUser01 CREATE USER user01 IDENTIFIED BY PwdUser01 DEFAULT TABLESPACE AppData DEFAULT TABLESPACE AppData TEMPORARY TABLESPACE temp TEMPORARY TABLESPACE temp QUOTA 15M ON dAppDta QUOTA 15M ON dAppDta

Modification des paramtres utilisateur :: Modification des paramtres utilisateur


ALTER USER user01 QUOTA 50M ON AppData; ALTER USER user01 QUOTA 50M ON AppData;

PASSWORD EXPIRE; PASSWORD EXPIRE;

Suppression dun utilisateur :: Suppression dun utilisateur


DROP USER peter; DROP USER peter; DROP USER peter CASCADE; DROP USER peter CASCADE;

Option cascade :: Si le schma contient des tables, Oracle effacera Option cascade Si le schma contient des tables, Oracle effacera alors toute les contraintes d'intgrits des tables et toutes les alors toute les contraintes d'intgrits des tables et toutes les contraintes d'intgrits dans les schmas d'autres utilisateurs contraintes d'intgrits dans les schmas d'autres utilisateurs qui faisaient rfrences aux contraintes UNIQUE et PRIMARY qui faisaient rfrences aux contraintes UNIQUE et PRIMARY KEY du schma qui est en cours de suppression KEY du schma qui est en cours de suppression Les vues principales permettant de surveiller des utilisateurs Les vues principales permettant de surveiller des utilisateurs
dba_users et dba_TS_Quotas dba_users et dba_TS_Quotas
D.BOUZIDI 109

Les Rles
Problmes :: Problmes
Il est trop fastidieux d'accorder de manire individuelle les Il est trop fastidieux d'accorder de manire individuelle les privilges ncessaires chaque utilisateur privilges ncessaires chaque utilisateur le risque d'erreur est trop important. le risque d'erreur est trop important.

Solution :: utilisation des rles Solution utilisation des rles


Un rle est un ensemble de privilges pouvant tre accords des Un rle est un ensemble de privilges pouvant tre accords des utilisateurs ou d'autres rles. utilisateurs ou d'autres rles. Un Rle est utilis pour administrer les privilges de base de Un Rle est utilis pour administrer les privilges de base de donnes donnes On peut ajouter des privilges un rle, puis accorder le rle un On peut ajouter des privilges un rle, puis accorder le rle un utilisateur, utilisateur, L'utilisateur peut alors activer le rle et exercer les privilges L'utilisateur peut alors activer le rle et exercer les privilges octroys par ce rle octroys par ce rle

D.BOUZIDI

110

Les caractristiques des rles


Les privilges sont accords aux rles (et rvoqus) comme si le rle Les privilges sont accords aux rles (et rvoqus) comme si le rle tait un utilisateur. tait un utilisateur. Les rles peuvent tre accords aux utilisateurs ou d'autres rles (et Les rles peuvent tre accords aux utilisateurs ou d'autres rles (et rvoqus) comme s'il s'agissait de privilges rvoqus) comme s'il s'agissait de privilges Un rle peut tre constitu de privilges systme et objet. Un rle peut tre constitu de privilges systme et objet. Un rle peut tre activ ou dsactiv pour chaque utilisateur auquel Un rle peut tre activ ou dsactiv pour chaque utilisateur auquel le rle est accord. le rle est accord. L'activation d'un rle peut ncessiter un mot de passe. L'activation d'un rle peut ncessiter un mot de passe. Les rles n'appartiennent personne et ne rsident dans aucun Les rles n'appartiennent personne et ne rsident dans aucun schma. schma. Exemple :: Exemple
les privilges SELECT et UPDATE sont accords au rle HR_CLERK sur la les privilges SELECT et UPDATE sont accords au rle HR_CLERK sur la table EMP table EMP Les privilges DELETE et INSERT sur la table EMP, ainsi que le rle Les privilges DELETE et INSERT sur la table EMP, ainsi que le rle HR_CLERK, sont accords au rle HR_MGR HR_CLERK, sont accords au rle HR_MGR Le rle HR_MGR est accord au manager, lequel peut prsent effectuer Le rle HR_MGR est accord au manager, lequel peut prsent effectuer des SELECT, des UPDATE ,, des DELETE et des INSERT sur la table EMP. des SELECT, des UPDATE des DELETE et des INSERT sur la table EMP.

D.BOUZIDI

111

Exemple de rles Prdfinis


ROLE CONNECT Privilges associs CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER, ALTER SESSION CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR La plupart des privilges systme et plusieurs autres rles. Ce rle ne doit pas tre accord aux utilisateurs qui ne sont pas administrateurs.

RESOURCE

DBA

Les vues permettant de surveiller des utilisateurs Les vues permettant de surveiller des utilisateurs
DBA_SYS_PRIVS //privilges systmes DBA_SYS_PRIVS //privilges systmes DBA_TAB_PRIVS //privilges objets DBA_TAB_PRIVS //privilges objets Dba_TS_Quotas //quotas sur un tablespace Dba_TS_Quotas //quotas sur un tablespace
D.BOUZIDI 112

Gestion des rles

Rles
Utilisateurs

Rles

HR_MGR

HR_CLERK

Privilges Privil

SELECT ON EMP CREATE SESSION

INSERT ON EMP UPDATE ON EMP

CREATE TABLE

D.BOUZIDI

Avantages des rles


Limitation de l'octroi de privilges Limitation de l'octroi de privilges Gestion dynamique des privilges Gestion dynamique des privilges Disponibilit slective des privilges Disponibilit slective des privilges Pas de rvocation en cascade Pas de rvocation en cascade Amlioration des performances Amlioration des performances

D.BOUZIDI

Crer des rles


Crer un rle Crer un rle
CREATE ROLE sales_clerk; CREATE ROLE sales_clerk;

Crer un rle protg par un mot de passe Crer un rle protg par un mot de passe
CREATE ROLE hr_clerk CREATE ROLE hr_clerk IDENTIFIED BY bonus; IDENTIFIED BY bonus;

Crer un rle dont lauthentification est gre par une Crer un rle dont lauthentification est gre par une application externe application externe
CREATE ROLE hr_manager CREATE ROLE hr_manager IDENTIFIED EXTERNALLY; IDENTIFIED EXTERNALLY;

D.BOUZIDI

Utiliser des rles prdfinis


Nom du rle
CONNECT

Description
Permet l'ouverture et la modification d'une session, la cration de tables, vues, clusters, squences, synonymes et liens de DB SESSION Permet de crer des types, tables clusters, oprateurs, squences, index et procdures Tous les privilges systme avec l'option WITH ADMIN OPTION Privilges d'export de base de donnes. Privilges d'import de base de donnes

RESOURCE

DBA EXP_FULL_DATABASE IMP_FULL_DATABASE

D.BOUZIDI

Manipulation des rles


Modifier un rle Modifier un rle
ALTER ROLE sales_clerk ALTER ROLE sales_clerk IDENTIFIED BY commission; IDENTIFIED BY commission; ALTER ROLE hr_clerk ALTER ROLE hr_clerk IDENTIFIED EXTERNALLY; IDENTIFIED EXTERNALLY; ALTER ROLE hr_manager ALTER ROLE hr_manager NOT IDENTIFIED; NOT IDENTIFIED;

Attribuer un rle Attribuer un rle


GRANT sales_clerk TO scott; GRANT sales_clerk TO scott; GRANT hr_clerk, GRANT hr_clerk, TO hr_manager; TO hr_manager; GRANT hr_manager TO scott GRANT hr_manager TO scott WITH ADMIN OPTION; WITH ADMIN OPTION;

D.BOUZIDI

Dfinir des rles par dfaut


Dfinir des rles par dfaut Dfinir des rles par dfaut
ALTER USER scott ALTER USER scott DEFAULT ROLE hr_clerk, sales_clerk; DEFAULT ROLE hr_clerk, sales_clerk; ALTER USER scott DEFAULT ROLE ALL; ALTER USER scott DEFAULT ROLE ALL; ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk; ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk; ALTER USER scott DEFAULT ROLE NONE; ALTER USER scott DEFAULT ROLE NONE;

Supprimer des rles Supprimer des rles


REVOKE sales_clerk FROM scott; REVOKE sales_clerk FROM scott;

REVOKE hr_manager FROM PUBLIC; REVOKE hr_manager FROM PUBLIC; DROP ROLE hr_manager; DROP ROLE hr_manager;

D.BOUZIDI

Activer et dsactiver les rles


Dsactivez un rle pour le rvoquer Dsactivez un rle pour le rvoquer temporairement un utilisateur. temporairement un utilisateur. Activez un rle pour l'accorder temporairement. Activez un rle pour l'accorder temporairement. La commande SET ROLE permet d'activer et de La commande SET ROLE permet d'activer et de dsactiver les rles. dsactiver les rles. Les rles par dfaut sont accords aux Les rles par dfaut sont accords aux utilisateurs lors de la connexion. utilisateurs lors de la connexion. Un mot de passe peut tre ncessaire pour Un mot de passe peut tre ncessaire pour activer un rle. activer un rle.

D.BOUZIDI

Instructions relatives la cration de rles


Utilisateurs Rles utilisateur Rles application

HR_CLERK

HR_MANAGER

PAY_CLERK

BENEFITS

PAYROLL

Privilges Privil d'application Privilges Benefits Privilges Payroll

D.BOUZIDI

Utilisation des rles protgs par mot de passe et des rles par dfaut

Protg par mot de Prot passe (ne correspond pas un rle par dfaut) d

Rle par dfaut

PAY_CLERK

PAY_CLERK_RO

Privilges INSERT, UPDATE, Privil DELETE et SELECT


D.BOUZIDI

Privilges SELECT Privil

Afficher les informations sur les rles


Vue du rle
DBA_ROLES DBA_ROLE_PRIVS ROLE_ROLE_PRIVS DBA_SYS_PRIVS ROLE_SYS_PRIVS ROLE_TAB_PRIVS SESSION_ROLES

Description
Tous les rles existants dans la base de donnes Rles accords aux utilisateurs et aux rles Rles accords aux rles Privilges systme accords aux utilisateurs et aux rles Privilges systme accords aux rles Privilges de table accords aux rles Rles d'un utilisateur actuellement activs

D.BOUZIDI

Sauvegarde et restauration

IMPORT et EXPORT
Permet de sauvegarder/restaurer le contenu Permet de sauvegarder/restaurer le contenu logique d'une base de donnes dans un fichier logique d'une base de donnes dans un fichier de transfert Oracle au format binaire de transfert Oracle au format binaire Le fichier export permet de recrer des objets Le fichier export permet de recrer des objets qu'il contient (portabilit OS et logiciel) qu'il contient (portabilit OS et logiciel) A ne pas utiliser distance :: augmente le trafic A ne pas utiliser distance augmente le trafic du rseau du rseau La version de l'utilitaire Import ne peut tre La version de l'utilitaire Import ne peut tre antrieure celle de l'utilitaire Export antrieure celle de l'utilitaire Export

D.BOUZIDI

Mode dImport et dExport


Base de donnes complte (option FULL): Base de donnes complte (option FULL):
Tous les objets de la base sont exports l'exception Tous les objets de la base sont exports l'exception de certains utilisateurs :: SYS, ORDSYS, CTXSYS, de certains utilisateurs SYS, ORDSYS, CTXSYS, MDSYS et ORDPLUGINS MDSYS et ORDPLUGINS Lors de L'importation tous les objets exports sont Lors de L'importation tous les objets exports sont crs dans la base de destination crs dans la base de destination

Utilisateur Utilisateur
Que les objets appartenant un utilisateur qui sont Que les objets appartenant un utilisateur qui sont exports (OWNER) exports (OWNER) On peut impoter, du fichier export, les objets dun On peut impoter, du fichier export, les objets dun utilisateur donn dans le schma dun utilisateur utilisateur donn dans le schma dun utilisateur (FROMUSER / TOUSER) (FROMUSER / TOUSER) Le fichier export permet de recrer des objets qu'il Le fichier export permet de recrer des objets qu'il contient (portabilit OS et logiciel) contient (portabilit OS et logiciel)

D.BOUZIDI

Mode dImport et dExport


Table (option TABLES) Table (option TABLES)
Lors de l'exportation dune table tous ses Lors de l'exportation dune table tous ses objets (index, contraintes, dclencheurs, objets (index, contraintes, dclencheurs, privilges ) sont sauvegards dans le privilges ) sont sauvegards dans le fichier dexport fichier dexport Lors de L'importation les tables doivent tre Lors de L'importation les tables doivent tre nommes grce au paramtre TABLES nommes grce au paramtre TABLES (comme dans lexportation) (comme dans lexportation)

Tablespace (TABLESPACE) Tablespace (TABLESPACE)


les mtas donns concernant les tablespaces les mtas donns concernant les tablespaces spcifis et les objets qu'ils contiennent sont spcifis et les objets qu'ils contiennent sont crites dans un fichier dexport crites dans un fichier dexport

D.BOUZIDI

Mode dImport et dExport


Privilges Privilges
Actions
Exporter son propre schma Exporter d'autres schmas Exporter la base entire ou tablespaces Importer un objet du fichier

Privilge ou rle
CREATE SESSION SYSDBA, DBA et EXP_FULL_DATABASE EXP_FULL_DATABASE IMP_FULL_DATABASE

D.BOUZIDI

Paramtres de lExport
Paramtres Userid File Log Full Grants Indexes Owner Parfile Rows Query Tables Statistics Description chane de connexion la base de donnes Nom du fichier de sauvegarde Nom du fichier de sortie du compte-rendu, pour voir les erreurs en particulier Export de toute la base Export des privilges Export des index Utilisateur(s) exporter Fichier contenant les paramtres d'export Export des lignes Dfinit une condition de filtre pour exporter un sousensemble Table(s) exporter Analyse des objets exports

D.BOUZIDI

Paramtres dimport
Paramtres Userid File Log Fromuser Full Grants Indexes Parfile Rows Show Destroy Tables Analyze Touser
D.BOUZIDI

Description chane de connexion la base de donnes Nom du fichier de sauvegarde Nom du fichier de sortie du compte-rendu, pour voir les erreurs en particulier Utilisateur exporter vers TOUSER Export de tout le contenu du fichier de sauvegarde Import des privilges Import des index Fichier contenant les paramtres dimport Import des lignes Liste le contenu du fichier d'export, aucune opration n'est effectue dans la base Dtruit les objets s'ils existent avant de les importer Table(s) exporter Excute la commande ANALYZE dans le fichier de sauvegarde Utilisateur destinataire

Exemple dexport
Exporter les structures de la base donnes Exporter les structures de la base donnes
exp userid=system/manager exp userid=system/manager file=c:\save\exp_ORCL_struct_full.dump file=c:\save\exp_ORCL_struct_full.dump log=c:\saveLog\exp_ORCL_struct_full.log full=y rows=n log=c:\saveLog\exp_ORCL_struct_full.log full=y rows=n

Exporter dun schma Exporter dun schma


exp userid=system/manager exp userid=system/manager file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\logsave\exp_scott_full.log owner=scott log=c:\logsave\exp_scott_full.log owner=scott

Exporter dune table Exporter dune table


exp userid=system/manager exp userid=system/manager file=c:\save\exp_emp_scott.dump file=c:\save\exp_emp_scott.dump log=c:\logsave\exp_emp_scott.log tables=scott.emp log=c:\logsave\exp_emp_scott.log tables=scott.emp

Exporter dune tablespace Exporter dune tablespace


exp userid=system/manager exp userid=system/manager file=c:\save\exp_nomTablespace.dump file=c:\save\exp_nomTablespace.dump log=c:\logsave\exp_nomTablespace.log tablespace=nomTablespace log=c:\logsave\exp_nomTablespace.log tablespace=nomTablespace

Exporter selon une condition Exporter selon une condition


exp system/manager file=\save\exp_ORCL_query1.dmp exp system/manager file=\save\exp_ORCL_query1.dmp tables=scott.emp query="'where salaire > 500'" tables=scott.emp query="'where salaire > 500'" D.BOUZIDI

Exemple dimport
Importer tous les schma sauvegards Importer tous les schma sauvegards
imp userid=stystem/manager imp userid=stystem/manager file=c:\save\exp_ORCL_struct_full.dump file=c:\save\exp_ORCL_struct_full.dump log=c:\logsave\imp_ORCL_struct_full.log log=c:\logsave\imp_ORCL_struct_full.log

Importer un schma dun fichier export contenant tt la BD Importer un schma dun fichier export contenant tt la BD
imp userid=scott/tiger imp userid=scott/tiger file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\logsave\imp_scott_full.log owner=scott log=c:\logsave\imp_scott_full.log owner=scott

Importer un schma vers un autre Importer un schma vers un autre


imp userid=scott/tiger imp userid=scott/tiger file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\logsave\imp_scott_full.log fromuser=scott touser=user01 log=c:\logsave\imp_scott_full.log fromuser=scott touser=user01

Importer une table dun schma vers un autre Importer une table dun schma vers un autre
imp userid=system/manager imp userid=system/manager file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\logsave\imp_scott_full.log fromuser=scott Tables=emp log=c:\logsave\imp_scott_full.log fromuser=scott Tables=emp touser=user02 touser=user02 D.BOUZIDI

Exemple dexport /import utilisant Exemple dexport /import utilisant un fichier de paramtres un fichier de paramtres
Cration du fichier de paramtres dexport Cration du fichier de paramtres dexport
userid=system/manager userid=system/manager file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\exp_scott_full.log log=c:\exp_scott_full.log owner=scott owner=scott rows=y rows=y expScott.prm expScott.prm

Export un schma Export un schma


exp parfile=c:\fichierParametre\expScott.prm exp parfile=c:\fichierParametre\expScott.prm

Cration du fichier de paramtres dimport Cration du fichier de paramtres dimport


userid=system/manager userid=system/manager file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\imp_scott_full.log log=c:\imp_scott_full.log owner=scott owner=scott rows=y rows=y impScott.prm impScott.prm

Export un schma Export un schma


imp parfile=c:\fichierParametre\impScott.prm imp parfile=c:\fichierParametre\impScott.prm D.BOUZIDI

Sauvegarde Froid Sauvegarde Froid


Permet de faire une sauvegarde dune Base de Permet de faire une sauvegarde dune Base de donnes en arrt donnes en arrt Les fichiers (datafiles, logfiles, controlfile, etc) Les fichiers (datafiles, logfiles, controlfile, etc) peuvent tre sauvegards sans corruption peuvent tre sauvegards sans corruption Fortement utilise en mode noArchivelog Fortement utilise en mode noArchivelog Inconvnients :: nest valable pour des Inconvnients nest valable pour des environnements haute disponibilit o lactivit environnements haute disponibilit o lactivit ne peut tre interrompue ne peut tre interrompue

D.BOUZIDI

Sauvegarde Froid Sauvegarde Froid Les tapes de sauvegarde Les tapes de sauvegarde
Lister les noms sauvegarder Lister les noms sauvegarder
Fichiers de donnes Fichiers de donnes
Select * from dba_datafiles; Select * from dba_datafiles;

Fichiers de contrles Fichiers de contrles


Select * from v$parameter where name like control_files; Select * from v$parameter where name like control_files;

Les fichiers log Les fichiers log


Select * from v$logfile; Select * from v$logfile;

Arrter de la base de donnes en mode immediate Arrter de la base de donnes en mode immediate
Shutdown immediate Shutdown immediate

Effectuer une copie des fichiers sauvegarder par Effectuer une copie des fichiers sauvegarder par une commande OS une commande OS Redmarrer la base de donnes Redmarrer la base de donnes
D.BOUZIDI

Sauvegarde Chaud Sauvegarde Chaud


Permet de faire une sauvegarde dune Base de Permet de faire une sauvegarde dune Base de donnes sans la faire arrter donnes sans la faire arrter Utile dans un contexte haute disponibilit o Utile dans un contexte haute disponibilit o ltat des fichiers change constamment ltat des fichiers change constamment Fonctionnement :: Placer un tablespace dans le Fonctionnement Placer un tablespace dans le mode de sauvegarde et de sauvegarder les mode de sauvegarde et de sauvegarder les fichiers de donnes, puis de rtablir le fichiers de donnes, puis de rtablir le tablespace dans le mode normal tablespace dans le mode normal La base de donnes doit tre en mode Archivelog La base de donnes doit tre en mode Archivelog

D.BOUZIDI

Sauvegarde Chaud Sauvegarde Chaud Stratgie de sauvegarde: Stratgie de sauvegarde:


Sauvegarde complte de la base de donnes Sauvegarde complte de la base de donnes des intervalles rguliers des intervalles rguliers Sauvegarde partielle de la base de donnes Sauvegarde partielle de la base de donnes Archivage des fichiers de journalisation (log) Archivage des fichiers de journalisation (log) Sauvegarde du fichier de contrle en cas de Sauvegarde du fichier de contrle en cas de modification dans la base de donnes modification dans la base de donnes

D.BOUZIDI

Sauvegarde Chaud Sauvegarde Chaud Sauvegarde dun tablespace mis en offline Sauvegarde dun tablespace mis en offline
Identifier les fichiers du tablesapce Identifier les fichiers du tablesapce sauvegarder sauvegarder
Select file_name from dba_datafiles where Select file_name from dba_datafiles where tablespace_name= NOMTABLESPACE tablespace_name= NOMTABLESPACE

Mettre le tablespace en mode offline Mettre le tablespace en mode offline


Alter tablespace NomTablespace offline normal Alter tablespace NomTablespace offline normal

Effectuer une copie des fichiers sauvegarder Effectuer une copie des fichiers sauvegarder par une commande OS par une commande OS Remettre le tablespace en mode on online Remettre le tablespace en mode on online
Alter tablespace NomTablespace online Alter tablespace NomTablespace online
D.BOUZIDI

Procdure de rcupration Procdure de rcupration


Fichier de journalisation Fichier de archiv journalisation Fichier de archiv journalisation en ligne

Modifications appliques

Informations d'annulation appliques

Fichiers de donnes restaurs

Fichiers de donnes contenant des transactions valides et non valides

Fichiers de donnes rcuprs

1
D.BOUZIDI

Procdures de rcupration gres par Procdures de rcupration gres par l'utilisateur : commande RECOVER l'utilisateur : commande RECOVER
Restaurer tous les fichiers de base de donnes partir d'une sauvegarde et rcuprer la base de donnes :
SQL> RECOVER DATABASE

Restaurer les fichiers de donnes endommags partir d'une sauvegarde et rcuprer les fichiers de donnes :
SQL> RECOVER TABLESPACE index_tbs

Ou
SQL> RECOVER DATAFILE '/oradata/indx01.dbf'

D.BOUZIDI

Crer un nouveau fichier de contrle Crer un nouveau fichier de contrle

Fichier de paramtres

SYSTEM

USERS

Fichier de Fichier de journalisation journalisation 1A 1B Fichier de Fichier de journalisation journalisation 2A 2B

SYSAUX

INDEX

Fichier de mots de passe


UNDO TEMP

Fichiers de contrle

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

D.BOUZIDI

141

Situations ncessitant une Situations ncessitant une rcupration incomplte rcupration incomplte

La rcupration complte choue parce qu'un fichier de journalisation archiv est manquant. Un ou plusieurs fichiers de journalisation non archivs et un fichier de donnes sont manquants. Une sauvegarde du fichier de contrle est utilise pour ouvrir ou rcuprer la base de donnes.

D.BOUZIDI

Mthodes recommandes pour la Mthodes recommandes pour la rcupration incomplte rcupration incomplte

Suivez soigneusement toutes les tapes. Effectuez des sauvegardes totales de la base de donnes avant et aprs la rcupration. Vrifiez toujours que la rcupration a russi. Sauvegardez et supprimez les fichiers de journalisation archivs.

D.BOUZIDI

Procdure de rcupration UNTIL TIME Procdure de rcupration UNTIL TIME


1. 2. 3. 4. 5. Arrtez la base de donnes. Restaurez les fichiers de donnes. Montez la base de donnes. Rcuprez la base de donnes. Ouvrez la base de donnes avec l'option RESETLOGS. 6. Sauvegardez la base de donnes.
SQL> $ cp SQL> SQL> SQL> SQL> $ cp shutdown immediate /BACKUP/* /u01/db01/ORADATA startup mount recover database until time '2004-05-28:11:44:00'; alter database open resetlogs; shutdown; /u01/db01/ORADATA/* /BACKUP
144

D.BOUZIDI

Vous aimerez peut-être aussi