You are on page 1of 114

Administration des bases de donnes sous Oracle 10g e

Administration des bases de donnes sous Oracle e 10g


Fabien De Marchi, Jean-Marc Petit
Universit de Lyon e

November 22, 2007

1/96

Administration des bases de donnes sous Oracle 10g e Sur le cours

Prrequis et objectifs e

Prrequis e
Mod`le relationnel (structure, contraintes, SQL) e

Objectifs
Conna les tches dun DBA tre a Conna les concepts et points cls de larchitecture Oracle tre e 10g Savoir eectuer les principales tches sous Oracle 10g a

2/96

Administration des bases de donnes sous Oracle 10g e Sur le cours

Pour en savoir plus...

Documentation Oracle : www.oracle.com


En anglais, 2000 pages sur ladministration : tr`s complet... e

3/96

Administration des bases de donnes sous Oracle 10g e Introduction Les mtiers autour des bases de donnes e e

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
4/96

Administration des bases de donnes sous Oracle 10g e Introduction Les mtiers autour des bases de donnes e e

Les mtiers autour des bases de donnes e e


Administrateur Responsable de la scurit e e Administrateur rseaux e Dveloppeurs dapplication e Administrateurs dapplication Utilisateurs : modier les donnes, crer des rapports e e Note Dans des environnements de petite taille, ladministrateur peut jouer quasiment tous les rles o

4/96

Administration des bases de donnes sous Oracle 10g e Introduction Rles du DBA o

Rles du DBA o

Installer les logiciels Oracle


un serveur, des applications clientes, En fonction de la conguration syst`me disponible e Si fonctionnement en rseau : composents rseaux dOracle e e

Planier et crer des bases de donnes e e Grer lespace et implanter les schmas des donnes e e e Assurer la scurit, lintgrit et la prennit des donnes e e e e e e e Eectuer des rglages pour optimiser les performances e

5/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Architecture

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
6/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Architecture

Vue densemble
Deux architectures possibles:
client/serveur : des applications clientes envoient les requtes SQL et PL/SQL ` un serveur. e a Multitier : des serveurs dapplication all`gent la charge du e serveur en ralisant certains acc`s pour les clients. e e

Un serveur de bases de donnes est compos : e e


dune instance = plusieurs processus et une zone de mmoire e dune base de donnes e de plusieurs schmas, assimils ` des utilisateurs e e a

Dans le cas de clusters de machines, Oracle 10g peut associer plusieurs instance ` une mme base de donnes. a e e

6/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts La connexion client/serveur

La connexion client/serveur

Un processus utilisateur est cr quand un utilisateur lance ee une application cliente


Une connexion va tre cre avec linstance Oracle, e ee lutilisateur va ouvrir une session

Un processus serveur va analyser et excuter les requtes, e e retourner les donnes e


Mode ddi : une processus serveur pour un processus client e e Mode partag : les clients partagent un groupe de processus e serveurs
Evite les processus serveurs inactifs

7/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Composants dune instance

La mmoire (1) e

