Vous êtes sur la page 1sur 114

Administration des bases de donn

ees sous Oracle 10g

Administration des bases de donnees 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

Prerequis et objectifs

Prerequis
Mod`ele relationnel (structure, contraintes, SQL)

Objectifs
Connatre les taches dun DBA
Connatre les concepts et points cles de larchitecture Oracle
10g
Savoir effectuer les principales taches 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 elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
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 metiers autour des bases de donnees


Administrateur
Responsable de la securite
Administrateur reseaux
Developpeurs dapplication
Administrateurs dapplication
Utilisateurs : modifier les donnees, creer 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

Roles du DBA

Installer les logiciels Oracle


un serveur, des applications clientes,
En fonction de la configuration syst`eme disponible
Si fonctionnement en reseau : composents reseaux dOracle

Planifier et creer des bases de donnees


Gerer lespace et implanter les schemas des donnees
Assurer la securite, lintegrite et la perennite des donnees
Effectuer des reglages 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 elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
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
requetes SQL et PL/SQL `a un serveur.
Multitier : des serveurs dapplication all`egent la charge du
serveur en realisant certains acc`es pour les clients.

Un serveur de bases de donnees est compose :


dune instance = plusieurs processus et une zone de memoire
dune base de donn
ees
de plusieurs sch
emas, assimiles `a des utilisateurs

Dans le cas de clusters de machines, Oracle 10g peut


associer plusieurs instance `a une meme base de donnees.

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 cree quand un utilisateur lance


une application cliente
Une connexion va etre creee avec linstance Oracle,
lutilisateur va ouvrir une session

Un processus serveur va analyser et executer les requetes,


retourner les donnees
Mode dedie : une processus serveur pour un processus client
Mode partage : 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 memoire (1)

La SGA (Syst`eme Global Area)


Zone partagee par tous les utilisateurs de la base de donnees
Allouee au demarrage de linstance en memoire principale :
doit-etre la plus grosse possible.
Son but est deconomiser les E/S. Elle contient :
le cache de donnees (database buffer cache)
le cache de reprise (redo log buffer) pour les changements
recents
le cache dexecution partage (shared pool) pour les requetes
SQL et PL/SQl. Contient le dictionnaire de donnees en cache.

8/96

Administration des bases de donn


ees sous Oracle 10g
Oracle : les grands concepts
Composants dune instance

La memoire (2)

La PGA (Program Global Area)


Zone dexecution des processus du serveur
Allouee 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


Executent des actions asynchrones decriture et de controle
DBWn (Database Writer) - Ecrit le contenu du cache de
donnees dans les fichiers de donnees
Lorsque la place manque en SGA
De facon periodique, en mettant `a jour le point de restauration
dans les fichiers de log
on peut en creer plusieurs : DBW0, DBW1, ... , DBWj

LGWR (Log Writer) - Ecrit le contenu du cache de reprise


dans les fichiers 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 decharge des donnees modifiees
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 coherence des donnees

SMON (System Monitor)


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

PMON (Process Monitor)


Pour gerer les pannes des processus clients

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

ARCn (Archiver)
Pour larchivage, lorsquil est active

...
11/96

Administration des bases de donn


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

Structure physique

Des fichiers sur le disque


un fichier de contr
ole qui specifie le nom et lemplacement
des fichiers, le nom de la base,...
plusieurs fichiers de donn
ees pour stocker les donnees
au moins deux fichiers de reprise apr`es panne qui contiennent
les modifications recentes
des fichiers darchivage (optionnel) pour archiver les fichiers
de contr
ole
un fichier de param`
etres (optionnel) qui stocke tous les
param`etres de la base
des fichiers de trace pour repertorier toutes les taches et
erreurs effectuees

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 gerer finement la memoire


le block de donn
ees est lunite logique la plus fine, 8ko par
defaut.
lextent est un ensemble contig
ue de blocks, alloues en une
seule fois.
le segment est un ensemble dextents dedies `a un meme objet
(table, index, ...)
Tablespace : regroupe un ensemble dobjets (=segments) pour
faciliter leur administration. Peut atteindre 8 exabytes !

Un tablespace = un ou plusieurs fichiers de donnees

13/96

Administration des bases de donn


ees sous Oracle 10g
Oracle : les grands concepts
Les sch
emas pour Oracle

Contenu dune schema

Correspond `a un utilisateur : les deux portent le meme 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 fichiers 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 : chanage inter-blocs (augmente les E/S)

pour tes tuples de plus de 256 attributs (compris)


chaque partie de 255 tuples est chanee intra-bloc (si possible
!)

Les tuples sont chanes en utilisant le ROWID


A la creation dune table, on peut :
specifier le tablespace
specifier la taille du segment
specifier la quantite despace libre laissee dans chaque bloc

15/96

Administration des bases de donn


ees sous Oracle 10g
Oracle : les grands concepts
Identification du DBA sous Oracle

Le role DBA

Acc`es au catalogue, gestion des utilisateurs, de la memoire...


D`es la creation de la base, deux utilisateurs sont crees avec le
role 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 creer des tables dadministration uniquement

