Vous êtes sur la page 1sur 114

Administration des bases de donn ees sous Oracle 10g

Administration des bases de donn ees sous Oracle 10g


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

November 22, 2007

1/96

Administration des bases de donn ees sous Oracle 10g Sur le cours

Pr erequis et objectifs

Pr erequis
Mod` ele relationnel (structure, contraintes, SQL)

Objectifs
Conna tre les t aches dun DBA Conna tre les concepts et points cl es de larchitecture Oracle 10g Savoir eectuer les principales t aches sous Oracle 10g

2/96

Administration des bases de donn ees sous Oracle 10g Sur le cours

Pour en savoir plus...

Documentation Oracle : www.oracle.com


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

3/96

Administration des bases de donn ees sous Oracle 10g Introduction Les m etiers autour des bases de donn ees

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
4/96

Administration des bases de donn ees sous Oracle 10g Introduction Les m etiers autour des bases de donn ees

Les m etiers autour des bases de donn ees


Administrateur Responsable de la s ecurit e Administrateur r eseaux D eveloppeurs dapplication Administrateurs dapplication Utilisateurs : modier les donn ees, cr eer des rapports Note Dans des environnements de petite taille, ladministrateur peut jouer quasiment tous les r oles

4/96

Administration des bases de donn ees sous Oracle 10g Introduction R oles du DBA

R oles du DBA

Installer les logiciels Oracle


un serveur, des applications clientes, En fonction de la conguration syst` eme disponible Si fonctionnement en r eseau : composents r eseaux dOracle

Planier et cr eer des bases de donn ees G erer lespace et implanter les sch emas des donn ees Assurer la s ecurit e, lint egrit e et la p erennit e des donn ees Eectuer des r eglages pour optimiser les performances

5/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Architecture

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
6/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Architecture

Vue densemble
Deux architectures possibles:
client/serveur : des applications clientes envoient les requ etes SQL et PL/SQL ` a un serveur. Multitier : des serveurs dapplication all` egent la charge du serveur en r ealisant certains acc` es pour les clients.

Un serveur de bases de donn ees est compos e:


dune instance = plusieurs processus et une zone de m emoire dune base de donn ees de plusieurs sch emas, assimil es ` a des utilisateurs

Dans le cas de clusters de machines, Oracle 10g peut associer plusieurs instance ` a une m eme base de donn ees.

6/96

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

La connexion client/serveur

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


Une connexion va etre cr e ee avec linstance Oracle, lutilisateur va ouvrir une session

Un processus serveur va analyser et ex ecuter les requ etes, retourner les donn ees
Mode d edi e : une processus serveur pour un processus client Mode partag e : les clients partagent un groupe de processus serveurs
Evite les processus serveurs inactifs

7/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Composants dune instance

La m emoire (1)

La SGA (Syst` eme Global Area)


Zone partag ee par tous les utilisateurs de la base de donn ees Allou ee au d emarrage de linstance en m emoire principale : doit- etre la plus grosse possible. Son but est d economiser les E/S. Elle contient :
le cache de donn ees (database buer cache) le cache de reprise (redo log buer) pour les changements r ecents le cache dex ecution partag e (shared pool) pour les requ etes SQL et PL/SQl. Contient le dictionnaire de donn ees en cache.

8/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Composants dune instance

La m emoire (2)

La PGA (Program Global Area)


Zone dex ecution des processus du serveur Allou ee au lancement de chaque processus

9/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Composants dune instance

Les processus de fond serveur


Ex ecutent des actions asynchrones d ecriture et de contr ole DBWn (Database Writer) - Ecrit le contenu du cache de donn ees dans les chiers de donn ees
Lorsque la place manque en SGA De fa con p eriodique, en mettant ` a jour le point de restauration dans les chiers de log on peut en cr eer plusieurs : DBW0, DBW1, ... , DBWj

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 d echarge des donn ees modi ees
10/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Composants dune instance

Les processus de fond serveur (cont.)


CKPT (Chekpoint)
Pour assurer la synchronisation et la coh erence des donn ees

SMON (System Monitor)


Eectue la restauration lors de reprise apr` es panne Nettoie les segments temporaires Fusionne certains extents libres contig ue

PMON (Process Monitor)


Pour g erer les pannes des processus clients

RECO (Recover)
Pour les reprises apr` es panne de transactions distribu ees

ARCn (Archiver)
Pour larchivage, lorsquil est activ e

...
11/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Composants dune base de donn ees

Structure physique

Des chiers sur le disque


un chier de contr ole qui sp ecie le nom et lemplacement des chiers, le nom de la base,... plusieurs chiers de donn ees pour stocker les donn ees au moins deux chiers de reprise apr` es panne qui contiennent les modications r ecentes des chiers darchivage (optionnel) pour archiver les chiers de contr ole un chier de param` etres (optionnel) qui stocke tous les param` etres de la base des chiers de trace pour r epertorier toutes les t aches et erreurs eectu ees

12/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Composants dune base de donn ees

Structure logique

Des concepts pour g erer nement la m emoire


le block de donn ees est lunit e logique la plus ne, 8ko par d efaut. lextent est un ensemble contig ue de blocks, allou es en une seule fois. le segment est un ensemble dextents d edi es ` a un m eme objet (table, index, ...) Tablespace : regroupe un ensemble dobjets (=segments) pour faciliter leur administration. Peut atteindre 8 exabytes !

Un tablespace = un ou plusieurs chiers de donn ees

13/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Les sch emas pour Oracle

Contenu dune sch ema

Correspond ` a un utilisateur : les deux portent le m eme nom 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 donn ees sous Oracle 10g Oracle : les grands concepts Les sch emas pour Oracle

Stockage des tables