La SGA (Syst`me Global Area) e


Zone partage par tous les utilisateurs de la base de donnes e e Alloue au dmarrage de linstance en mmoire principale : e e e doit-tre la plus grosse possible. e Son but est dconomiser les E/S. Elle contient : e
le cache de donnes (database buer cache) e le cache de reprise (redo log buer) pour les changements rcents e le cache dexcution partag (shared pool) pour les requtes e e e SQL et PL/SQl. Contient le dictionnaire de donnes en cache. e

8/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Composants dune instance

La mmoire (2) e

La PGA (Program Global Area)


Zone dexcution des processus du serveur e Alloue au lancement de chaque processus e

9/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Composants dune instance

Les processus de fond serveur


Excutent des actions asynchrones dcriture et de contrle e e o DBWn (Database Writer) - Ecrit le contenu du cache de donnes dans les chiers de donnes e e
Lorsque la place manque en SGA De faon priodique, en mettant ` jour le point de restauration c e a dans les chiers de log on peut en crer plusieurs : DBW0, DBW1, ... , DBWj e

LGWR (Log Writer) - Ecrit le contenu du cache de reprise dans les chiers de reprise
en cas de commit dun utilisateur Toutes les trois secondes Quand le cache de reprise est plein au tiers Quand un processus DBWn dcharge des donnes modies e e e
10/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Composants dune instance

Les processus de fond serveur (cont.)


CKPT (Chekpoint)
Pour assurer la synchronisation et la cohrence des donnes e e

SMON (System Monitor)


Eectue la restauration lors de reprise apr`s panne e Nettoie les segments temporaires Fusionne certains extents libres contige u

PMON (Process Monitor)


Pour grer les pannes des processus clients e

RECO (Recover)
Pour les reprises apr`s panne de transactions distribues e e

ARCn (Archiver)
Pour larchivage, lorsquil est activ e

...
11/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Composants dune base de donnes e

Structure physique

Des chiers sur le disque


un chier de contrle qui spcie le nom et lemplacement o e des chiers, le nom de la base,... plusieurs chiers de donnes pour stocker les donnes e e au moins deux chiers de reprise apr`s panne qui contiennent e les modications rcentes e des chiers darchivage (optionnel) pour archiver les chiers de contrle o un chier de param`tres (optionnel) qui stocke tous les e param`tres de la base e des chiers de trace pour rpertorier toutes les tches et e a erreurs eectues e

12/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Composants dune base de donnes e

Structure logique

Des concepts pour grer nement la mmoire e e


le block de donnes est lunit logique la plus ne, 8ko par e e dfaut. e lextent est un ensemble contige de blocks, allous en une u e seule fois. le segment est un ensemble dextents ddis ` un mme objet e e a e (table, index, ...) Tablespace : regroupe un ensemble dobjets (=segments) pour faciliter leur administration. Peut atteindre 8 exabytes !

Un tablespace = un ou plusieurs chiers de donnes e

13/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Les schmas pour Oracle e

Contenu dune schma e

Correspond ` un utilisateur : les deux portent le mme nom a e Ensemble dobjets de lutilisateur manipulables en SQL Exemple : tables, index, clusters, triggers, vues, dimensions, fonctions, ... Un objet correspond ` : a
plusieurs extents un segment un tablespace un ou plusieurs chiers du tablespace

Pas de correspondance schema/tablespace

14/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Les schmas pour Oracle e

Stockage des tables


Pour des tables de moins de 256 attributs
si possible : un tuple est enti`rement dans un block e sinon : cha nage inter-blocs (augmente les E/S)

pour tes tuples de plus de 256 attributs (compris)


chaque partie de 255 tuples est cha ee intra-bloc (si possible n !)

Les tuples sont cha es en utilisant le ROWID n A la cration dune table, on peut : e
spcier le tablespace e spcier la taille du segment e spcier la quantite despace libre laisse dans chaque bloc e e

15/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Identication du DBA sous Oracle

Le rle DBA o

Acc`s au catalogue, gestion des utilisateurs, de la mmoire... e e D`s la cration de la base, deux utilisateurs sont crs avec le e e ee rle DBA o
SYS/CHANGE ON INSTALL
Poss`de toutes les tables syst`mes, dont le dictionnaire e e Ne jamais rien crire sur ce compte ! e

SYSTEM/MANAGER
Pour crer des tables dadministration uniquement e

Il est fortement conseill de spcier dautres mots de passe e e dans la phase de cration. e Ne pas utiliser dans ladministration quotidienne

16/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Identication du DBA sous Oracle

Les privil`ges SYSDBA et SYSOPER e


Permettent deectuer les oprations au-dessus de la base e de donnes e
Dmarrer et arrter le serveur e e Crer ou supprimer des bases de donnes e e Changer les modes darchivage de la base ...

Leur identication est gre soit : ee


Par le SE,
lutilisateur doit appartenir au groupe dba ou oper (ora dba et ora oper sous WINDOWS) connect / as sysdba ; connect / as sysoper.

Par le chier password dOracle.


Crer un chier password avec loutil ORAPWD e accorder le privil`ge ` partir de lutilisateur SYS e a connect user/user as sysdba;
17/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Le dictionnaire de donnes e

Informations du dictionnaire

Ensemble de tables appartenant ` lutilisateur SYS a principales informations


La dnition de tous les objets et leur espace allou e e Les valeurs par dfaut des attributs e Les contraintes dintgrit e e La liste des utilisateurs, leurs privil`ges e Des informations daudit sur les acc`s et modications e ...

18/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Le dictionnaire de donnes e

Structure du dictionnaire

Des tables de base, uniquement accdes par Oracle et SYS e e Des vues mises ` la disposition des utilisateurs (selon leurs a droits)
Vues utilisateurs : USER View. Pour les objets de lutilisateur qui demande Vues densemble : ALL Views. Pour une vue densemble sur les objets auxquels on a acc`s e Vues dadministration : DBA Views. Sur lensemble de la base, uniquement SYS. Vues dynamiques sur lactivit de la base : V $Views. e

19/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Synth`se e

Encha nement type (1)


Une instance Oracle est dmarre sur le serveur e e Une application cliente tablit une connexion et ouvre une e session Le serveur dtecte la requte de connexion et cre un e e e processus serveur ddi e e Lutilisateur lance une requte SQL et un commit e Le processus serveur recherche dans la shared pool si la requte existe e
OUI : elle sera utilise pour rpondre e e NON : la nouvelle requte est insre dans la shared pool, e ee analyse et execute e e

20/96

Administration des bases de donnes sous Oracle 10g e Oracle : les grands concepts Synth`se e

Encha nement type (2)

Le processus serveur rcup`re les donnes e e e


Dans le cache de donnes e dans les chiers de donnes (et les charge dans le cache) e

Le processus serveur modie ventuellement les donnes dans e e le cache Puisquil y a validation, LGWR ecrit la transaction dans le chier de reprise
Les changements seront rpertoris dans les chiers de donnes e e e par DBWn Le rsultat, ou une conrmation, est envoy au processus e e utilisateur

21/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
22/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Prliminaires e

Deux possibilits e
Utiliser lassistant Oracle : graphique Crer manuellement ` laide de scripts e a

En cas de mise ` jour dOracle, une procdure particuli`re a e e existe


Compatibilit ascendante, on ne recre pas les bases de e e donnes. e

Prrequis : e
Oracle doit-tre install e e Vous devez tre administrateur du SE et de linstance Oracle e La mmoire principale et mmoire disque doit tre susante e e e

22/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Planier la base
Phase de reexion avant cration, pour faire les bons choix. e Rchir aux tables et indexes ` venir, estimer leur taille e e a Planier la distribution de ses chiers, lespace libre dans les blocks Dcider entre une gestion classique ou automatique des e chiers Choisir lencodage des caract`res (peut-tre surcharg par les e e e clients) Dterminer la taille des blocs de donnes e e Choisir le mode de gestion de lannulation
Tablespace ddi e e Segments dannulation

Dterminer la stratgie de sauvegarder et reprise apr`s panne e e e


23/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Etapes de cration (1/2) e


Spcier le nom de linstance SID e Crer le chier de param`tres PFILE (partir de lexemple e e Oracle)
Nom de la base, emplacement des chiers de contrle o

Se connecter ` linstance inactive a


SQLPLUS /nolog puis CONNECT / AS SYSDBA

Crer un chier de param`tre serveur SPFILE (` partir du e e a chier manuel) Lancer linstance : STARTUP NOMOUNT (Aucune vrication de cohrence ` ce niveau) e e a Crer la base de donnes : CREATE DATABASE... e e
24/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

CREATE DATABASE mynewdb USER SYS IDENTIFIED BY pz6r58 USER SYSTEM IDENTIFIED BY y1tz5p LOGFILE GROUP 1 (/u01/oracle/oradata/mynewdb/redo01.log) SIZE 100M, GROUP 2 (/u01/oracle/oradata/mynewdb/redo02.log) SIZE 100M, GROUP 3 (/u01/oracle/oradata/mynewdb/redo03.log) SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET US7ASCII NATIONAL CHARACTER SET AL16UTF16 DATAFILE /u01/oracle/oradata/mynewdb/system01.dbf SIZE 325M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE /u01/oracle/oradata/mynewdb/sysaux01.dbf SIZE 325M REUSE DEFAULT TABLESPACE tbs_1 DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE /u01/oracle/oradata/mynewdb/temp01.dbf SIZE 20M REUSE UNDO TABLESPACE undotbs DATAFILE /u01/oracle/oradata/mynewdb/undotbs01.dbf SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
25/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Etapes de cration (2/2) e

Crer de nouveaux tablespace, par exemple : e


Un USERS pour les utilisateurs un INDX pour les index

Lancer les scripts de cration du dictionnaire (catalog.sql, e catproc.sql) et ventuellement dautres scripts optionnels e Crer une sauvegarde compl`te de linstallation dans cet tat e e e

25/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Alternative : chiers grs par Oracle ee

Oracle peut prendre en charge les chiers Spci dans les param`tres dinitialisation e e e Simplie les commandes Ladministrateur ne g`re que la partie logique : tablespace, e extents...

26/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

CREATE DATABASE rbdb1 USER SYS IDENTIFIED BY pz6r58 USER SYSTEM IDENTIFIED BY y1tz5p UNDO TABLESPACE undotbs DEFAULT TEMPORARY TABLESPACE tempts1;

27/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Prcisions sur les param`tres de linstance (ple) e e


le nom de la base ne comporte que 8 caract`res e crer au moins deux chiers de contrles e o
Sur des disques dirents si possible e

Laisser Oracle choisir la taille des blocs On peut contrler la SGA o


En lui xant une taille maximale en xant la taille de dirents composants e On peut changer plus tard, de faon dynamique c

On peut xer le nombre de processus autoriss e


Nombres de processus utilisateurs + 10

On doit choisir un mode de gestion des annulations


Comment on g`re les donnes dannulation ? (Avant Commit) e e Automatique : gres dans un tablespace ee Manuel : gres dans les segments dannulation ee
27/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Remarques complmentaires e
Si la cration choue, visualier le chier dalertes e e
Arrter linstance e Supprimer les chiers crs pendant la tentative ee

Pour supprimer une base :


Drop database La base doit tre monte et ferme e e e Conserve les chiers darchivage et les copies

Pour modier des param`tres e


Les commandes ALTER SYSTEM pour les param`tres e dinstance (modie le SPFILE, pas le PFILE !) Les commande ALTER DATABASE pour revenir sur les choix du CREATE DATABASE

Pour voir les informations sur la base


Show parameters, vues database properties et V$DATABASE Les commande ALTER DATABASE pour revenir sur les choix du CREATE DATABASE
28/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Crer une base de donnes e e

Conguration du rseau e

Ct serveur oe
Un processus dcoute utilisant un protocole rseau : e e listenerSID Un serveur BD Oracle = instance + base Les congurations (=services dcoute) sont enregistres dans e e listener.ora Editable ` la main, ou via outils graphiques a

Ct client oe
Congurations (services dacc`s) enregistres dans tnsname.ora e e Permet au client de se connecter de faon transparente c

29/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Dmarrer et arrter une base e e

Dmarrer une base de donnes e e


Oracle Enterprise Manager (OEM) SQL*Plus
SQLplus /nolog : lancer SQL*plus connect / as sysdba

Commande STARTUP pour dmarrer linstance e


Utilise le SPFILE ou le PFILE ` prciser a e NOMOUNT : base ferme et non monte e e MOUNT : base ferme et monte e e FORCE : ouvre de force, en tuant une ventuelle instance e dmarre e e

Commande ALTER DATABASE si linstance est dj` ouverte ea


MOUNT pour monter la base OPEN pour ouvrir la base OPEN READ ONLY ouverte en lecture seule

ALTER SYSTEM ENABLE RESTRICTED SESSION : seuls les DBA peuvent ouvrir des sessions
30/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Dmarrer et arrter une base e e

Fermer une base de donnes e


Commande SHUTDOWN Garde la main jusqu` larrt complet a e Plus personne ne peut se connecter Plusieurs modes darrt : e
NORMAL : attend la dconnexion de tous les utilisateurs e IMMEDIATE : annule toutes les transactions non valides et e tue les sessions en cours TRANSACTIONAL : attend la n des transactions puis tue les sessions ABORT : tue les sessions, mais nannule pas les transactions non valides e

31/96

ABORT est ` utiliser en dernier recours a ABORT ncessite une restauration de la base pour retrouver e sa cohrence e On peut suspendre une base de donnes : ALTER SYSTEM e SUSPEND/RESUME

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Gestion des processus

Mode ddi et mode partag e e e

Le mode ddi est par dfaut e e e Le mode partag est prfrable, sauf : e ee
Lorsque lutilisateur envois des tches en batch a pour eectuer certaines tches de restauration a

Pour dmarrer le mode partag e e


Spcier le nombre de serveurs dans le param`tre dinstance e e SHARED SERVERS Dans le chier de param`tre, ou avec ALTER SYSTEM e Ce nombre peut-tre augment par Oracle en fonction de la e e charge

32/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Gestion des processus

Terminer des sessions

On peut tuer une session avec la commande ALTER SYSTEM KILL SESSION SI,SN
SI est lidentiant syst`me e SN est le numro de srie e e

rcuprer ces identiants dans la vu V$SESSION e e Les transactions en cours sont annules e

33/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Gestion des processus

Surveiller lactivit de la base (1) e

Doit tre constamment fait en tche de fond du DBA e a


Pour reprer des erreurs ventuelles e e Pour devenir familier du comportement normal...

Alertes du serveur
` partir de seuils : trop de validations, trop dacc`s disque, a e temps de rponse trop long... e ` partir dv`nements : une vue est trop ancienne, ... a e e Paramtrables via OEM ou package PL/SQL : e DBMS SERVER ALERTS Accessibles dans des vues du dictionnaire

34/96

Administration des bases de donnes sous Oracle 10g e Tches lmentaires dadministration a ee Gestion des processus

Surveiller lactivit de la base (2) e


Chaque processus serveur est associ ` un chier trace. ea le chier dalerte recueil en particulier
erreurs internes, corruption de blocs, blocages toutes les commandes dadministration les erreurs relatives aux processus serveurs partags e les erreurs durant le rafra chissement des vues les valeurs des param`tres dinitialisation spcis par e e e lutilisateur

Il est possible de ma triser :


lemplacement des chiers trace leur taille le traage des processus serveurs, pour collecter des statistiques c

35/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de contrle o

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
36/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de contrle o

Quest ce que cest ?


Fichier binaire qui dcrit la structure physique de la base e
Le nom de la base Les chiers de donnes et de reprise e La date de cration de la base e La position courrante dans les logs Des informations sur les point de synchronisation (checkpoint)

Ncessaire pour monter la base e Fortement recommand en cas de restauration e Gnr lors de la cration de la base e ee e
Avec au moins une rplication e On peut faire dautres rplications plus tard e

36/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de contrle o

Grandes lignes

On peut en spcier lors de la cration (nom par dfaut sinon) e e e Ils doivent tre rpliqus (multiplexage) sur des disques e e e spars e e
Lorsque linstance est arrte, crer la copie du chier ee e Dclarer le nouveau chier dans le chier de param`tres e e

Mme procdure pour le renommage e e Ils doivent tre sauvegards. Deux options : e e
ALTER DATABASE BACKUP CONTROLEFILE TO lename ALTER DATABASE BACKUP CONTROLFILE TO TRACE
gn`re un script CREATE CONTROL FILE... dans le chier e e trace

37/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de contrle o

Cration de nouveaux chiers de contrle e o


Toutes les rplications sont endommages, pas de sauvegarde e e On modie un param`tre de cration qui aecte la taille e e
MAXLOGFILES, MAXLOGMEMBERS,MAXLOGHISTORY, MAXDATAFILES, MAXINSTANCES le nom de la base

Procdure : e
rpertorier tous les chiers donnes et reprise e e arrter linstance, sauvegarder les chiers, redmarrer en e e NOMOUNT CREATE CONTROL FILE (cf doc SQL), puis sauvegarde du nouveau chier Spcier les nouveaux chiers de contrle dans le chier de e o param`tres e Restaurer ventuellement la base, si des chiers ont t perdus e ee Ouvrir la base

Visualiser le chier dalertes pour vrier les erreurs e


38/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de contrle o

Suprression et visualisation

Pour supprimer, il sut de supprimer dans le chier de param`tre e


Attention : toujours garder 2 chiers de contrle ! o

Informations sur les chiers de contrle : o


V$DATABASE : ce que contient le chier de contrle o V$CONTROLFILE : nom des chiers de contrle o V$PARAMETER : voir les param`tres dinitialization e

39/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de reprise

Quest-ce que cest ?

Fichiers journaux qui stockent tous les changements, pour la reprise apr`s panne e Organisation physique et logique :
Un groupe est un ensemble de chiers multiplexs e (membres) Il faut au moins deux groupes avec un chier chacun Un chier doit tre vu comme un ensemble denregistrements e Un enregistrement est un ensemble de vecteurs de changement

Un vecteur est cr pour chaque bloc de donnes modi ee e e Stocke aussi les informations dannulation

40/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de reprise

Fonctionnement
Acceds uniquement par le processus LGWR (Log Writer) e De faon circulaire : groupe apr`s groupe c e Dclenchement : validation, ou cache de reprise rempli e
Assigne un identiant unique ` lenregistrement cr a ee Si pas de validation : possibilit dannulation e

En n de boucle, les premiers chiers sont crass (attente e e synchronisation) Possibilit darchiver les chiers de reprise pleins e Si probl`me dcriture sur tout un groupe : linstance sarrte. e e e
Erreur reporte dans le chier dalerte e Il faut corriger et redmarrer e
41/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de reprise

Gnralits et conseils e e e
Si possible, un disque par chier de reprise
Archivage sur un autre disque Fichiers de donnes sur un autre disque e

Pour choisir la taille des chiers, penser ` larchivage a Commencer par deux groupes, puis vrier le chier de trace e
Si trop de blocages, augmenter le nombre de groupes

On peut crer ou supprimer des groupes ou des membres, e renommer des membres
sans dpasser MAXLOGFILES et MAXLOGMEMBERS e privil`ge ALTER DATABASE, en gnral base dmmonte. e e e e e

Vues V$LOG, V$LOGFILE

42/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de donnes e

Quest-ce que cest ?

Fichiers physiques o` sont stockes toutes les structures u e logiques Un chier de donnes est associ ` un tablespace e ea
Poss`de un numro unique dans la base (absolu) e e poss`de un numro unique dans le tablespace (relatif) e e

Au moins deux : tablespaces SYSTEM et SYSAUX Le nombre max est x par le param`tre DB FILES e e Certaines limites sont imposes par le SE e Les chiers temporaires sont des chiers de donnes un peu e spciaux e

43/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Fichiers de donnes e

Manipulations des chiers de donnes e


Cration les tablespace ou avec la base e
CREATE/ALTER TABLESPACE CREATE/ALTER DATABASE

On peut modier leur taille ` la vole a e


Automatiquement (ici par pas de 512k) : AUTOEXTEND ON NEXT 512k Manuellement : ALTER DATAFILE ... RESIZE ...

Peuvent tre mis ONLINE ou OFFLINE e peuvent tre renomms ou dplacs e e e e


Renommer physiquement, puis logiquement avec ALTER TABLESPACE ... RENAME DATAFILE ... TO Manuellement : ALTER DATAFILE ... RESIZE ...

Informations : DBA DATA FILES, V$DATAFILES


44/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Tablespaces

Grandes lignes
Espace de stockage logique des objets Un tablespace = plusieurs chiers de donnes e
Un seul dans le cas des tablespace ` gros chier (bigle) a

Il est ncessaire dutiliser plusieurs tablespace e


Sparer les donnes des utilisteurs du dictionnaire e e Sparer les donnes dapplications direntes, pour allger les e e e e acc`s et rduire les risques de panne des applis e e Tablespaces optimiss pour certaines tches : lecture seule ou e a mises ` jour frquentes, espace temporaire a e Sauvegarde individuelle des tablespace

Stocker un tablespace par disque, pour rduire les e concurrences E/S Pour chaque utilisateur il faut assigner un quota
45/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Tablespaces

Dirents types de tablespaces e


Tablespaces ` gestion locale des extents (par dfaut !) a e
G`re la mmoire locallement avec des bitmaps e e Amliore les performances e All`ge les acc`s au dictionnaire e e Permet le choix automatique de lunit dextention e Autorise la gestion automatique de lespace dans les segments peut sappliquer ` tous les tablespaces a

Tablespaces grer par le dictionnaires e


Gestion plus prcise e Ncessite une fusion priodique des extents libres e e

Bigle tablespaces (jusqu` 128 tera) a


Lorsquon a besoin de plus de capacit (64 000 chiers de e donnes au maximum) e Simplie la gestion du tablespace (un seul chier) Uniquement pour les tablespace ` gestion locale et gestion a automatique de lespace
46/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Tablespaces

Dirents types de tablespaces (cont.) e

Tablespaces temporaires : pour la gestion des tris


Une instance + un tablespace un segment de tri Aects ` chaque utilisateurs e a Forcment ` gestion locale depuis 10g e a ne gn`re pas dcriture dans les chiers de reprise e e e Possibili de crer des groupes, pour des tris parall`les e e e

Tablespace dannulation, pour les oprations non valides e e

47/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Tablespaces

Le tablespace dannulation

Stocke les oprations non valides. Utilises dans les e e e annulations, et les restaurations Jusqu` la version 8 : Rollback Segments a Maintenant : tablespace ddi ` lannulation et gr e ea ee automatiquement
Fortement recommand, mais pas par dfaut (param`tres du e e e PFILE)

Les oprations valides sont crases, mais possibilit de les e e e e e conserver

48/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Tablespaces

Maintenance des tablespaces

Les oprations suivantes sont ralisables sur un tablespace : e e demander la non-gnration de log: NO LOGGING e e
Exemple : CREATE TABLE NOLOGGING

marquer indisponible : OFFLINE


Impossible pour SYSTEM, dannulation ou temporaire

Placer en mode lecture seule Renommer Supprimer (pas de restauration possible !) Les transporter sur une autre base de donnes ou plateforme e

49/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Les modes de gestion automatique

Gestion automatique des chiers

Dcharge le DBA de la gestion des chiers physiques e Sapplique aux tablespace, chiers de reprise, de contrle, o darchivage, ... Autoris par des param`tres du PFILE : spcient les e e e rpertoires e Des noms standards sont donns aux chiers e

50/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Les modes de gestion automatique

Gestion automatique du stockage


Niveau de dcharge supplmentaire pour le DBA e e Optimise automatiquement les E/S. Prot`ge les donnes : g`re la rplication des chiers, leur e e e e rpartition sur les disques e Principe :
Le DBA dnit des disques, ou groupes de disques : partags e e par plusieurs bases Ces groupes peuvent tre crs ou modis apr`s la cration e ee e e e de la base Les chiers ne sont pas visibles ` partir du SE ! a Trois niveaux de redondance : normal, lev ou externe e e Possibilit de dnir des patrons de chiers dans les groupes e e Notion de failure groups : des disques qui courent un mme e rique, et ne peuvent donc se servir mutuellement de miroirs Gr par une instance particuli`re dOracle ! ee e
51/96

Administration des bases de donnes sous Oracle 10g e gestion des chiers, tablespaces et espace libre Les modes de gestion automatique

Instance de stockage automatique


Instance particuli`ren ddie au stockage automatique e e e Utilise par une ou plusieurs instances de base de donnes e e Ne peut pas monter elle-mme de base de donne e e G`re simplement la rpartition des chiers, pas leur e e exploitation Deux nouveaux processus de fond : RBAL et ARB, pour rpartir lactivit sur les disques e e Implique un nouveau processus sur les instance de BD : ASMB pour communiquer avec lASM Doit possder les mmes SYSDBA que les instances de BD e e lies e Param`tres dinitialisation (PFILE) spciques e e
52/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Grandes lignes

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
53/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Grandes lignes

Introduction
Il faut toujours avoir ` lesprit une politique de scurit a e e Assure par le DBA, ou un administrateur ddi e e e Principales tches : a
Grer les utilisateurs e Aecter les ressources : tablespaces, quotas,... Grer les privil`ges et les rles e e o Surveiller lusage de la base de donnes (Audit) e

Deux niveaux de scurit e e


Les comptes utilisateurs : login et mot de passe Rles, privil`ges et prols : contrle lacc`s aux objets et aux o e o e commandes syst`mes e

Sans oublier la scurit du SE pour les chiers, et la scurit e e e e physique des serveurs...
53/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1

Ninstaller que ce qui est ncessaire e

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil`ges aux utilisateurs e

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil`ges aux utilisateurs e Sassurer que remote os authentication=FALSE

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil`ges aux utilisateurs e Sassurer que remote os authentication=FALSE Sassurer de la scurit du SE e e

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7 8

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil`ges aux utilisateurs e Sassurer que remote os authentication=FALSE Sassurer de la scurit du SE e e Sassurer de la scurit du rseau (Ex. : SSL) e e e

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7 8 9

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil`ges aux utilisateurs e Sassurer que remote os authentication=FALSE Sassurer de la scurit du SE e e Sassurer de la scurit du rseau (Ex. : SSL) e e e Appliquer les correctifs de scurit dOracle e e
http://otn.oracle.com/deploy/security/alerts.htm

54/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7 8 9

Ninstaller que ce qui est ncessaire e Scuriser les compte par dfaut apr`s installation e e e Utiliser des mots de passe scuriss, renouveler rguli`rement e e e e Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil`ges aux utilisateurs e Sassurer que remote os authentication=FALSE Sassurer de la scurit du SE e e Sassurer de la scurit du rseau (Ex. : SSL) e e e Appliquer les correctifs de scurit dOracle e e
http://otn.oracle.com/deploy/security/alerts.htm

10
54/96

Signaler les failles ` secalert us@oracle.com a

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Gestion des utilisateurs

Types dutilisateurs

Un compte utilisateur = Un schma de BD e


Cest un ensemble de dobjets : tables, vues, index,... Lutilisateur cre, modie,... ses objets e

On peut crer des utilisateurs simples e


Droits de requtes sur un schma prcis e e e Pas de droits de crations e

55/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Gestion des utilisateurs

Etapes de cration e

Choisir un nom et un mode didentication


identication Oracle ou SE (EXTERNALLY)

Identier les tablespaces : trois en gnral e e


Donnes = tablespace par dfaut de lutilisateur e e Tris = tablespace temporaire Index = tablespace ddi aux index en gnral e e e e

Dcider les quotas pour chaque tablespace e Crer lutilisateur e Accorder les rles et privil`ges o e

56/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Gestion des utilisateurs

Modication et suppression

Modications avec lordre ALTER USER


Changement de mot de passe Suppression ou modication de quotas Changement de tablespace Gestion des droits

Supression avec DROP USER


Option CASCADE : supprime aussi les objets Impossible de supprimer un utilisateur connect e

Vues DBA USERS, DBA TS QUOTAS

57/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Gestion des droits

Les prols

Ensemble nomm de limites de ressources e


Nombre de connexions simultanes,... e

Ils sont aectables aux utilisateurs Oprations possibles : e


Cration, modication, supression e Activation/dsactivation e

Vues DBA USERS, DBA PROFILES

58/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Gestion des droits

Les privil`ges e

Granularit ne des droits e


Syst`mes : oprations sur la base ou un type dobjet (plus de e e 100) Objets : opration sur un objet prcis e e

Accords avec lordre GRANT, retirs avec lordre REVOKE e e vues DBA SYS PRIVS, SESSION PRIVS, DBA TAB PRIVS, DBA COL PRIVS

59/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Gestion des droits

Les rles o
Ensembles de privil`ges, pour simplier leur gestion e crs et supprims comme des utilisateurs ee e Accords avec lordre GRANT, retirs avec lordre REVOKE e e Peuvent tre accords/retirs dune session e e e Quelques conseils
Un rle pour chaque tche dapplication o a Un rle pour chaque type dutilisateur o Attribuer aux rles utilisateurs des rles dapplication : Pas de o o privil`ges individuel e

vues DBA ROLES, DBA ROLE PRIVS, ROLE ROLE PRIVS,... Attention Pour manipuler des objets via une procdure, il faut possder e e explicitement les privil`ges requis. Il ne doivent pas tre accords e e e par un rle. o

60/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les audits

Laudit sous Oracle

Pour surveiller des activits cibles sur la base e e Possible sur toute action sur la base
Tentatives de login Acc`s aux objets e Actions bases de donnes e

Enregistr dans la table SYS.AUD$, ou dans le SE e Activation dans les param`tre dinstance (AUDIT TRAIL) e

61/96

Administration des bases de donnes sous Oracle 10g e Assurer la scurit des donnes e e e Les audits

Exemples dAudit

Audit de logins
AUDIT SESSION WHENEVER NOT SUCCESSFULL

Audit dactions
AUDIT update table BY SCOTT

Commandes DML sur un objet


AUDIT insert ON scott.emp

rsultats dans DBA AUDIT SESSION, e DBA AUDIT OBJECT,

62/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e Grandes lignes

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
63/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e Grandes lignes

Introduction
La prnnit des donnes est assure par : ee e e e Les chiers de reprise
En cas de panne dinstance

Les sauvegardes de chiers


A froid : instance teinte, ` partir du SE e a Pour les pannes de disque, pertes de chiers

Larchivage
Ralis ` chaud par linstance e ea Archive tous les chiers de reprise Seule solution pour scurit totale e e Augmente la charge du DBA

63/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e Les sauvegardes

Sauvegarde ` froid a

La plus simple ` mettre en oeuvre a 1 : identier les chiers de donnes/reprise/contrle e o 2 : Arrter la base de donnes e e 3 : Sauvegarder tous les chiers avec le SE 4 : Redmarrer la base e En cas de panne : il sut de reprendre ces chiers
Intressant dans des bases avec peu de modications e

64/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e Les sauvegardes

Sauvegarde ` chaud a

Fichiers de donnes e
Sauvegarde avec le SE sur un chier OFFLINE Si le chier est ONLINE : on le prot`ge avec les commandes e BEGIN /END BACKUP

Fichiers de contrle o
Commande ALTER DATABASE

ATTENTION : a faire en mode archivage automatique


Sinon pas de restauration possible

65/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e Archivage automatique

Dpend de la politique locale vis-`-vis des donnes e a e


Peut-on envisager une perte de donnes e Si oui, quelle est la dure tolrable ? e e

Assure une cohrence parfaite des donnes en cas de panne e e Eectu ` chaque basculement de groupe dans les logs ea Possibilit de le lancer ponctuellement ` la main e a
ALTER SYSTEM ARCHIVE LOG (dconseill) e e

66/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e La restauration

Sans le mode archivage


Perte des donnes depuis la derni`re sauvegarde e e Restauration compl`te e

En mode archivage
Restauration compl`te ou non e Perte de chiers de donnes ou du chiers de contrle e o

67/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e La restauration

Restauration compl`te sans archivage e

1 : Fermer la base 2 : Restaurer tous les chiers de la sauvegarde la plus rcente e 3 : Ouvrir la base Si les emplacements on chang, modier les dclarations e e avant de monter la base

68/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e La restauration

Restauration avec archivage

Commande RECOVER Possibilit de restaurer : e


Toute la base des tablespaces le chier de contrle o des chiers de donnes e

A partir :
des chiers de reprise archivs et e de la sauvegarde la plus rcente e

69/96

Administration des bases de donnes sous Oracle 10g e Assurer la prennit des donnes e e e La restauration

Exemple : restauration partielle

Ouvrir la base Dsactiver les tablespace (oine) e Rparer la panne disque e Restaurer seulement les chiers endommags e lancer la restauration
RECOVER TABLESPACE/DATAFILE

Activer le tablespace

70/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Introduction

1 Introduction 2 Oracle : les grands concepts 3 Tches lmentaires dadministration a ee 4 gestion des chiers, tablespaces et espace libre 5 Assurer la scurit des donnes e e e 6 Assurer la prennit des donnes e e e 7 Optimiser les performances
71/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Introduction

Le rglage des bases de donnes ? e e


Rglage de la conguration initiale en fonction de la charge e Rglage de linstance et du SE e
Identier les points diciles et les surmonter Rcolter des statistiques sur le fonctionnement e
des applications de la base et du SE des E/S sur les disques du rseau e

Dcouvrir les causes ` partir des symptmes et corriger e a o


En gnral : Applications, BD ou matriel e e e

Rglage des requtes e e


Souvent crites ` lintrieur doutils clients, non optimises e a e e Rglage dirent pour OLTP/OLAP e e Visualiser et contrler les choix de loptimiseur o
71/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Introduction

Les outils Oracle pour le rglage e


Gestionnaire automatique de charge
collecte, traite et maintient des stats sur les performances

Moniteur de diagnostique automatique sur la BD


Analyse la charge pour suggrer des probl`mes sur la base e e

Assistant de rglage SQL e


Conseils pour loptimisation des expressions

Assistant dacc`s SQL e


Conseils sur les index et les vues

Traceur dapplication
Pour identier des surcharges par des applications ou utilisateurs prcis e

Sans oublier les alertes serveur (cf la surveillance de la base)


72/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Planier les performances

Concevoir et dvelopper pour la performance e


Eviter absolument les conits et limites de ressource Ne pas penser que linvestissement en matriel va assurer les e performances Penser en terme de passage ` lchelle a e
Comportement linaire dans la charge de travail e Spcicits internet e e
disponibilit 24/24 e nombre dacc`s imprvisible e e souplesse des requtes e Volatilit et exigence des utilisateurs (7s. dattente au e maximum) Concevoir/dvelopper vite et bien ! e

Causes de mauvaises performances


Mauvaise conception, ou mauvaise implmentation e Mauvais dimensionnement matriel e Limitations logicielles : application, DBMS ou SE
73/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Planier les performances

Concevoir et dvelopper pour la performance (cont.) e


Savoir rpondre aux questions suivantes e
Combien dutilisateurs ` supporter ? tr`s peu, peu ` beaucoup, a e a une innit e Quelle mode dinteraction ? Navigateur web ou application cliente personnalise e O` sont les utilisateurs ? (Temps de transfert rseaux) u e Quelle charge dacc`s, combien de donnes en lecture seule ? e e Quel est le temps de rponse requis par les utilisateurs ? e Quelle disponibilit requise par les utilisateurs ? e Mises ` jour en temps rel ? a e Quel taille ` prvoir pour les donnes ? a e e Quelles sont les contraintes budgtaires ? e

74/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Planier les performances

Principes pour la conception


Ne pas faire compliqu quand on peut faire simple e
Eviter les schmas ou requtes incomprhensibles (utiliser des e e e vues si besoin) Eviter les superpositions de couches logicielles

Soigner la modlisation des donnes pour les parties e e principales Implmenter un schma en 3NF au moins pour assurer la e e exibilit e
Optimiser avec vues matrialises, clusters, colonnes calcules e e e Bien organiser les index

Organiser des campagnes de tests crdibles facilitera le e dploiement e


75/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances La rsolution de probl`mes e e

Etapes pour la rsolution des probl`mes e e


1

Vrications prliminaires (avant les probl`mes) e e e


Rcolter les impressions de base, les projets des utilisateurs e Rcolter le maximum de statistiques (SE, DB, applications) e lorsque les performances sont bonnes et lorsquelles sont mauvaises 3 Vrier rguli`rement les SE des utilisateurs (matriel, e e e e ressources...)
1 2

Comparer les symptmes avec les 10 erreurs frquemment o e commises Raliser une modlisation conceptuelle du syst`me lors de e e e lapparition des symptme o Lister toutes les solutions et les appliquer une ` une jusqu` a a lobtention du rsultat, ou lidentiaction des contraintes e extrieures conduisant ` lchec. e a e

76/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances La rsolution de probl`mes e e

Traitement des urgences...


Bien souvent, un probl`me doit-tre trait dans lurgence e e e avant une rsolution rigoureuse e Les tapes sont alors raccourcies : e
1

Faire linventaire des probl`mes, des symptmes, des e o changements rcents e

Vrier ltat du matriel : CPU, disques, mmoire, rseau de e e e e e chaque tier Dterminer si le probl`me est au niveau du CPU ou de e e lattente dv`nement. Utiliser les vues dynamiques sur les e e performances du catalogue. Appliquer des mesures durgence pour stabiliser le syst`mes : e suspendre une application, rduire la charge, tuer un e processus... vrier la stabilit du syst`me, rcolter des statistiques, et e e e e suivre la procdure compl`te de rsolution e e e
77/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances La rsolution de probl`mes e e

Les 10 erreurs frquentes selon Oracle e


1 2

Multiplication des connexions ` linstance (une par a interaction) Mauvaise utilisation des curseurs et variables lies e
Les curseurs vitent de recalculer une requte pour usages e e multiples Les variables lies permettent didentier des requtes e e similaires Attention au SQL gnr dynamiquement par les applications e ee

3 4 5 6 7 8 9
78/96

Requtes SQL inapropri aux exigences e e Utilisation de param`tres dinstance non standards e Mauvaise rpartition des E/S sur les disques e Blocages dans les chiers de reprise Mauvaise gestion des blocks et des segments dannulation Parcours entier de grandes tables Trop de SQL rcursif de la part de SYS (ex. allocation des e extents)

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances de linstance

Choix dans la conguration de linstance


Considrations initiales e
Inuence de certains param`tres du PFILE e
Compatible, db block size, SGA TARGET, PROCESSES, SESSIONS, UNDO MANAGEMENT

Gestion automatique des annulations conseille. Voir e V$UNDOSTATS et V$ROLLSTATS Dimension des chier de reprise : un basculement toutes les 20 minutes... Crer susamment de tablespaces e
Gestion locale recommande e Ne pas oublier les tablespaces temporaires

Gestion des tables


Compresser les tables en lecture seule Rcuprer lespace libre dans les segments e e Crer les index apr`s le remplissage des tables e e Laisser Oracle grer la mmoire pour les tris dans la PGA e e
79/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances de linstance

Choix dans la conguration de linstance (cont.)

Performances en mode processus serveurs partags e


Rappel : un groupe de serveurs pour tous les clients Surveiller la charge des dispacher avec V$DISPACHER et V$DISPACHER RATE
Le taux dutilisation courrant doit tre loin du taux maximal e

Identier les blocages des processus serveurs


Avec V$QUEUE, pour le temps moyen dattente des requtes e ou le nombre de serveurs qui tournent actuellement Ajouter si ncessaire des serveurs avec les param`tres e e dinstance Attention, vrier si les blocages ne sont pas en mmoire SGA e e

80/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances de linstance

Statistiques et diagnostiques automatiques


Rcolter des statistiques est crucial pour rsoudre ou devancer e e les probl`mes e
Concernant la base de donnes (donns par Oracle) e e
Les attentes de processus Le temps cumul de travail de la base (DBTIME) ou de e certaines actions Sur le syst`me et les sessions... e

Concernant le SE (` rcuprer avec des outils externes) a e e


Sur lactivit des CPU e Sur le swapping Les acc`s disques e Le rseau e

Des rapports automatiques de statistiques peuvent tre e gnrs en html par ORACLE e ee Des diagnostiques et conseils automatiques sont gnrs ` e ee a partir des stats
Son but est de minimiser DBTIME...
81/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances de linstance

Gestion de la mmoire e
En gnral, il est recommand de laisser Oracle grer la SGA e e e e
param`tre SGA TARGET dirent de 0 e e ne g`re pas, notamment, le cache de reprise (param`tre e e LOG BUFFER)

Pour une gestion plus ne, on peut rcolter des statistiques e sur chaque partie de la SGA et grer sa taille manuellement. e Surveiller que le cache de reprise nentra pas de ne ralentissement
Stocker les chiers de logs sur des disques rapides Dans les scripts, ne pas valider ` chaque opration a e Lors de chargement de grands volumes de donnes, utiliser e NOLOGGING

Utiliser la gestion automatique de la PGA


Surveiller et rednir si ncessaire e e
82/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances de linstance

Gestion des entres/sorties e


Rechercher la simplicit, tout en assurant les besoins requis. e On nisole des chiers que pour des raisons de performances ou de prnnit des donnes, ou sil sagit dune contrainte de ee e e gestion
Sparer les chiers qui requi`rent beaucoup dE/S e e Une table et son index nont pas de raison dtre spars e e e Essayer tout dabord de rduire les E/S en optimisant les e requtes... e Si le probl`me vient des chiers de reprise, les isoler e Sparer les chiers de reprise et les archives e

Penser au mode de gestion automatique des chiers Bien choisir la taille de blocks
8 kilo en gnral e e ventuellement plus petit pour un syst`me fortement e e transactionnel Plus grand en entreposage de donnes e
83/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Introduction : Rsum des tches et outils e e a


Lun des aspects thorique et pratique les plus importantes en e BD Trois tches principales: a
identier les charges SQL cruciales pour les performances Vrier leur plan dexcution choisi par loptimiseur e e Implmenter des amliorations pour amliorer les performances e e e

Trois directions pour le tuning


Rduire la charge : plans dexcution et index e e Rpartir la charge dans le temps e Parallliser la charge : typiquement en OLAP e

Outils pour le rglage automatique de requtes e e


Moniteur de diagnostique automatique Moniteur de rglage SQL e Moniteur dacc`s SQL (index, vues) e
84/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Introduction : Dvelopper des requtes ecaces e e


Tenir ` jour les statistiques de loptimiseur a Surveiller les plans dexcution e Ecrire ecacement les requtes e
Utiliser au maximum des AND et = dans les prdicats e Ne pas utiliser de fonctions dans les clauses WHERE, en particulier sur des colonnes indexes e Dcomposer le plus possible les tches faites par les requtes e a e

Choisir le bon connecteur


Prfrer IN lorsque la sous-requte est la plus slective ee e e Prfrer EXISTS dans le cas contraire ee

Si ncessaire, ma e triser les choses en utilisant les HINT Structurer soigneusement les index, supprimer ceux qui sont inutiles Limiter les passes sur les donnes (utiliser le case par exemple) e
85/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Les capacits de rglage automatique de requtes e e e


Processus enti`rement automatique de rglage des ordres SQL e e
Mode normal : optimiseur classique choisi un bon plan Mode tuning : produit des actions possibles pour amliorer e

Processus coteux : a utiliser uniquement pour les requtes u e problmatiques e Base son analyse sur quatre points :
les statistiques les proles SQL = informations avances sur une requte, dans e e le dictionnaire les chemins dacc`s : index et vues e la syntaxe SQL (ex. : UNION ALL plut que UNION) o

Peut-tre utilis avec SQLAdvisor (graphique ou package e e PLSQL DBMS SQLTUNE) Possibilit de rgler des ensembles de requtes (SQL Tuning e e e Sets)
86/96

Un ensemble de requtes e

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Optimiseur de requtes : ses tches e a


Rappel : SQL est un langage dclaratif e Optimisation de requte = choix dun plan dexcution e e
Ordre dvaluation des expressions e transformation des expressions (ex. requtes imbriques en e e jointures) 3 choix du but, le param`tre ` optimiser e a 4 Choix des chemains dacc`s e 5 ordre de ralisation des jointures e
1 2

Les moyens de ma trise de lutilisateur :


Dterminer le but e Rcolter des stats e Forcer des choix de loptimiseur avec HINT

87/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Optimiseur de requte : quel objectif ? e

Deux possibilits sous Oracle e


Minimiser le temps de rponse global (ALL ROWS, par dfaut) e e Minimiser le temps des n premi`res rponses (FIRST ROW) e e

n peut tre gal ` 1, 100 ou 1000 e e a FIRST ROWS est ` utiliser en cas dinteraction directe avec a lutilisateur Cest un param`tre de session e On peut forcer loptimiseur avec un HINT On peut se baser sur le temps CPU (par dfaut) ou les E/S e

88/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Optimiseur de requtes : param`tres e e

Deux possibilits sous Oracle e


Minimiser le temps de rponse global (ALL ROWS, par dfaut) e e Minimiser le temps des n premi`res rponses (FIRST ROW) e e

n peut tre gal ` 1, 100 ou 1000 e e a FIRST ROWS est ` utiliser en cas dinteraction directe avec a lutilisateur Cest un param`tre de session e On peut forcer loptimiseur avec un HINT On peut se baser sur le temps CPU (par dfaut) ou les E/S e

89/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Les chemins dacc`s du plan dexcution e e

FULL TABLE SCAN : parcours squentiel complet dune table e ROWID SCAN : Acc`s direct ` un ensemble de tuples (apr`s e a e un INDEX SCAN) INDEX SCAN : Acc`s ` un index e a
1

Unique scan, range scan, full scan, index joins, bitmap joins

CLUSTER ACCESS : parcours dun cluster SAMPLE TABLE SCAN : acc`s ` un extrait de la base, e a spci dans la requte e e e On peut toujours les forcer avec un HINT

90/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Les dirents types de jointure e


Jointure imbrique : double boucle e
Lorsque peu de lignes doivent tre jointes e La seconde table est accde rapidement ` partir de lattribut e e a de jointure O(NxM)

jointure par hachage : la table la plus petite est hache en e mmoire e


Lorsque la table hache tient en mmoire e e Un seul parcours de chaque table

Jointure par tri fusion : tri puis fusion de chaque oprande e


Lorsque les sources sont dj` tries ea e La condition de jointure est une ingalit e e

Jointure cartsienne : produit cartsien, pas de condition de e e jointure Toutes ces variantes existent en jointure externe.
91/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Gestion des statistiques


Ensemble dinformation quantitatives sur les donnes, utilises e e par loptimiseur
Sur les tables : Nombre de tuples et de blocks, taille des tuples Sur les colonnes : nb valeurs distinctes et de valeurs NULL, histogramme Sur les index : nb blocks feuilles et niveaux, facteur de regroupement Sur le syst`me : performances E/S et CPU e

Stockes dans le dictionnaire e Rcoltes automatiquement par un processus de fond e e


Pendant une fentre temporelle dnie (par dfaut : 22h-18h e e e + week-end) Cette fentre peut-tre paramtre e e e e

On peut lancer manuellement apr`s dimportantes e modications Les oprations suivantes peuvent tre ralises sur les stats : e e e e
92/96

restaurer des versions anciennes

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Index : quels colonnes ?


Quelles colonnes faut-il indexer ?
Attributs utiliss frquemment dans les clause WHERE e e (jointures ou slections) e Lecacit augmente avec la slectivit de lattribut e e e Automatique pour les cls primaires, unique e Eviter dindexer des colonnes frquemment modies e e

Inutile si la cl dindexation est passe en param`tre dune e e e fonction


Utiliser des index de fonctions

On peut faire des index composs de plusieurs colonnes e


Si utilises ensemble avec une clause AND e Placer en premier les attributs les plus frquemment utiliss e e Sinon, placer en premier celui sur lequel est ordonne la table e
93/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Les types dindex


Par dfaut : Oracle utilise des arbres quilibrs (B-arbres) e e e Clusters : regroupement de tables dans des blocs communs
Autour dun ensemble de colonnes communes La jointure sur ces colonnes est immdiate e A dcider ` la cration des tables e a e

Index Bitmap
Pour des valeurs ` faible slectivit sur des grandes tables a e e Bien adapt ` des grandes conjonctions de prdicats ea e

Tables organises sur lindex : la table est stocke avec lindex e e On peut indexer les rsultats dune fonction sur une colonne e (UPPER, LOWER, ...) On peut partitionner un index aussi bien quune table
94/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

visualiser les plans dexcution e

EXPLAIN PLAN
Permet de visualiser le plan choisi par loptimiseur On peut dtecter rapidement les points coteux du plan choisi e u La requte nest pas excute ! e e e

V$SQL PLAN
Pour voir tous les plans dexcution des requtes rcemment e e e excutes e e On a le plan rel, avec les cots rels, pas des estimations e u e

Le plan est stock dans la table PLAN TABLE e


Rcuprer les requte dinterrogation de la doc pour une sortie e e e formate e

95/96

Administration des bases de donnes sous Oracle 10g e Optimiser les performances Optimiser les performances SQL

Visualiser la charge de travail

1 2

Fixer les param`tres dinstance pour la collecte de trace e Activer la collecte de la trace
Produis un chier avec les statistiques sur toutes les requtes e SQL

lancer lutilitaire TKPROF


Pour formater le chier trace et rendre une sortie lisible

4 5

Interprter le chier gnr (voir la doc de TKPROF) e e ee Eventuellement, on peut stocker ce rsultat dans la base e
Un script pour cela est fourni par TKPROF

96/96

You might also like