Il est fortement conseille de specifier dautres mots de passe


dans la phase de creation.
Ne pas utiliser dans ladministration quotidienne

16/96

Administration des bases de donn


ees sous Oracle 10g
Oracle : les grands concepts
Identification du DBA sous Oracle

Les privil`eges SYSDBA et SYSOPER


Permettent deffectuer les operations au-dessus de la base
de donn
ees
Demarrer et arreter le serveur
Creer ou supprimer des bases de donnees
Changer les modes darchivage de la base
...

Leur identification est geree 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 fichier password dOracle.


Creer un fichier 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 definition de tous les objets et leur espace alloue
Les valeurs par defaut des attributs
Les contraintes dintegrite
La liste des utilisateurs, leurs privil`eges
Des informations daudit sur les acc`es et modifications
...

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 accedees 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 lactivite de la base : V $Views.

19/96

Administration des bases de donn


ees sous Oracle 10g
Oracle : les grands concepts
Synth`
ese

Enchanement type (1)


Une instance Oracle est demarree sur le serveur
Une application cliente etablit une connexion et ouvre une
session
Le serveur detecte la requete de connexion et cree un
processus serveur dedie
Lutilisateur lance une requete SQL et un commit
Le processus serveur recherche dans la shared pool si la
requete existe
OUI : elle sera utilisee pour repondre
NON : la nouvelle requete est inseree dans la shared pool,
analysee et executee

20/96

Administration des bases de donn


ees sous Oracle 10g
Oracle : les grands concepts
Synth`
ese

Enchanement type (2)

Le processus serveur recup`ere les donnees


Dans le cache de donnees
dans les fichiers de donnees (et les charge dans le cache)

Le processus serveur modifie eventuellement les donnees dans


le cache
Puisquil y a validation, LGWR ecrit la transaction dans le
fichier de reprise
Les changements seront repertories dans les fichiers de donnees
par DBWn
Le resultat, ou une confirmation, est envoye 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 elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
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

Preliminaires

Deux possibilites
Utiliser lassistant Oracle : graphique
Creer manuellement `a laide de scripts

En cas de mise `a jour dOracle, une procedure particuli`ere


existe
Compatibilite ascendante, on ne recree pas les bases de
donnees.

Prerequis :
Oracle doit-etre installe
Vous devez etre administrateur du SE et de linstance Oracle
La memoire principale et memoire disque doit etre suffisante

22/96

Administration des bases de donn


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

Planifier la base
Phase de reflexion avant creation, pour faire les bons choix.
Reflechir aux tables et indexes `a venir, estimer leur taille
Planifier la distribution de ses fichiers, lespace libre dans les
blocks
Decider entre une gestion classique ou automatique des
fichiers
Choisir lencodage des caract`eres (peut-etre surcharge par les
clients)
Determiner la taille des blocs de donnees
Choisir le mode de gestion de lannulation
Tablespace dedie
Segments dannulation

Determiner la strategie 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 creation (1/2)


Specifier le nom de linstance SID
Creer le fichier de param`etres PFILE (partir de lexemple
Oracle)
Nom de la base, emplacement des fichiers de controle

Se connecter `a linstance inactive


SQLPLUS /nolog puis CONNECT / AS SYSDBA

Creer un fichier de param`etre serveur SPFILE (`a partir du


fichier manuel)
Lancer linstance : STARTUP NOMOUNT (Aucune
verification de coherence `a ce niveau)
Creer la base de donnees : 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 creation (2/2)

Creer de nouveaux tablespace, par exemple :


Un USERS pour les utilisateurs
un INDX pour les index

Lancer les scripts de creation du dictionnaire (catalog.sql,


catproc.sql) et eventuellement dautres scripts optionnels
Creer 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 : fichiers geres par Oracle

Oracle peut prendre en charge les fichiers


Specifie dans les param`etres dinitialisation
Simplifie 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

Precisions sur les param`etres de linstance (pfile)


le nom de la base ne comporte que 8 caract`eres
creer au moins deux fichiers de contr
oles
Sur des disques differents si possible

Laisser Oracle choisir la taille des blocs


On peut controler la SGA
En lui fixant une taille maximale
en fixant la taille de differents composants
On peut changer plus tard, de facon dynamique

On peut fixer le nombre de processus autorises


Nombres de processus utilisateurs + 10

On doit choisir un mode de gestion des annulations


Comment on g`ere les donnees dannulation ? (Avant Commit)
Automatique : gerees dans un tablespace
Manuel : gerees 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 complementaires
Si la creation echoue, visualier le fichier dalertes
Arreter linstance
Supprimer les fichiers crees pendant la tentative

Pour supprimer une base :


Drop database
La base doit etre montee et fermee
Conserve les fichiers darchivage et les copies

Pour modifier des param`etres


Les commandes ALTER SYSTEM pour les param`etres
dinstance (modifie 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

Configuration du reseau

Cote serveur
Un processus decoute utilisant un protocole reseau :
listenerSID
Un serveur BD Oracle = instance + base
Les configurations (=services decoute) sont enregistrees dans
listener.ora
Editable `a la main, ou via outils graphiques

Cote client
Configurations (services dacc`es) enregistrees dans tnsname.ora
Permet au client de se connecter de facon transparente

