Modification des paramètres propres à la base
L'administrateur dispose du fichier init.ora pour modifier
certains paramètres de la base de données.
Nous allons intervenir sur les paramètres suivants :
- paramètres liés à la gestion de la mémoire,
- taille des fichiers.
Ces paramètres sont stockés dans le
fichier initxxx.ora. Nous allons commencer par
analyser le contenu de ce fichier.
Le fichier init.ora
Les principaux paramètres sont :
- db_file : le nombre de fichiers pouvant être
ouverts en simultané sur la base.
- L'administrateur doit veiller à ne pas dépasser les
limites du système d'exploitation.
- db_file_multiblock_read_count : le nombre de blocs (Oracle)
lus en simultané pour accéder à un fichier.
- Ce paramètre permet de s'adapter au système
d'exploitation sans changer la taille d'un bloc Oracle.
- db_block_size : la taille d'un bloc Oracle.
- db_block_buffers : le nombre de blocs de données
cachés en mémoire (dans la SGA).
- C'est le paramètre qui influe le plus sur la taille de la SGA.
La taille de chaque buffer est égale à db_block_size
(la valeur par défaut est de 34, elle peut prendre des valeurs
entre 4 et 65535).
- share_pool_size : la taille de la zone share pool. Elle
contient des procédures et des curseurs.
- dml_locks : le nombre de verrous implicites et explicites
vus par Oracle.
- Il doit être positionné à 4 fois le nombre de
transactions simultanées. Dans le cas d'une instance parallèle,
il doit être mis à zéro.
- log_buffer : le nombre de buffers de redo log dans la SGA.
- sequence_cache_entry : le nombre d'entrées dans le cache des
numéros de séquence.
- max_dump_file_size : la taille maximum (en blocs vus par le
système d'exploitation) des fichiers de trace.
Gestion de la mémoire
Nous vous rappelons que la mémoire comprend :
- la PGA (zone des processus utilisateurs),
- la SGA (zone de tampon pour les données),
- la zone de tri.
Le but des actions entreprises sur ces zones est de garder un maximum
d'informations en mémoire pour diminuer les entrées/sorties disques.
Les paramètres influant sur la SGA sont :
- DB_BLOCK_BUFFER, il contient le nombre de buffers cache en
mémoire. Il convient d'en augmenter sa valeur pour garder un
maximum d'informations en mémoire (tables, index,
rollback segments, etc.).
Il est conseillé de le
positionner entre 500 et 4000 ou plus (base moyenne/grosse base).
- Pour voir si le nombre de buffers cache est suffisant,
effectuer la requête ci-dessous. Le ratio :
1 - (physical reads/(db block gets+consistent gets))
doit être de 90 % (70 % dans l'exemple). Si tel n'est pas le cas,
il est conseillé d'augmenter la valeur de DB_BLOCK_BUFFER.
Surveillance de DB_BLOCK_BUFFER :
- DB_BLOCK_SIZE, c'est la taille du bloc vu par Oracle.
Pour Unix, la valeur optimale est de 8 K octets.
- SHARED_POOL_SIZE, c'est le nombre d'octets alloués
pour la zone partagée de la SGA, elle contient essentiellement
les données du dictionnaire, les procédures et les curseurs.
- L'administrateur peut régulièrement vider cette
zone via la commande : ALTER SYSTEM FLUSH SHARE_POOL ;
- Pour voir si ce cache est utilisé efficacement, effectuer
la requête ci-contre.
Si le ratio du «nombre d'accès sans cache» sur
le «nombre d'acces au dico» est supérieur à
10 ou 15 %, il est nécessaire d'augmenter la valeur
de SHARED_POOL_SIZE (8% dans l'exemple).
Surveillance de la SHARE_POOL :
- LOG_BUFFERS, c'est le nombre de buffers de redo log
réservés dans la SGA.
- Pour voir si ce cache est utilisé efficacement,
effectuer la requête ci-dessous. Si ce nombre n'est pas
proche de zéro, augmenter
la valeur de LOG_BUFFER (par pas de 5%), jusqu'à
ce que la valeur tende vers 0.
Surveillance des LOG_BUFFERS :
Le paramètre influant sur la zone de tri est :
- SORT_AREA_SIZE, par défaut 64 K.
- Pour voir si cette taille est suffisante, effectuer la
requête ci-contre. Si un nombre significatif de tris a été
fait sur le disque, augmenter la valeur de SORT_ARAY_SIZE
(la valeur de l'exemple n'est pas significative, la base
n'a pas d'activité...).
Surveillance de la SORT_AREA :
Gestion des fichiers
Nous vous rappelons que les fichiers mis en oeuvre sont liés aux :
- control files,
- redo logs,
- tablespaces,
Les redo logs
Leur taille optimale est entre 5 et 10 M octets par fichier.
Les tablespaces
Il est conseillé de créer un tablespace spécial
pour les TEMPORARY SEGMENTS et le tablespace système
doit posséder une taille d'au moins 20 M octets. Les utilisateurs ne
devraient pas travailler sur le tablespace système. Si ce dernier
est plein, la base est inaccessible.
Mais, il est toujours possible d'augmenter sa taille par la
commande ALTER TABLESPACE.
Toujours dans l'optique d'équilibrer les charges disques,
il est conseillé de mettre les index et les tables sur des
disques différents.
- Pour visualiser les fichiers les plus sollicités,
effectuer la requête ci-contre. Elle vous permet de
vous assurer que les charges disques sont bien
équilibrées (quand on a plusieurs disques ...). Cette commande
est à coupler avec une commande Unix (df -k) permettant de
savoir sur quels disques physiques se trouvent les fichiers.
Surveillance des tablespaces :