Pour des tables de moins de 256 attributs
si possible : un tuple est enti` erement dans un block 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 n ee intra-bloc (si possible !)

Les tuples sont cha n es en utilisant le ROWID A la cr eation dune table, on peut :
sp ecier le tablespace sp ecier la taille du segment sp ecier la quantite despace libre laiss ee dans chaque bloc

15/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Identication du DBA sous Oracle

Le r ole DBA

Acc` es au catalogue, gestion des utilisateurs, de la m emoire... D` es la cr eation de la base, deux utilisateurs sont cr e es avec le r ole DBA
SYS/CHANGE ON INSTALL
Poss` ede toutes les tables syst` emes, dont le dictionnaire Ne jamais rien ecrire sur ce compte !

SYSTEM/MANAGER
Pour cr eer des tables dadministration uniquement

Il est fortement conseill e de sp ecier dautres mots de passe dans la phase de cr eation. Ne pas utiliser dans ladministration quotidienne

16/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Identication du DBA sous Oracle

Les privil` eges SYSDBA et SYSOPER


Permettent deectuer les op erations au-dessus de la base de donn ees
D emarrer et arr eter le serveur Cr eer ou supprimer des bases de donn ees Changer les modes darchivage de la base ...

Leur identication est g er ee soit :


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.


Cr eer un chier password avec loutil ORAPWD accorder le privil` ege ` a partir de lutilisateur SYS connect user/user as sysdba;
17/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Le dictionnaire de donn ees

Informations du dictionnaire