29/96

Administration des bases de donn


ees sous Oracle 10g
T
aches
el
ementaires dadministration
D
emarrer et arr
eter une base

Demarrer une base de donnees


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

Commande STARTUP pour demarrer linstance


Utilise le SPFILE ou le PFILE `a preciser
NOMOUNT : base fermee et non montee
MOUNT : base fermee et montee
FORCE : ouvre de force, en tuant une eventuelle instance
demarree

Commande ALTER DATABASE si linstance est dej`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 donnees


Commande SHUTDOWN
Garde la main jusqu`a larret complet
Plus personne ne peut se connecter
Plusieurs modes darret :
NORMAL : attend la deconnexion de tous les utilisateurs
IMMEDIATE : annule toutes les transactions non validees et
tue les sessions en cours
TRANSACTIONAL : attend la fin des transactions puis tue les
sessions
ABORT : tue les sessions, mais nannule pas les transactions
non validees

31/96

ABORT est `a utiliser en dernier recours


ABORT necessite une restauration de la base pour retrouver
sa coherence
On peut suspendre une base de donnees : ALTER SYSTEM
SUSPEND/RESUME

Administration des bases de donn


ees sous Oracle 10g
T
aches
el
ementaires dadministration
Gestion des processus

Mode dedie et mode partage

Le mode dedie est par defaut


Le mode partage est preferable, sauf :
Lorsque lutilisateur envois des taches en batch
pour effectuer certaines taches de restauration

Pour demarrer le mode partage


Specifier le nombre de serveurs dans le param`etre dinstance
SHARED SERVERS
Dans le fichier de param`etre, ou avec ALTER SYSTEM
Ce nombre peut-etre augmente 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 lidentifiant syst`eme
SN est le numero de serie

recuperer ces identifiants dans la vu V$SESSION


Les transactions en cours sont annulees

33/96

Administration des bases de donn


ees sous Oracle 10g
T
aches
el
ementaires dadministration
Gestion des processus

Surveiller lactivite de la base (1)

Doit etre constamment fait en tache de fond du DBA


Pour reperer 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 reponse trop long...
`a partir dev`enements : une vue est trop ancienne, ...
Parametrables 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 lactivite de la base (2)


Chaque processus serveur est associe `a un fichier trace.
le fichier dalerte recueil en particulier
erreurs internes, corruption de blocs, blocages
toutes les commandes dadministration
les erreurs relatives aux processus serveurs partages
les erreurs durant le rafrachissement des vues
les valeurs des param`etres dinitialisation specifies par
lutilisateur

Il est possible de matriser :


lemplacement des fichiers trace
leur taille
le tracage des processus serveurs, pour collecter des statistiques

35/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de contr
ole

1 Introduction
2 Oracle : les grands concepts
3 T
aches elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
7 Optimiser les performances
36/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de contr
ole

Quest ce que cest ?


Fichier binaire qui decrit la structure physique de la base
Le nom de la base
Les fichiers de donnees et de reprise
La date de creation de la base
La position courrante dans les logs
Des informations sur les point de synchronisation (checkpoint)

Necessaire pour monter la base


Fortement recommande en cas de restauration
Genere lors de la creation de la base
Avec au moins une replication
On peut faire dautres replications plus tard

36/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de contr
ole

Grandes lignes

On peut en specifier lors de la creation (nom par defaut sinon)


Ils doivent etre repliques (multiplexage) sur des disques
separes
Lorsque linstance est arretee, creer la copie du fichier
Declarer le nouveau fichier dans le fichier de param`etres

Meme procedure pour le renommage


Ils doivent etre sauvegardes. Deux options :
ALTER DATABASE BACKUP CONTROLEFILE TO filename
ALTER DATABASE BACKUP CONTROLFILE TO TRACE
gen`ere un script CREATE CONTROL FILE... dans le fichier
trace

37/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de contr
ole

Creation de nouveaux fichiers de controle


Toutes les replications sont endommagees, pas de sauvegarde
On modifie un param`etre de creation qui affecte la taille
MAXLOGFILES, MAXLOGMEMBERS,MAXLOGHISTORY,
MAXDATAFILES, MAXINSTANCES
le nom de la base

Procedure :
repertorier tous les fichiers donnees et reprise
arreter linstance, sauvegarder les fichiers, redemarrer en
NOMOUNT
CREATE CONTROL FILE (cf doc SQL), puis sauvegarde du
nouveau fichier
Specifier les nouveaux fichiers de contr
ole dans le fichier de
param`etres
Restaurer eventuellement la base, si des fichiers ont ete perdus
Ouvrir la base

Visualiser le fichier dalertes pour verifier les erreurs


38/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de contr
ole

Suprression et visualisation

Pour supprimer, il suffit de supprimer dans le fichier de


param`etre
Attention : toujours garder 2 fichiers de controle !

Informations sur les fichiers de contr


ole :
V$DATABASE : ce que contient le fichier de controle
V$CONTROLFILE : nom des fichiers de controle
V$PARAMETER : voir les param`etres dinitialization

39/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, 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 fichiers multiplex
es
(membres)
Il faut au moins deux groupes avec un fichier chacun
Un fichier doit etre vu comme un ensemble denregistrements
Un enregistrement est un ensemble de vecteurs de
changement

Un vecteur est cree pour chaque bloc de donnees modifie


Stocke aussi les informations dannulation

40/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de reprise

Fonctionnement
Accedes uniquement par le processus LGWR (Log Writer)
De facon circulaire : groupe apr`es groupe
Declenchement : validation, ou cache de reprise rempli
Assigne un identifiant unique `a lenregistrement cree
Si pas de validation : possibilite dannulation

En fin de boucle, les premiers fichiers sont ecrases (attente


synchronisation)
Possibilite darchiver les fichiers de reprise pleins
Si probl`eme decriture sur tout un groupe : linstance sarrete.
Erreur reportee dans le fichier dalerte
Il faut corriger et redemarrer
41/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de reprise

Generalites et conseils
Si possible, un disque par fichier de reprise
Archivage sur un autre disque
Fichiers de donnees sur un autre disque

Pour choisir la taille des fichiers, penser `a larchivage


Commencer par deux groupes, puis verifier le fichier de trace
Si trop de blocages, augmenter le nombre de groupes

On peut creer ou supprimer des groupes ou des membres,


renommer des membres
sans depasser MAXLOGFILES et MAXLOGMEMBERS
privil`ege ALTER DATABASE, en general base demmontee.

Vues V$LOG, V$LOGFILE

42/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de donn
ees

Quest-ce que cest ?

Fichiers physiques o`
u sont stockees toutes les structures
logiques
Un fichier de donnees est associe `a un tablespace
Poss`ede un numero unique dans la base (absolu)
poss`ede un numero unique dans le tablespace (relatif)

Au moins deux : tablespaces SYSTEM et SYSAUX


Le nombre max est fixe par le param`etre DB FILES
Certaines limites sont imposees par le SE
Les fichiers temporaires sont des fichiers de donnees un peu
speciaux

43/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Fichiers de donn
ees

Manipulations des fichiers de donnees


Creation les tablespace ou avec la base
CREATE/ALTER TABLESPACE
CREATE/ALTER DATABASE

On peut modifier leur taille `a la volee


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

Peuvent etre mis ONLINE ou OFFLINE


peuvent etre renommes ou deplaces
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 fichiers, tablespaces et espace libre
Tablespaces

Grandes lignes
Espace de stockage logique des objets
Un tablespace = plusieurs fichiers de donnees
Un seul dans le cas des tablespace `a gros fichier (bigfile)

Il est necessaire dutiliser plusieurs tablespace


Separer les donnees des utilisteurs du dictionnaire
Separer les donnees dapplications differentes, pour alleger les
acc`es et reduire les risques de panne des applis
Tablespaces optimises pour certaines taches : lecture seule ou
mises `a jour frequentes, espace temporaire
Sauvegarde individuelle des tablespace

Stocker un tablespace par disque, pour reduire 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 fichiers, tablespaces et espace libre
Tablespaces

Differents types de tablespaces


Tablespaces `a gestion locale des extents (par defaut !)
G`ere la memoire locallement avec des bitmaps
Ameliore les performances
All`ege les acc`es au dictionnaire
Permet le choix automatique de lunite dextention
Autorise la gestion automatique de lespace dans les segments
peut sappliquer `a tous les tablespaces

Tablespaces gerer par le dictionnaires


Gestion plus precise
Necessite une fusion periodique des extents libres

Bigfile tablespaces (jusqu`a 128 tera)


Lorsquon a besoin de plus de capacite (64 000 fichiers de
donnees au maximum)
Simplifie la gestion du tablespace (un seul fichier)
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 fichiers, tablespaces et espace libre
Tablespaces

Differents types de tablespaces (cont.)

Tablespaces temporaires : pour la gestion des tris


Une instance + un tablespace un segment de tri
Affectes `a chaque utilisateurs
Forcement `a gestion locale depuis 10g
ne gen`ere pas decriture dans les fichiers de reprise
Possibilie de creer des groupes, pour des tris parall`eles

Tablespace dannulation, pour les operations non validees

47/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Tablespaces

Le tablespace dannulation

Stocke les operations non validees. Utilisees dans les


annulations, et les restaurations
Jusqu`a la version 8 : Rollback Segments
Maintenant : tablespace dedie `a lannulation et gere
automatiquement
Fortement recommande, mais pas par defaut (param`etres du
PFILE)

Les operations validees sont ecrasees, mais possibilite de les


conserver

48/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Tablespaces

Maintenance des tablespaces

Les operations suivantes sont realisables sur un tablespace :


demander la non-generation 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 donnees ou plateforme

49/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Les modes de gestion automatique

Gestion automatique des fichiers