Ensemble de tables appartenant ` a lutilisateur SYS principales informations


La d enition de tous les objets et leur espace allou e Les valeurs par d efaut des attributs Les contraintes dint egrit e La liste des utilisateurs, leurs privil` eges Des informations daudit sur les acc` es et modications ...

18/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Le dictionnaire de donn ees

Structure du dictionnaire

Des tables de base, uniquement acc ed ees par Oracle et SYS Des vues mises ` a la disposition des utilisateurs (selon leurs 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` es Vues dadministration : DBA Views. Sur lensemble de la base, uniquement SYS. Vues dynamiques sur lactivit e de la base : V $Views.

19/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Synth` ese

Encha nement type (1)


Une instance Oracle est d emarr ee sur le serveur Une application cliente etablit une connexion et ouvre une session Le serveur d etecte la requ ete de connexion et cr ee un processus serveur d edi e Lutilisateur lance une requ ete SQL et un commit Le processus serveur recherche dans la shared pool si la requ ete existe
OUI : elle sera utilis ee pour r epondre NON : la nouvelle requ ete est ins er ee dans la shared pool, analys ee et execut ee

20/96

Administration des bases de donn ees sous Oracle 10g Oracle : les grands concepts Synth` ese

Encha nement type (2)

Le processus serveur r ecup` ere les donn ees


Dans le cache de donn ees dans les chiers de donn ees (et les charge dans le cache)

Le processus serveur modie eventuellement les donn ees dans le cache Puisquil y a validation, LGWR ecrit la transaction dans le chier de reprise
Les changements seront r epertori es dans les chiers de donn ees par DBWn Le r esultat, ou une conrmation, est envoy e au processus utilisateur

21/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
22/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Pr eliminaires

Deux possibilit es
Utiliser lassistant Oracle : graphique Cr eer manuellement ` a laide de scripts

En cas de mise ` a jour dOracle, une proc edure particuli` ere existe
Compatibilit e ascendante, on ne recr ee pas les bases de donn ees.

Pr erequis :
Oracle doit- etre install e Vous devez etre administrateur du SE et de linstance Oracle La m emoire principale et m emoire disque doit etre susante

22/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Planier la base
Phase de reexion avant cr eation, pour faire les bons choix. R e echir aux tables et indexes ` a venir, estimer leur taille Planier la distribution de ses chiers, lespace libre dans les blocks D ecider entre une gestion classique ou automatique des chiers Choisir lencodage des caract` eres (peut- etre surcharg e par les clients) D eterminer la taille des blocs de donn ees Choisir le mode de gestion de lannulation
Tablespace d edi e Segments dannulation

D eterminer la strat egie de sauvegarder et reprise apr` es panne


23/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Etapes de cr eation (1/2)


Sp ecier le nom de linstance SID Cr eer le chier de param` etres PFILE (partir de lexemple Oracle)
Nom de la base, emplacement des chiers de contr ole

Se connecter ` a linstance inactive


SQLPLUS /nolog puis CONNECT / AS SYSDBA

Cr eer un chier de param` etre serveur SPFILE (` a partir du chier manuel) Lancer linstance : STARTUP NOMOUNT (Aucune v erication de coh erence ` a ce niveau) Cr eer la base de donn ees : CREATE DATABASE...
24/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

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 donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Etapes de cr eation (2/2)

Cr eer de nouveaux tablespace, par exemple :


Un USERS pour les utilisateurs un INDX pour les index

Lancer les scripts de cr eation du dictionnaire (catalog.sql, catproc.sql) et eventuellement dautres scripts optionnels Cr eer une sauvegarde compl` ete de linstallation dans cet etat

25/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Alternative : chiers g er es par Oracle

Oracle peut prendre en charge les chiers Sp eci e dans les param` etres dinitialisation Simplie les commandes Ladministrateur ne g` ere que la partie logique : tablespace, extents...

26/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

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 donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Pr ecisions sur les param` etres de linstance (ple)


le nom de la base ne comporte que 8 caract` eres cr eer au moins deux chiers de contr oles
Sur des disques di erents si possible

Laisser Oracle choisir la taille des blocs On peut contr oler la SGA
En lui xant une taille maximale en xant la taille de di erents composants On peut changer plus tard, de fa con dynamique

On peut xer le nombre de processus autoris es


Nombres de processus utilisateurs + 10

On doit choisir un mode de gestion des annulations


Comment on g` ere les donn ees dannulation ? (Avant Commit) Automatique : g er ees dans un tablespace Manuel : g er ees dans les segments dannulation
27/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Remarques compl ementaires


Si la cr eation echoue, visualier le chier dalertes
Arr eter linstance Supprimer les chiers cr e es pendant la tentative

Pour supprimer une base :


Drop database La base doit etre mont ee et ferm ee Conserve les chiers darchivage et les copies

Pour modier des param` etres


Les commandes ALTER SYSTEM pour les param` etres 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 donn ees sous Oracle 10g T aches el ementaires dadministration Cr eer une base de donn ees

Conguration du r eseau

C ot e serveur
Un processus d ecoute utilisant un protocole r eseau : listenerSID Un serveur BD Oracle = instance + base Les congurations (=services d ecoute) sont enregistr ees dans listener.ora Editable ` a la main, ou via outils graphiques

C ot e client
Congurations (services dacc` es) enregistr ees dans tnsname.ora Permet au client de se connecter de fa con transparente

29/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration D emarrer et arr eter une base

D emarrer une base de donn ees


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

Commande STARTUP pour d emarrer linstance


Utilise le SPFILE ou le PFILE ` a pr eciser NOMOUNT : base ferm ee et non mont ee MOUNT : base ferm ee et mont ee FORCE : ouvre de force, en tuant une eventuelle instance d emarr ee

Commande ALTER DATABASE si linstance est d ej` a ouverte


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 donn ees sous Oracle 10g T aches el ementaires dadministration D emarrer et arr eter une base

Fermer une base de donn ees


Commande SHUTDOWN Garde la main jusqu` a larr et complet Plus personne ne peut se connecter Plusieurs modes darr et :
NORMAL : attend la d econnexion de tous les utilisateurs IMMEDIATE : annule toutes les transactions non valid ees et 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 valid ees

31/96

ABORT est ` a utiliser en dernier recours ABORT n ecessite une restauration de la base pour retrouver sa coh erence On peut suspendre une base de donn ees : ALTER SYSTEM SUSPEND/RESUME

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Gestion des processus

Mode d edi e et mode partag e

Le mode d edi e est par d efaut Le mode partag e est pr ef erable, sauf :
Lorsque lutilisateur envois des t aches en batch pour eectuer certaines t aches de restauration

Pour d emarrer le mode partag e


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

32/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Gestion des processus

Terminer des sessions

On peut tuer une session avec la commande ALTER SYSTEM KILL SESSION SI,SN
SI est lidentiant syst` eme SN est le num ero de s erie

r ecup erer ces identiants dans la vu V$SESSION Les transactions en cours sont annul ees

33/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Gestion des processus

Surveiller lactivit e de la base (1)

Doit etre constamment fait en t ache de fond du DBA


Pour rep erer des erreurs eventuelles Pour devenir familier du comportement normal...

Alertes du serveur
` a partir de seuils : trop de validations, trop dacc` es disque, temps de r eponse trop long... ` a partir d ev` enements : une vue est trop ancienne, ... Param etrables via OEM ou package PL/SQL : DBMS SERVER ALERTS Accessibles dans des vues du dictionnaire

34/96

Administration des bases de donn ees sous Oracle 10g T aches el ementaires dadministration Gestion des processus

Surveiller lactivit e de la base (2)


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

Il est possible de ma triser :


lemplacement des chiers trace leur taille le tra cage des processus serveurs, pour collecter des statistiques

35/96

Administration des bases de donn ees sous Oracle 10g gestion des chiers, tablespaces et espace libre Fichiers de contr ole

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
36/96

Administration des bases de donn ees sous Oracle 10g gestion des chiers, tablespaces et espace libre Fichiers de contr ole

Quest ce que cest ?


Fichier binaire qui d ecrit la structure physique de la base
Le nom de la base Les chiers de donn ees et de reprise La date de cr eation de la base La position courrante dans les logs Des informations sur les point de synchronisation (checkpoint)

N ecessaire pour monter la base Fortement recommand e en cas de restauration G en er e lors de la cr eation de la base
Avec au moins une r eplication On peut faire dautres r eplications plus tard

36/96

Administration des bases de donn ees sous Oracle 10g gestion des chiers, tablespaces et espace libre Fichiers de contr ole

Grandes lignes

On peut en sp ecier lors de la cr eation (nom par d efaut sinon) Ils doivent etre r epliqu es (multiplexage) sur des disques s epar es
Lorsque linstance est arr et ee, cr eer la copie du chier D eclarer le nouveau chier dans le chier de param` etres

M eme proc edure pour le renommage Ils doivent etre sauvegard es. Deux options :
ALTER DATABASE BACKUP CONTROLEFILE TO lename ALTER DATABASE BACKUP CONTROLFILE TO TRACE
g en` ere un script CREATE CONTROL FILE... dans le chier trace

37/96

Administration des bases de donn ees sous Oracle 10g gestion des chiers, tablespaces et espace libre Fichiers de contr ole

Cr eation de nouveaux chiers de contr ole


Toutes les r eplications sont endommag ees, pas de sauvegarde On modie un param` etre de cr eation qui aecte la taille
MAXLOGFILES, MAXLOGMEMBERS,MAXLOGHISTORY, MAXDATAFILES, MAXINSTANCES le nom de la base

Proc edure :
r epertorier tous les chiers donn ees et reprise arr eter linstance, sauvegarder les chiers, red emarrer en NOMOUNT CREATE CONTROL FILE (cf doc SQL), puis sauvegarde du nouveau chier Sp ecier les nouveaux chiers de contr ole dans le chier de param` etres Restaurer eventuellement la base, si des chiers ont et e perdus Ouvrir la base

Visualiser le chier dalertes pour v erier les erreurs


38/96

Administration des bases de donn ees sous Oracle 10g gestion des chiers, tablespaces et espace libre Fichiers de contr ole

Suprression et visualisation

Pour supprimer, il sut de supprimer dans le chier de param` etre


Attention : toujours garder 2 chiers de contr ole !

Informations sur les chiers de contr ole :


V$DATABASE : ce que contient le chier de contr ole V$CONTROLFILE : nom des chiers de contr ole V$PARAMETER : voir les param` etres dinitialization

39/96

Administration des bases de donn ees sous Oracle 10g 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` es panne Organisation physique et logique :
Un groupe est un ensemble de chiers multiplex es (membres) Il faut au moins deux groupes avec un chier chacun Un chier doit etre vu comme un ensemble denregistrements Un enregistrement est un ensemble de vecteurs de changement

Un vecteur est cr e e pour chaque bloc de donn ees modi e Stocke aussi les informations dannulation

40/96

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

Fonctionnement
Acced es uniquement par le processus LGWR (Log Writer) De fa con circulaire : groupe apr` es groupe D eclenchement : validation, ou cache de reprise rempli
Assigne un identiant unique ` a lenregistrement cr e e Si pas de validation : possibilit e dannulation

En n de boucle, les premiers chiers sont ecras es (attente synchronisation) Possibilit e darchiver les chiers de reprise pleins Si probl` eme d ecriture sur tout un groupe : linstance sarr ete.
Erreur report ee dans le chier dalerte Il faut corriger et red emarrer
41/96

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

G en eralit es et conseils
Si possible, un disque par chier de reprise
Archivage sur un autre disque Fichiers de donn ees sur un autre disque

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

On peut cr eer ou supprimer des groupes ou des membres, renommer des membres
sans d epasser MAXLOGFILES et MAXLOGMEMBERS privil` ege ALTER DATABASE, en g en eral base d emmont ee.

Vues V$LOG, V$LOGFILE

42/96

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

Quest-ce que cest ?

Fichiers physiques o` u sont stock ees toutes les structures logiques Un chier de donn ees est associ e` a un tablespace
Poss` ede un num ero unique dans la base (absolu) poss` ede un num ero unique dans le tablespace (relatif )

Au moins deux : tablespaces SYSTEM et SYSAUX Le nombre max est x e par le param` etre DB FILES Certaines limites sont impos ees par le SE Les chiers temporaires sont des chiers de donn ees un peu sp eciaux

43/96

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

Manipulations des chiers de donn ees


Cr eation les tablespace ou avec la base
CREATE/ALTER TABLESPACE CREATE/ALTER DATABASE

On peut modier leur taille ` a la vol ee


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

Peuvent etre mis ONLINE ou OFFLINE peuvent etre renomm es ou d eplac es


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 donn ees sous Oracle 10g gestion des chiers, tablespaces et espace libre Tablespaces

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

Il est n ecessaire dutiliser plusieurs tablespace


S eparer les donn ees des utilisteurs du dictionnaire S eparer les donn ees dapplications di erentes, pour all eger les acc` es et r eduire les risques de panne des applis Tablespaces optimis es pour certaines t aches : lecture seule ou mises ` a jour fr equentes, espace temporaire Sauvegarde individuelle des tablespace

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

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

Di erents types de tablespaces


Tablespaces ` a gestion locale des extents (par d efaut !)
G` ere la m emoire locallement avec des bitmaps Am eliore les performances All` ege les acc` es au dictionnaire Permet le choix automatique de lunit e dextention Autorise la gestion automatique de lespace dans les segments peut sappliquer ` a tous les tablespaces

Tablespaces g erer par le dictionnaires


Gestion plus pr ecise N ecessite une fusion p eriodique des extents libres

Bigle tablespaces (jusqu` a 128 tera)


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

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

Di erents types de tablespaces (cont.)

Tablespaces temporaires : pour la gestion des tris


Une instance + un tablespace un segment de tri Aect es ` a chaque utilisateurs Forc ement ` a gestion locale depuis 10g ne g en` ere pas d ecriture dans les chiers de reprise Possibili e de cr eer des groupes, pour des tris parall` eles

Tablespace dannulation, pour les op erations non valid ees

47/96

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

Le tablespace dannulation

Stocke les op erations non valid ees. Utilis ees dans les annulations, et les restaurations Jusqu` a la version 8 : Rollback Segments Maintenant : tablespace d edi e` a lannulation et g er e automatiquement
Fortement recommand e, mais pas par d efaut (param` etres du PFILE)

Les op erations valid ees sont ecras ees, mais possibilit e de les conserver

48/96

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

Maintenance des tablespaces

Les op erations suivantes sont r ealisables sur un tablespace : demander la non-g en eration de log: NO LOGGING
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 donn ees ou plateforme

49/96

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

Gestion automatique des chiers

D echarge le DBA de la gestion des chiers physiques Sapplique aux tablespace, chiers de reprise, de contr ole, darchivage, ... Autoris e par des param` etres du PFILE : sp ecient les r epertoires Des noms standards sont donn es aux chiers

50/96

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

Gestion automatique du stockage


Niveau de d echarge suppl ementaire pour le DBA Optimise automatiquement les E/S. Prot` ege les donn ees : g` ere la r eplication des chiers, leur r epartition sur les disques Principe :
Le DBA d enit des disques, ou groupes de disques : partag es par plusieurs bases Ces groupes peuvent etre cr e es ou modi es apr` es la cr eation de la base Les chiers ne sont pas visibles ` a partir du SE ! Trois niveaux de redondance : normal, elev e ou externe Possibilit e de d enir des patrons de chiers dans les groupes Notion de failure groups : des disques qui courent un m eme rique, et ne peuvent donc se servir mutuellement de miroirs G er e par une instance particuli` ere dOracle !
51/96

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

Instance de stockage automatique


Instance particuli` eren d edi ee au stockage automatique Utilis ee par une ou plusieurs instances de base de donn ees Ne peut pas monter elle-m eme de base de donn ee G` ere simplement la r epartition des chiers, pas leur exploitation Deux nouveaux processus de fond : RBAL et ARB, pour r epartir lactivit e sur les disques Implique un nouveau processus sur les instance de BD : ASMB pour communiquer avec lASM Doit poss eder les m emes SYSDBA que les instances de BD li ees Param` etres dinitialisation (PFILE) sp eciques
52/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Grandes lignes

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
53/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Grandes lignes

Introduction
Il faut toujours avoir ` a lesprit une politique de s ecurit e Assur ee par le DBA, ou un administrateur d edi e Principales t aches :
G erer les utilisateurs Aecter les ressources : tablespaces, quotas,... G erer les privil` eges et les r oles Surveiller lusage de la base de donn ees (Audit)

Deux niveaux de s ecurit e


Les comptes utilisateurs : login et mot de passe R oles, privil` eges et prols : contr ole lacc` es aux objets et aux commandes syst` emes

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

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1

Ninstaller que ce qui est n ecessaire

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil` eges aux utilisateurs

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil` eges aux utilisateurs Sassurer que remote os authentication=FALSE

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil` eges aux utilisateurs Sassurer que remote os authentication=FALSE Sassurer de la s ecurit e du SE

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7 8

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil` eges aux utilisateurs Sassurer que remote os authentication=FALSE Sassurer de la s ecurit e du SE Sassurer de la s ecurit e du r eseau (Ex. : SSL)

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7 8 9

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil` eges aux utilisateurs Sassurer que remote os authentication=FALSE Sassurer de la s ecurit e du SE Sassurer de la s ecurit e du r eseau (Ex. : SSL) Appliquer les correctifs de s ecurit e dOracle
http://otn.oracle.com/deploy/security/alerts.htm

54/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les 10 Commandements (dOracle)

Introduction
1 2 3 4 5 6 7 8 9

Ninstaller que ce qui est n ecessaire S ecuriser les compte par d efaut apr` es installation Utiliser des mots de passe s ecuris es, renouveler r eguli` erement Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE Toujours accorder le minimum de privil` eges aux utilisateurs Sassurer que remote os authentication=FALSE Sassurer de la s ecurit e du SE Sassurer de la s ecurit e du r eseau (Ex. : SSL) Appliquer les correctifs de s ecurit e dOracle
http://otn.oracle.com/deploy/security/alerts.htm

10
54/96

Signaler les failles ` a secalert us@oracle.com

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Gestion des utilisateurs

Types dutilisateurs

Un compte utilisateur = Un sch ema de BD


Cest un ensemble de dobjets : tables, vues, index,... Lutilisateur cr ee, modie,... ses objets

On peut cr eer des utilisateurs simples


Droits de requ etes sur un sch ema pr ecis Pas de droits de cr eations

55/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Gestion des utilisateurs

Etapes de cr eation

Choisir un nom et un mode didentication


identication Oracle ou SE (EXTERNALLY)

Identier les tablespaces : trois en g en eral


Donn ees = tablespace par d efaut de lutilisateur Tris = tablespace temporaire Index = tablespace d edi e aux index en g en eral

D ecider les quotas pour chaque tablespace Cr eer lutilisateur Accorder les r oles et privil` eges

56/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees 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 donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Gestion des droits

Les prols

Ensemble nomm e de limites de ressources


Nombre de connexions simultan ees,...

Ils sont aectables aux utilisateurs Op erations possibles :


Cr eation, modication, supression Activation/d esactivation

Vues DBA USERS, DBA PROFILES

58/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Gestion des droits

Les privil` eges

Granularit e ne des droits


Syst` emes : op erations sur la base ou un type dobjet (plus de 100) Objets : op eration sur un objet pr ecis

Accord es avec lordre GRANT, retir es avec lordre REVOKE vues DBA SYS PRIVS, SESSION PRIVS, DBA TAB PRIVS, DBA COL PRIVS

59/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Gestion des droits

Les r oles
Ensembles de privil` eges, pour simplier leur gestion cr e es et supprim es comme des utilisateurs Accord es avec lordre GRANT, retir es avec lordre REVOKE Peuvent etre accord es/retir es dune session Quelques conseils
Un r ole pour chaque t ache dapplication Un r ole pour chaque type dutilisateur Attribuer aux r oles utilisateurs des r oles dapplication : Pas de privil` eges individuel

vues DBA ROLES, DBA ROLE PRIVS, ROLE ROLE PRIVS,... Attention Pour manipuler des objets via une proc edure, il faut poss eder explicitement les privil` eges requis. Il ne doivent pas etre accord es par un r ole.

60/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees Les audits

Laudit sous Oracle

Pour surveiller des activit es cibl ees sur la base Possible sur toute action sur la base
Tentatives de login Acc` es aux objets Actions bases de donn ees

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

61/96

Administration des bases de donn ees sous Oracle 10g Assurer la s ecurit e des donn ees 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

r esultats dans DBA AUDIT SESSION, DBA AUDIT OBJECT,

62/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees Grandes lignes

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
63/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees Grandes lignes

Introduction
La p er ennit e des donn ees est assur ee par : Les chiers de reprise
En cas de panne dinstance

Les sauvegardes de chiers


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

Larchivage
R ealis e` a chaud par linstance Archive tous les chiers de reprise Seule solution pour s ecurit e totale Augmente la charge du DBA

63/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees Les sauvegardes

Sauvegarde ` a froid

La plus simple ` a mettre en oeuvre 1 : identier les chiers de donn ees/reprise/contr ole 2 : Arr eter la base de donn ees 3 : Sauvegarder tous les chiers avec le SE 4 : Red emarrer la base En cas de panne : il sut de reprendre ces chiers
Int eressant dans des bases avec peu de modications

64/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees Les sauvegardes

Sauvegarde ` a chaud

Fichiers de donn ees


Sauvegarde avec le SE sur un chier OFFLINE Si le chier est ONLINE : on le prot` ege avec les commandes BEGIN /END BACKUP

Fichiers de contr ole


Commande ALTER DATABASE

ATTENTION : a faire en mode archivage automatique


Sinon pas de restauration possible

65/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees Archivage automatique

D epend de la politique locale vis-` a-vis des donn ees


Peut-on envisager une perte de donn ees Si oui, quelle est la dur ee tol erable ?

Assure une coh erence parfaite des donn ees en cas de panne Eectu e` a chaque basculement de groupe dans les logs Possibilit e de le lancer ponctuellement ` a la main
ALTER SYSTEM ARCHIVE LOG (d econseill e)

66/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees La restauration

Sans le mode archivage


Perte des donn ees depuis la derni` ere sauvegarde Restauration compl` ete

En mode archivage
Restauration compl` ete ou non Perte de chiers de donn ees ou du chiers de contr ole

67/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees La restauration

Restauration compl` ete sans archivage

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

68/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees La restauration

Restauration avec archivage

Commande RECOVER Possibilit e de restaurer :


Toute la base des tablespaces le chier de contr ole des chiers de donn ees

A partir :
des chiers de reprise archiv es et de la sauvegarde la plus r ecente

69/96

Administration des bases de donn ees sous Oracle 10g Assurer la p erennit e des donn ees La restauration

Exemple : restauration partielle

Ouvrir la base D esactiver les tablespace (oine) R eparer la panne disque Restaurer seulement les chiers endommag es lancer la restauration
RECOVER TABLESPACE/DATAFILE

Activer le tablespace

70/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Introduction

1 Introduction 2 Oracle : les grands concepts 3 T aches el ementaires dadministration 4 gestion des chiers, tablespaces et espace libre 5 Assurer la s ecurit e des donn ees 6 Assurer la p erennit e des donn ees 7 Optimiser les performances
71/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Introduction

Le r eglage des bases de donn ees ?


R eglage de la conguration initiale en fonction de la charge R eglage de linstance et du SE
Identier les points diciles et les surmonter R ecolter des statistiques sur le fonctionnement
des applications de la base et du SE des E/S sur les disques du r eseau

D ecouvrir les causes ` a partir des sympt omes et corriger


En g en eral : Applications, BD ou mat eriel

R eglage des requ etes


Souvent ecrites ` a lint erieur doutils clients, non optimis ees R eglage di erent pour OLTP/OLAP Visualiser et contr oler les choix de loptimiseur
71/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Introduction

Les outils Oracle pour le r eglage


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

Moniteur de diagnostique automatique sur la BD


Analyse la charge pour sugg erer des probl` emes sur la base

Assistant de r eglage SQL


Conseils pour loptimisation des expressions

Assistant dacc` es SQL


Conseils sur les index et les vues

Traceur dapplication
Pour identier des surcharges par des applications ou utilisateurs pr ecis

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


72/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Planier les performances

Concevoir et d evelopper pour la performance


Eviter absolument les conits et limites de ressource Ne pas penser que linvestissement en mat eriel va assurer les performances Penser en terme de passage ` a l echelle
Comportement lin eaire dans la charge de travail Sp ecicit es internet
disponibilit e 24/24 nombre dacc` es impr evisible souplesse des requ etes Volatilit e et exigence des utilisateurs (7s. dattente au maximum) Concevoir/d evelopper vite et bien !

Causes de mauvaises performances


Mauvaise conception, ou mauvaise impl ementation Mauvais dimensionnement mat eriel Limitations logicielles : application, DBMS ou SE
73/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Planier les performances

Concevoir et d evelopper pour la performance (cont.)


Savoir r epondre aux questions suivantes
Combien dutilisateurs ` a supporter ? tr` es peu, peu ` a beaucoup, une innit e Quelle mode dinteraction ? Navigateur web ou application cliente personnalis ee O` u sont les utilisateurs ? (Temps de transfert r eseaux) Quelle charge dacc` es, combien de donn ees en lecture seule ? Quel est le temps de r eponse requis par les utilisateurs ? Quelle disponibilit e requise par les utilisateurs ? Mises ` a jour en temps r eel ? Quel taille ` a pr evoir pour les donn ees ? Quelles sont les contraintes budg etaires ?

74/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Planier les performances

Principes pour la conception


Ne pas faire compliqu e quand on peut faire simple
Eviter les sch emas ou requ etes incompr ehensibles (utiliser des vues si besoin) Eviter les superpositions de couches logicielles

Soigner la mod elisation des donn ees pour les parties principales Impl ementer un sch ema en 3NF au moins pour assurer la exibilit e
Optimiser avec vues mat erialis ees, clusters, colonnes calcul ees Bien organiser les index

Organiser des campagnes de tests cr edibles facilitera le d eploiement


75/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances La r esolution de probl` emes

Etapes pour la r esolution des probl` emes


1

V erications pr eliminaires (avant les probl` emes)


R ecolter les impressions de base, les projets des utilisateurs R ecolter le maximum de statistiques (SE, DB, applications) lorsque les performances sont bonnes et lorsquelles sont mauvaises 3 V erier r eguli` erement les SE des utilisateurs (mat eriel, ressources...)
1 2

Comparer les sympt omes avec les 10 erreurs fr equemment commises R ealiser une mod elisation conceptuelle du syst` eme lors de lapparition des sympt ome Lister toutes les solutions et les appliquer une ` a une jusqu` a lobtention du r esultat, ou lidentiaction des contraintes ext erieures conduisant ` a l echec.

76/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances La r esolution de probl` emes

Traitement des urgences...


Bien souvent, un probl` eme doit- etre trait e dans lurgence avant une r esolution rigoureuse Les etapes sont alors raccourcies :
1

Faire linventaire des probl` emes, des sympt omes, des changements r ecents

V erier l etat du mat eriel : CPU, disques, m emoire, r eseau de chaque tier D eterminer si le probl` eme est au niveau du CPU ou de lattente d ev` enement. Utiliser les vues dynamiques sur les performances du catalogue. Appliquer des mesures durgence pour stabiliser le syst` emes : suspendre une application, r eduire la charge, tuer un processus... v erier la stabilit e du syst` eme, r ecolter des statistiques, et suivre la proc edure compl` ete de r esolution
77/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances La r esolution de probl` emes

Les 10 erreurs fr equentes selon Oracle


1 2

Multiplication des connexions ` a linstance (une par interaction) Mauvaise utilisation des curseurs et variables li ees
Les curseurs evitent de recalculer une requ ete pour usages multiples Les variables li ees permettent didentier des requ etes similaires Attention au SQL g en er e dynamiquement par les applications

3 4 5 6 7 8 9
78/96

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

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances de linstance

Choix dans la conguration de linstance


Consid erations initiales
Inuence de certains param` etres du PFILE
Compatible, db block size, SGA TARGET, PROCESSES, SESSIONS, UNDO MANAGEMENT

Gestion automatique des annulations conseill ee. Voir V$UNDOSTATS et V$ROLLSTATS Dimension des chier de reprise : un basculement toutes les 20 minutes... Cr eer susamment de tablespaces
Gestion locale recommand ee Ne pas oublier les tablespaces temporaires

Gestion des tables


Compresser les tables en lecture seule R ecup erer lespace libre dans les segments Cr eer les index apr` es le remplissage des tables Laisser Oracle g erer la m emoire pour les tris dans la PGA
79/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances de linstance

Choix dans la conguration de linstance (cont.)

Performances en mode processus serveurs partag es


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 etre loin du taux maximal

Identier les blocages des processus serveurs


Avec V$QUEUE, pour le temps moyen dattente des requ etes ou le nombre de serveurs qui tournent actuellement Ajouter si n ecessaire des serveurs avec les param` etres dinstance Attention, v erier si les blocages ne sont pas en m emoire SGA

80/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances de linstance

Statistiques et diagnostiques automatiques


R ecolter des statistiques est crucial pour r esoudre ou devancer les probl` emes
Concernant la base de donn ees (donn es par Oracle)
Les attentes de processus Le temps cumul e de travail de la base (DBTIME) ou de certaines actions Sur le syst` eme et les sessions...

Concernant le SE (` a r ecup erer avec des outils externes)


Sur lactivit e des CPU Sur le swapping Les acc` es disques Le r eseau

Des rapports automatiques de statistiques peuvent etre g en er es en html par ORACLE Des diagnostiques et conseils automatiques sont g en er es ` a partir des stats
Son but est de minimiser DBTIME...
81/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances de linstance

Gestion de la m emoire
En g en eral, il est recommand e de laisser Oracle g erer la SGA
param` etre SGA TARGET di erent de 0 ne g` ere pas, notamment, le cache de reprise (param` etre LOG BUFFER)

Pour une gestion plus ne, on peut r ecolter des statistiques sur chaque partie de la SGA et g erer sa taille manuellement. Surveiller que le cache de reprise nentra ne pas de ralentissement
Stocker les chiers de logs sur des disques rapides Dans les scripts, ne pas valider ` a chaque op eration Lors de chargement de grands volumes de donn ees, utiliser NOLOGGING

Utiliser la gestion automatique de la PGA


Surveiller et red enir si n ecessaire
82/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances de linstance

Gestion des entr ees/sorties


Rechercher la simplicit e, tout en assurant les besoins requis. On nisole des chiers que pour des raisons de performances ou de p er ennit e des donn ees, ou sil sagit dune contrainte de gestion
S eparer les chiers qui requi` erent beaucoup dE/S Une table et son index nont pas de raison d etre s epar es Essayer tout dabord de r eduire les E/S en optimisant les requ etes... Si le probl` eme vient des chiers de reprise, les isoler S eparer les chiers de reprise et les archives

Penser au mode de gestion automatique des chiers Bien choisir la taille de blocks
8 kilo en g en eral eventuellement plus petit pour un syst` eme fortement transactionnel Plus grand en entreposage de donn ees
83/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Introduction : R esum e des t aches et outils


Lun des aspects th eorique et pratique les plus importantes en BD Trois t aches principales:
identier les charges SQL cruciales pour les performances V erier leur plan dex ecution choisi par loptimiseur Impl ementer des am eliorations pour am eliorer les performances

Trois directions pour le tuning


R eduire la charge : plans dex ecution et index R epartir la charge dans le temps Parall eliser la charge : typiquement en OLAP

Outils pour le r eglage automatique de requ etes


Moniteur de diagnostique automatique Moniteur de r eglage SQL Moniteur dacc` es SQL (index, vues)
84/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Introduction : D evelopper des requ etes ecaces


Tenir ` a jour les statistiques de loptimiseur Surveiller les plans dex ecution Ecrire ecacement les requ etes
Utiliser au maximum des AND et = dans les pr edicats Ne pas utiliser de fonctions dans les clauses WHERE, en particulier sur des colonnes index ees D ecomposer le plus possible les t aches faites par les requ etes

Choisir le bon connecteur


Pr ef erer IN lorsque la sous-requ ete est la plus s elective Pr ef erer EXISTS dans le cas contraire

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

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Les capacit es de r eglage automatique de requ etes


Processus enti` erement automatique de r eglage des ordres SQL
Mode normal : optimiseur classique choisi un bon plan Mode tuning : produit des actions possibles pour am eliorer

Processus co uteux : a utiliser uniquement pour les requ etes probl ematiques Base son analyse sur quatre points :
les statistiques les proles SQL = informations avanc ees sur une requ ete, dans le dictionnaire les chemins dacc` es : index et vues la syntaxe SQL (ex. : UNION ALL plut o que UNION)

Peut- etre utilis e avec SQLAdvisor (graphique ou package PLSQL DBMS SQLTUNE) Possibilit e de r egler des ensembles de requ etes (SQL Tuning Sets)
86/96

Un ensemble de requ etes

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Optimiseur de requ etes : ses t aches


Rappel : SQL est un langage d eclaratif Optimisation de requ ete = choix dun plan dex ecution
Ordre d evaluation des expressions transformation des expressions (ex. requ etes imbriqu ees en jointures) 3 choix du but, le param` etre ` a optimiser 4 Choix des chemains dacc` es 5 ordre de r ealisation des jointures
1 2

Les moyens de ma trise de lutilisateur :


D eterminer le but R ecolter des stats Forcer des choix de loptimiseur avec HINT

87/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Optimiseur de requ ete : quel objectif ?

Deux possibilit es sous Oracle


Minimiser le temps de r eponse global (ALL ROWS, par d efaut) Minimiser le temps des n premi` eres r eponses (FIRST ROW)

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

88/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Optimiseur de requ etes : param` etres

Deux possibilit es sous Oracle


Minimiser le temps de r eponse global (ALL ROWS, par d efaut) Minimiser le temps des n premi` eres r eponses (FIRST ROW)

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

89/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Les chemins dacc` es du plan dex ecution

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

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

CLUSTER ACCESS : parcours dun cluster SAMPLE TABLE SCAN : acc` es ` a un extrait de la base, sp eci e dans la requ ete On peut toujours les forcer avec un HINT

90/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Les di erents types de jointure


Jointure imbriqu ee : double boucle
Lorsque peu de lignes doivent etre jointes La seconde table est acc ed ee rapidement ` a partir de lattribut de jointure O(NxM)

jointure par hachage : la table la plus petite est hach ee en m emoire


Lorsque la table hach ee tient en m emoire Un seul parcours de chaque table

Jointure par tri fusion : tri puis fusion de chaque op erande


Lorsque les sources sont d ej` a tri ees La condition de jointure est une in egalit e

Jointure cart esienne : produit cart esien, pas de condition de jointure Toutes ces variantes existent en jointure externe.
91/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Gestion des statistiques


Ensemble dinformation quantitatives sur les donn ees, utilis ees 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` eme : performances E/S et CPU

Stock ees dans le dictionnaire R ecolt ees automatiquement par un processus de fond
Pendant une fen etre temporelle d enie (par d efaut : 22h-18h + week-end) Cette fen etre peut- etre param etr ee

On peut lancer manuellement apr` es dimportantes modications Les op erations suivantes peuvent etre r ealis ees sur les stats :
92/96

restaurer des versions anciennes

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Index : quels colonnes ?


Quelles colonnes faut-il indexer ?
Attributs utilis es fr equemment dans les clause WHERE (jointures ou s elections) Lecacit e augmente avec la s electivit e de lattribut Automatique pour les cl es primaires, unique Eviter dindexer des colonnes fr equemment modi ees

Inutile si la cl e dindexation est pass ee en param` etre dune fonction


Utiliser des index de fonctions

On peut faire des index compos es de plusieurs colonnes


Si utilis ees ensemble avec une clause AND Placer en premier les attributs les plus fr equemment utilis es Sinon, placer en premier celui sur lequel est ordonn ee la table
93/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Les types dindex


Par d efaut : Oracle utilise des arbres equilibr es (B-arbres) Clusters : regroupement de tables dans des blocs communs
Autour dun ensemble de colonnes communes La jointure sur ces colonnes est imm ediate A d ecider ` a la cr eation des tables

Index Bitmap
Pour des valeurs ` a faible s electivit e sur des grandes tables Bien adapt e` a des grandes conjonctions de pr edicats

Tables organis ees sur lindex : la table est stock ee avec lindex On peut indexer les r esultats dune fonction sur une colonne (UPPER, LOWER, ...) On peut partitionner un index aussi bien quune table
94/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

visualiser les plans dex ecution

EXPLAIN PLAN
Permet de visualiser le plan choisi par loptimiseur On peut d etecter rapidement les points co uteux du plan choisi La requ ete nest pas ex ecut ee !

V$SQL PLAN
Pour voir tous les plans dex ecution des requ etes r ecemment ex ecut ees On a le plan r eel, avec les co uts r eels, pas des estimations

Le plan est stock e dans la table PLAN TABLE


R ecup erer les requ ete dinterrogation de la doc pour une sortie format ee

95/96

Administration des bases de donn ees sous Oracle 10g Optimiser les performances Optimiser les performances SQL

Visualiser la charge de travail

1 2

Fixer les param` etres dinstance pour la collecte de trace Activer la collecte de la trace
Produis un chier avec les statistiques sur toutes les requ etes SQL

lancer lutilitaire TKPROF


Pour formater le chier trace et rendre une sortie lisible

4 5

Interpr eter le chier g en er e (voir la doc de TKPROF) Eventuellement, on peut stocker ce r esultat dans la base
Un script pour cela est fourni par TKPROF

96/96