Decharge le DBA de la gestion des fichiers physiques


Sapplique aux tablespace, fichiers de reprise, de controle,
darchivage, ...
Autorise par des param`etres du PFILE : specifient les
repertoires
Des noms standards sont donnes aux fichiers

50/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Les modes de gestion automatique

Gestion automatique du stockage


Niveau de decharge supplementaire pour le DBA
Optimise automatiquement les E/S.
Prot`ege les donnees : g`ere la replication des fichiers, leur
repartition sur les disques
Principe :
Le DBA definit des disques, ou groupes de disques : partages
par plusieurs bases
Ces groupes peuvent etre crees ou modifies apr`es la creation
de la base
Les fichiers ne sont pas visibles `a partir du SE !
Trois niveaux de redondance : normal, eleve ou externe
Possibilite de definir des patrons de fichiers dans les groupes
Notion de failure groups : des disques qui courent un meme
rique, et ne peuvent donc se servir mutuellement de miroirs
Gere par une instance particuli`ere dOracle !
51/96

Administration des bases de donn


ees sous Oracle 10g
gestion des fichiers, tablespaces et espace libre
Les modes de gestion automatique

Instance de stockage automatique


Instance particuli`eren dediee au stockage automatique
Utilisee par une ou plusieurs instances de base de donnees
Ne peut pas monter elle-meme de base de donnee
G`ere simplement la repartition des fichiers, pas leur
exploitation
Deux nouveaux processus de fond : RBAL et ARB, pour
repartir lactivite sur les disques
Implique un nouveau processus sur les instance de BD :
ASMB pour communiquer avec lASM
Doit posseder les memes SYSDBA que les instances de BD
liees
Param`etres dinitialisation (PFILE) specifiques
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 elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
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 securite
Assuree par le DBA, ou un administrateur dedie
Principales taches :
Gerer les utilisateurs
Affecter les ressources : tablespaces, quotas,...
Gerer les privil`eges et les r
oles
Surveiller lusage de la base de donnees (Audit)

Deux niveaux de securite


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

Sans oublier la securite du SE pour les fichiers, et la securite


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

54/96

Ninstaller que ce qui est necessaire

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`erement

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`erement

Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`erement

Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE

Toujours accorder le minimum de privil`eges aux utilisateurs

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`erement

Sassurer que O7 DICTIONARY ACCESSIBILITY=FALSE

Toujours accorder le minimum de privil`eges aux utilisateurs

Sassurer que remote os authentication=FALSE

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`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 securite du SE

Administration des bases de donn


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

Introduction

54/96

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`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 securite du SE

Sassurer de la securite du reseau (Ex. : SSL)

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 necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`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 securite du SE

Sassurer de la securite du reseau (Ex. : SSL)


Appliquer les correctifs de securite 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

Ninstaller que ce qui est necessaire

Securiser les compte par defaut apr`es installation

Utiliser des mots de passe securises, renouveler reguli`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 securite du SE

Sassurer de la securite du reseau (Ex. : SSL)


Appliquer les correctifs de securite 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 schema de BD


Cest un ensemble de dobjets : tables, vues, index,...
Lutilisateur cree, modifie,... ses objets

On peut creer des utilisateurs simples


Droits de requetes sur un schema precis
Pas de droits de creations

55/96

Administration des bases de donn


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

Etapes de creation

Choisir un nom et un mode didentification


identification Oracle ou SE (EXTERNALLY)

Identifier les tablespaces : trois en general


Donnees = tablespace par defaut de lutilisateur
Tris = tablespace temporaire
Index = tablespace dedie aux index en general

Decider les quotas pour chaque tablespace


Creer lutilisateur
Accorder les roles 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

Modification et suppression

Modifications avec lordre ALTER USER


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

Supression avec DROP USER


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

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 profils

Ensemble nomme de limites de ressources


Nombre de connexions simultanees,...

Ils sont affectables aux utilisateurs


Operations possibles :
Creation, modification, supression
Activation/desactivation

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

Granularite fine des droits


Syst`emes : operations sur la base ou un type dobjet (plus de
100)
Objets : operation sur un objet precis

Accordes avec lordre GRANT, retires 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 roles
Ensembles de privil`eges, pour simplifier leur gestion
crees et supprimes comme des utilisateurs
Accordes avec lordre GRANT, retires avec lordre REVOKE
Peuvent etre accordes/retires dune session
Quelques conseils
Un r
ole pour chaque tache 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

60/96

Pour manipuler des objets via une procedure, il faut posseder


explicitement les privil`eges requis. Il ne doivent pas etre accordes
par un role.

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 activites ciblees sur la base


Possible sur toute action sur la base
Tentatives de login
Acc`es aux objets
Actions bases de donnees

Enregistre 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

resultats 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 elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
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 perennite des donnees est assuree par :
Les fichiers de reprise
En cas de panne dinstance

Les sauvegardes de fichiers


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

Larchivage
Realise `a chaud par linstance
Archive tous les fichiers de reprise
Seule solution pour securite 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 : identifier les fichiers de donnees/reprise/controle
2 : Arreter la base de donnees
3 : Sauvegarder tous les fichiers avec le SE
4 : Redemarrer la base
En cas de panne : il suffit de reprendre ces fichiers
Interessant dans des bases avec peu de modifications

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 donnees
Sauvegarde avec le SE sur un fichier OFFLINE
Si le fichier est ONLINE : on le prot`ege avec les commandes
BEGIN /END BACKUP

Fichiers de controle
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

Depend de la politique locale vis-`a-vis des donnees


Peut-on envisager une perte de donnees
Si oui, quelle est la duree tolerable ?

Assure une coherence parfaite des donnees en cas de panne


Effectue `a chaque basculement de groupe dans les logs
Possibilite de le lancer ponctuellement `a la main
ALTER SYSTEM ARCHIVE LOG (deconseille)

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 donnees depuis la derni`ere sauvegarde
Restauration compl`ete

En mode archivage
Restauration compl`ete ou non
Perte de fichiers de donnees ou du fichiers de controle

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 fichiers de la sauvegarde la plus recente
3 : Ouvrir la base
Si les emplacements on change, modifier les declarations
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
Possibilite de restaurer :
Toute la base
des tablespaces
le fichier de contr
ole
des fichiers de donnees

A partir :
des fichiers de reprise archives et
de la sauvegarde la plus recente

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
Desactiver les tablespace (offline)
Reparer la panne disque
Restaurer seulement les fichiers endommages
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 elementaires dadministration
4 gestion des fichiers, tablespaces et espace libre
5 Assurer la s
ecurite des donnees
6 Assurer la p
erennite des donnees
7 Optimiser les performances
71/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Introduction

Le reglage des bases de donnees ?


Reglage de la configuration initiale en fonction de la charge
Reglage de linstance et du SE
Identifier les points difficiles et les surmonter
Recolter des statistiques sur le fonctionnement
des applications
de la base et du SE
des E/S sur les disques
du reseau

Decouvrir les causes `a partir des sympt


omes et corriger
En general : Applications, BD ou materiel

Reglage des requetes


Souvent ecrites `a linterieur doutils clients, non optimisees
Reglage different 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 reglage


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

Moniteur de diagnostique automatique sur la BD


Analyse la charge pour suggerer des probl`emes sur la base

Assistant de reglage SQL


Conseils pour loptimisation des expressions

Assistant dacc`es SQL


Conseils sur les index et les vues

Traceur dapplication
Pour identifier des surcharges par des applications ou
utilisateurs precis

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
Planifier les performances

Concevoir et developper pour la performance


Eviter absolument les conflits et limites de ressource
Ne pas penser que linvestissement en materiel va assurer les
performances
Penser en terme de passage `a lechelle
Comportement lineaire dans la charge de travail
Specificites internet
disponibilite 24/24
nombre dacc`es imprevisible
souplesse des requetes
Volatilite et exigence des utilisateurs (7s. dattente au
maximum)
Concevoir/developper vite et bien !

Causes de mauvaises performances


Mauvaise conception, ou mauvaise implementation
Mauvais dimensionnement materiel
Limitations logicielles : application, DBMS ou SE
73/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Planifier les performances

Concevoir et developper pour la performance (cont.)


Savoir repondre aux questions suivantes
Combien dutilisateurs `a supporter ? tr`es peu, peu `a beaucoup,
une infinite
Quelle mode dinteraction ? Navigateur web ou application
cliente personnalisee
O`
u sont les utilisateurs ? (Temps de transfert reseaux)
Quelle charge dacc`es, combien de donnees en lecture seule ?
Quel est le temps de reponse requis par les utilisateurs ?
Quelle disponibilite requise par les utilisateurs ?
Mises `a jour en temps reel ?
Quel taille `a prevoir pour les donnees ?
Quelles sont les contraintes budgetaires ?

74/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Planifier les performances

Principes pour la conception


Ne pas faire complique quand on peut faire simple
Eviter les schemas ou requetes incomprehensibles (utiliser des
vues si besoin)
Eviter les superpositions de couches logicielles

Soigner la modelisation des donnees pour les parties


principales
Implementer un schema en 3NF au moins pour assurer la
flexibilite
Optimiser avec vues materialisees, clusters, colonnes calculees
Bien organiser les index

Organiser des campagnes de tests credibles facilitera le


deploiement
75/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
La r
esolution de probl`
emes

Etapes pour la resolution des probl`emes


1

Verifications preliminaires (avant les probl`emes)


Recolter les impressions de base, les projets des utilisateurs
Recolter le maximum de statistiques (SE, DB, applications)
lorsque les performances sont bonnes et lorsquelles sont
mauvaises
3 V
erifier reguli`erement les SE des utilisateurs (materiel,
ressources...)
1
2

76/96

Comparer les sympt


omes avec les 10 erreurs frequemment
commises

Realiser une modelisation conceptuelle du syst`eme lors de


lapparition des sympt
ome

Lister toutes les solutions et les appliquer une `a une jusqu`a


lobtention du resultat, ou lidentifiaction des contraintes
exterieures conduisant `a lechec.

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 traite dans lurgence
avant une resolution rigoureuse
Les etapes sont alors raccourcies :
1

Faire linventaire des probl`emes, des sympt


omes, des
changements recents

Verifier letat du materiel : CPU, disques, memoire, reseau de


chaque tier
Determiner si le probl`eme est au niveau du CPU ou de
lattente dev`enement. Utiliser les vues dynamiques sur les
performances du catalogue.
Appliquer des mesures durgence pour stabiliser le syst`emes :
suspendre une application, reduire la charge, tuer un
processus...
verifier la stabilite du syst`eme, recolter des statistiques, et
suivre la procedure compl`ete de resolution
77/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
La r
esolution de probl`
emes

Les 10 erreurs frequentes selon Oracle


1
2

Multiplication des connexions `a linstance (une par


interaction)
Mauvaise utilisation des curseurs et variables liees
Les curseurs evitent de recalculer une requete pour usages
multiples
Les variables liees permettent didentifier des requetes
similaires
Attention au SQL genere dynamiquement par les applications

3
4
5
6
7
8
9
78/96

Requetes SQL inaproprie aux exigences


Utilisation de param`etres dinstance non standards
Mauvaise repartition des E/S sur les disques
Blocages dans les fichiers de reprise
Mauvaise gestion des blocks et des segments dannulation
Parcours entier de grandes tables
Trop de SQL recursif 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 configuration de linstance


Considerations initiales
Influence de certains param`etres du PFILE
Compatible, db block size, SGA TARGET, PROCESSES,
SESSIONS, UNDO MANAGEMENT

Gestion automatique des annulations conseillee. Voir


V$UNDOSTATS et V$ROLLSTATS
Dimension des fichier de reprise : un basculement toutes les 20
minutes...
Creer suffisamment de tablespaces
Gestion locale recommandee
Ne pas oublier les tablespaces temporaires

Gestion des tables


Compresser les tables en lecture seule
Recuperer lespace libre dans les segments
Creer les index apr`es le remplissage des tables
Laisser Oracle gerer la memoire 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 configuration de linstance (cont.)

Performances en mode processus serveurs partages


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

Identifier les blocages des processus serveurs


Avec V$QUEUE, pour le temps moyen dattente des requetes
ou le nombre de serveurs qui tournent actuellement
Ajouter si necessaire des serveurs avec les param`etres
dinstance
Attention, verifier si les blocages ne sont pas en memoire SGA

80/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances de linstance

Statistiques et diagnostiques automatiques


Recolter des statistiques est crucial pour resoudre ou devancer
les probl`emes
Concernant la base de donnees (donnes par Oracle)
Les attentes de processus
Le temps cumule de travail de la base (DBTIME) ou de
certaines actions
Sur le syst`eme et les sessions...

Concernant le SE (`a recuperer avec des outils externes)


Sur lactivite des CPU
Sur le swapping
Les acc`es disques
Le reseau

Des rapports automatiques de statistiques peuvent etre


generes en html par ORACLE
Des diagnostiques et conseils automatiques sont generes `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 memoire
En general, il est recommande de laisser Oracle gerer la SGA
param`etre SGA TARGET different de 0
ne g`ere pas, notamment, le cache de reprise (param`etre
LOG BUFFER)

Pour une gestion plus fine, on peut recolter des statistiques


sur chaque partie de la SGA et gerer sa taille manuellement.
Surveiller que le cache de reprise nentrane pas de
ralentissement
Stocker les fichiers de logs sur des disques rapides
Dans les scripts, ne pas valider `a chaque operation
Lors de chargement de grands volumes de donnees, utiliser
NOLOGGING

Utiliser la gestion automatique de la PGA


Surveiller et redefinir si necessaire
82/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances de linstance

Gestion des entrees/sorties


Rechercher la simplicite, tout en assurant les besoins requis.
On nisole des fichiers que pour des raisons de performances
ou de perennite des donnees, ou sil sagit dune contrainte de
gestion
Separer les fichiers qui requi`erent beaucoup dE/S
Une table et son index nont pas de raison detre separes
Essayer tout dabord de reduire les E/S en optimisant les
requetes...
Si le probl`eme vient des fichiers de reprise, les isoler
Separer les fichiers de reprise et les archives

Penser au mode de gestion automatique des fichiers


Bien choisir la taille de blocks
8 kilo en general
eventuellement plus petit pour un syst`eme fortement
transactionnel
Plus grand en entreposage de donnees
83/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances SQL

Introduction : Resume des taches et outils


Lun des aspects theorique et pratique les plus importantes en
BD
Trois taches principales:
identifier les charges SQL cruciales pour les performances
Verifier leur plan dexecution choisi par loptimiseur
Implementer des ameliorations pour ameliorer les performances

Trois directions pour le tuning


Reduire la charge : plans dexecution et index
Repartir la charge dans le temps
Paralleliser la charge : typiquement en OLAP

Outils pour le reglage automatique de requetes


Moniteur de diagnostique automatique
Moniteur de reglage 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 : Developper des requetes efficaces


Tenir `a jour les statistiques de loptimiseur
Surveiller les plans dexecution
Ecrire efficacement les requetes
Utiliser au maximum des AND et = dans les predicats
Ne pas utiliser de fonctions dans les clauses WHERE, en
particulier sur des colonnes indexees
Decomposer le plus possible les taches faites par les requetes

Choisir le bon connecteur


Preferer IN lorsque la sous-requete est la plus selective
Preferer EXISTS dans le cas contraire

Si necessaire, matriser les choses en utilisant les HINT


Structurer soigneusement les index, supprimer ceux qui sont
inutiles
Limiter les passes sur les donnees (utiliser le case par exemple)
85/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances SQL

Les capacites de reglage automatique de requetes


Processus enti`erement automatique de reglage des ordres SQL
Mode normal : optimiseur classique choisi un bon plan
Mode tuning : produit des actions possibles pour ameliorer

Processus co
uteux : a utiliser uniquement pour les requetes
problematiques
Base son analyse sur quatre points :
les statistiques
les profiles SQL = informations avancees sur une requete, dans
le dictionnaire
les chemins dacc`es : index et vues
la syntaxe SQL (ex. : UNION ALL plut
o que UNION)

Peut-etre utilise avec SQLAdvisor (graphique ou package


PLSQL DBMS SQLTUNE)
Possibilite de regler des ensembles de requetes (SQL Tuning
Sets)
86/96

Un ensemble de requetes

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances SQL

Optimiseur de requetes : ses taches


Rappel : SQL est un langage declaratif
Optimisation de requete = choix dun plan dexecution
Ordre devaluation des expressions
transformation des expressions (ex. requetes imbriquees 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 matrise de lutilisateur :


Determiner le but
Recolter 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 requete : quel objectif ?

Deux possibilites sous Oracle


Minimiser le temps de reponse global (ALL ROWS, par defaut)
Minimiser le temps des n premi`eres reponses (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 defaut) ou les E/S

88/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances SQL

Optimiseur de requetes : param`etres

Deux possibilites sous Oracle


Minimiser le temps de reponse global (ALL ROWS, par defaut)
Minimiser le temps des n premi`eres reponses (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 defaut) 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 dexecution

FULL TABLE SCAN : parcours sequentiel 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,
specifie dans la requete
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 differents types de jointure


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

jointure par hachage : la table la plus petite est hachee en


memoire
Lorsque la table hachee tient en memoire
Un seul parcours de chaque table

Jointure par tri fusion : tri puis fusion de chaque operande


Lorsque les sources sont dej`a triees
La condition de jointure est une inegalite

Jointure cartesienne : produit cartesien, 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 donnees, utilisees
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

Stockees dans le dictionnaire


Recoltees automatiquement par un processus de fond
Pendant une fenetre temporelle definie (par defaut : 22h-18h
+ week-end)
Cette fenetre peut-etre parametree

On peut lancer manuellement apr`es dimportantes


modifications
Les operations suivantes peuvent etre realisees 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 utilises frequemment dans les clause WHERE
(jointures ou selections)
Lefficacite augmente avec la selectivite de lattribut
Automatique pour les cles primaires, unique
Eviter dindexer des colonnes frequemment modifiees

Inutile si la cle dindexation est passee en param`etre dune


fonction
Utiliser des index de fonctions

On peut faire des index composes de plusieurs colonnes


Si utilisees ensemble avec une clause AND
Placer en premier les attributs les plus frequemment utilises
Sinon, placer en premier celui sur lequel est ordonnee la table
93/96

Administration des bases de donn


ees sous Oracle 10g
Optimiser les performances
Optimiser les performances SQL

Les types dindex


Par defaut : Oracle utilise des arbres equilibres (B-arbres)
Clusters : regroupement de tables dans des blocs communs
Autour dun ensemble de colonnes communes
La jointure sur ces colonnes est immediate
A decider `a la creation des tables

Index Bitmap
Pour des valeurs `a faible selectivite sur des grandes tables
Bien adapte `a des grandes conjonctions de predicats

Tables organisees sur lindex : la table est stockee avec lindex


On peut indexer les resultats 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 dexecution

EXPLAIN PLAN
Permet de visualiser le plan choisi par loptimiseur
On peut detecter rapidement les points co
uteux du plan choisi
La requete nest pas executee !

V$SQL PLAN
Pour voir tous les plans dexecution des requetes recemment
executees
On a le plan reel, avec les co
uts reels, pas des estimations

Le plan est stocke dans la table PLAN TABLE


Recuperer les requete dinterrogation de la doc pour une sortie
formatee

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 fichier avec les statistiques sur toutes les requetes
SQL

lancer lutilitaire TKPROF


Pour formater le fichier trace et rendre une sortie lisible

4
5

Interpreter le fichier genere (voir la doc de TKPROF)


Eventuellement, on peut stocker ce resultat dans la base
Un script pour cela est fourni par TKPROF

96/96

Vous aimerez peut-être aussi