Articles avec le tag ‘Oracle’
Introduction
Après avoir installé votre système Linux et que vous l’avez préparé pour accueillir votre base de données, vous devez installer Oracle.
Vous avez deux façons d’installer Oracle : L’installation graphique et l’installation silencieuse (sans interface graphique, juste avec la ligne de commande). Ici, nous verrons l’installation graphique mais vous retrouverez comment installer votre base de données sans interface graphique dans cet article.
Téléchargement de l’installeur
Avant toute chose, il faut télécharger l’archive qui vous permettra d’installer votre base de données. Pour ceci, allez sur la page de téléchargement de Oracle.com.
Télécharger les Disk1 et Disk2 de la base de données correspondant à votre architecture de processeur. Pour cet article, nous utiliserons l’architecture Linux x86.
Une fois téléchargées, placez les deux archives zip dans le dossier /tmp de votre serveur.
Décompression des archives
Avertissement : A partir de maintenant, toutes les actions sont faites sous l’utilisateur Oracle
Placez-vous dans le dossier /tmp
cd /tmp
Puis décompressez les deux archives
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
Un dossier database a été créé dans le dossier /tmp où sont situés tous les fichiers extraits des deux zips.
Lancement de l’installeur
Note : Les actions sont toujours réalisées avec l’utilisateur Oracle
A partir de maintenant, vous devez vous logger avec l’utilisateur Oracle sur votre serveur en physique et non en SSH.
Avertissement : Loggez-vous bien avec l’utilisateur Oracle et non l’utilisateur root sinon rien ne va marcher.
Vous arrivez sur un écran de ce type :
Un peu rudimentaire mais ça fait largement l’affaire. Vous avez deux éléments : une horloge et un terminal. Toutes les commandes ci-dessous seront à rentrer dans le terminal.
Pour lancer l’installeur, il suffit d’exécuter le script runInstaller
cd /tmp/database
./runInstaller
L’Universal Installer fait quelques vérifications de pré-requis (Espace temporaire, SWAP, et nombre de couleur du moniteur) puis démarre :
L’écran d’accueil vous demande d’entrer votre e-mail et votre mot de passe de support Oracle.
Si vous n’en avez pas, cliquez sur Next puis sur Yes au message d’avertissement.
A l’écran suivant, 3 options vous sont proposées :
- Création et configuration d’une base
- Installation seulement du logiciel de la base de données
- Mise à jour d’une base de données
Vous vous demandez sûrement qu’elle est la différence entre la première et la deuxième option. Avec la première, vous allez créer tous les fichiers nécessaires à faire fonctionner une base de données Oracle et vous allez en créer une et la configurer par la suite. Avec la deuxième option, vous allez seulement créer les fichiers de base puis vous allez devoir créer votre base de données tout seul par la suite.
Note : Hé oui, vous l’avez deviné, il peut avoir plusieurs base de données sur un serveur Oracle.
Nous choisissons la première option et on clique sur Next.
L’installeur nous demande si la base de données sera installé sur un serveur ou sur une station de travail. Nous choisissons « Server Class » et nous continuons.
La base de données sera t-elle toute seule ou sera t-elle un noeud d’un cluster ? Nous n’avons pas installé de Cluster donc on choisit Single Instance. Comme d’habitude, on clique sur Next
On nous demande de choisir entre une installation basique ou complète. Pour ne pas compliquer les choses, nous allons choisir l’installation basique.
Voici la seule page de configuration technique que vous pourrez avoir dans cette installation. Voici les explications de tout ce qu’on peut vous demander :
Oracle Base : Répertoire de base où se trouveront tous les fichiers de votre logiciel Oracle.
Software Location : Répertoire de base de votre base de données où se trouveront tous les fichiers spécifiques à la base de données que vous venez de créer
Storage Type : Type de stockage. Peut-être le système de fichier ou une instance ASM. Ce dernier est un logiciel Oracle qui permet de gérer complètement votre stockage. Ici, nous choisirons FileSystem
Database File location : Répertoire où se trouveront tous les fichiers de données de vos bases de données. Les fichiers de données, comme son nom l’indique, contiennent toutes les données de vos bases.
Database Edition : Version de votre base de données. L’édition Enterprise est la plus aboutie mais c’est celle qui coûte la plus chère. Nous allons garder la version Enterprise pour cette installation.
OSDBA group : Tous les users qui seront dans ce groupe UNIX pourront se connecter et administrer de A à Z vos base de données.
Global database name : Nom que vous allez donner à votre base de données que vous êtes en train de configurer.
Administrative password : Mot de passe qui sera attribué à tous les utilisateurs créés lors de l’installation (sysman, sys, dbsnmp etc…)
Une fois remplis, cliquez sur Next
Cette étape vérifie que tout a été installé. Vérifiez qu’il n’y a aucun problème puis cliquez sur « Next ».
Il arrive qu’il y ait des bugs de vérification de Swap et de mémoire physique dans les machines virtuelles comme sur notre capture d’écran ci-dessus. Dans ce cas, cliquez sur Ignore All puis sur Next.
Un dernier écran vous fait un bilan des actions que l’installeur va faire. Jetez un coup d’oeil rapide puis une fois que vous êtes sûr que tout est bon, cliquez sur Finish.
Vous avez le temps de vous prendre un bon café le temps que votre base de données s’installe.
A la fin de l’installation, un écran vous donne quelques informations sur votre toute nouvelle base de données. Notez dans un coin ceux-ci puis cliquez sur OK.
Une dernière fenêtre vous demande d’exécuter deux scripts en tant que root. Pour ceci, ouvrez un nouveau terminal et rentrez ces commandes :
su
(rentrez votre mot de passe) puis Entrée
sh /app/oraInventory/orainstRoot.sh
sh /app/oracle/product/11.2.0/dbhome_1/root.sh
Une fois exécutés, cliquez sur Ok dans notre fenêtre et une nouvelle fenêtre nous informant que l’installation s’est bien passée apparaît. Fermez la en cliquant sur Close
Introduction
Maintenant que votre système Linux est bien installé, vous devez le préparer pour accueillir votre bijou de base de données.
C’est partit !
Téléchargement de Oracle
Tous les produits Oracle sont disponibles gratuitement sur leurs sites web Oracle.com. Deux versions pour Linux existent : une pour processeur 32 bits et une autre pour processeur 64 bits. Nous choisirons la version 32 bits dans le cadre de cet article.
Pour plus de facilités, mettez les deux zips d’installation dans le dossier /tmp de votre serveur.
Création de l’utilisateur Oracle et des groupes d’administration
Tout d’abord, il va vous falloir créer deux groupes : dba et oinstall. Les membres du groupe dba auront tous les privilèges sur la base de données tandis que les membres du groupe oinstall auront tous les privilèges sur les fichiers physiques de la base de données.
groupadd oinstall
groupadd dba
Une fois ceci fait, il vous faudra créer votre utilisateur oracle qui exécutera la base de données. Ensuite, on lui choisit un mot de passe.
useradd -m oracle
passwd oracle
Puis on place l’utilisateur oracle dans les deux groupes car il devra modifier les fichiers systèmes de votre base Oracle mais aussi pourra administrer la base de données.
usermod -g oinstall -G dba oracle
Création des répertoires de base
Pour l’installation, nous allons avoir besoin de créer les répertoires de base.
mkdir -p /app/oracle
Puis nous positionnons les permissions correctes dessus :
chown -R oracle:oinstall /app
chmod -R 0775 /app
Installation des packages nécessaires
Une base de données oracle nécessite quelques packages systèmes pour fonctionner. Pour les installer, insérer le DVD d’installation de Oracle Enterprise Linux 5 et montez-le dans votre système de fichiers :
mount /dev/cdrom /mnt
Ensuite, positionnez-vous dans le répertoire Server du lecteur DVD. Vous y trouverez tous les RPMs du DVD. Lancez ces commandes :
cd /mnt/Server
rpm -Uvh gcc-4.1.2-46.el5.i386.rpm libgomp-4.4.0-6.el5.i386.rpm elfutils-libelf-devel-static-0.137-3.el5.i386.rpm elfutils-libelf-devel-0.137-3.el5.i386.rpm glibc-devel-2.5-42.i386.rpm glibc-headers-2.5-42.i386.rpm gcc-c++-4.1.2-46.el5.i386.rpm libaio-devel-0.3.106-3.2.i386.rpm libstdc++-devel-4.1.2-46.el5.i386.rpm sysstat-7.0.2-3.el5.i386.rpm unixODBC-devel-2.2.11-7.1.i386.rpm unixODBC-2.2.11-7.1.i386.rpm kernel-headers-2.6.18-164.el5.i386.rpm
Note : Ces packages sont valables pour la version i386 de OEL 5. Si vous avez choisis la version 64 bits, il faudra remplacer i386 par x86-64 dans le nom des packages le nécessitant.
Modification de quelques paramètres
Certains paramètres dans le kernel sont bien trop restrictifs pour qu’une base de données Oracle puisse fonctionner correctement avec un grand nombre de connexions simultanées. Nous allons éditer les paramètres du kernel et les charger à chaud :
echo ‘fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586′ >> /etc/sysctl.conf/sbin/sysctl -p
Le nombre processus pouvant être lancés et de fichiers pouvant être ouverts par l’utilisateur Oracle simultanément sont trop petits pour fonctionner correctement à plein régime. Nous allons changer la limite dans le fichier /etc/security/limits.conf
echo ‘oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536′ >> /etc/security/limits.conf
Puis rajouter une ligne au fichier de configuration de pam.d :
echo ’session required pam_limits.so’ >> /etc/pam.d/login
Enfin, il vous faudra lever les protections sur le nombre de processus lancés à chaque login de l’utilisateur Oracle. Pour ceci, nous allons éditer le fichier /etc/profile
echo ‘if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi’ >> /etc/profile
Conclusion
C’est la fin de la configuration de votre serveur. Passons à l’installation de la base de données Oracle en cliquant sur la flêche verte.
Introduction
Les controls files sont des éléments très importants pour une base de données Oracle. Si vous perdez vos controls files lors d’une panne de disque dur par exemple, vous risquez d’être fortement embêté pour remettre sur pied votre base de données dans un délai pardonnable.
C’est pourquoi, Oracle et tous les DBAs vous le diront : il est très important de multiplexer vos fichiers de contrôle. Voici comment le faire.
Comment multiplexer mes control files ?
Avant de commencer cet article, il est important de savoir que l’annotation [SID] est censé remplacer le SID que vous avez donné à votre instance. Il faut donc le remplacer à chaque commande ci-dessous.
Première étape : Changer les paramètres de votre SPFILE puis arrêtez votre base de données.
$ORACLE_HOME/bin/sqlplus / « as sysdba »
SQL > ALTER SYSTEM SET control_files = ‘/u01/app/oracle/oradata/[SID]/control01.ctl’, ‘/disk2/[SID]/control02.ctl’ SCOPE=SPFILE;
SQL > SHUTDOWN IMMEDIATE;
Ensuite, copiez votre fichier de contrôle actuel vers votre deuxième disque dur (pour nous c’est /disk2)
cp /u01/app/oracle/oradata/[SID]/control01.ctl /disk2/[SID]/controlfiles/control02.ctl
Puis redémarrez votre base de données.
$ORACLE_HOME/bin/sqlplus / « as sysdba »
SQL > STARTUP
Voilà vos fichiers de données sont multiplexés sur plusieurs disques durs pour être armé contre les pannes de disques durs.
Téléchargement de OEL 5
Tout d’abord, avant d’installer votre système, il vous faudra télécharger le DVD d’installation. Pour ceci, rendez vous à ce lien : http://edelivery.oracle.com/linux. Il vous faudra remplir un questionnaire et vous pourrez télécharger le système pour votre ordinateur.
Avertissement : Nous choisirons une image de type i386 (pentium 32 bits). Si vous choisissez une autre architecture, il se peut que l’installation soit un peu différente.
Installation du système
Une fois l’image DVD récupérée, gravée et bootée dessus, vous tomberez sur cet écran d’accueil :
Appuyez sur Entrée. Après quelques chargements, on vous demande si vous voulez vérifier le DVD d’installation :
Choisissez Skip. Le programme d’installation graphique démarre.
L’écran d’accueil de l’installeur apparaît. Cliquez sur Next
Choisissez votre langue. Nous choisissons French (Français) puis cliquez sur Next
Choisissez votre type de clavier. Le clavier Français (latin 1) est choisit par défaut dans le cadre de la langue française. Cliquez sur Suivant
L’installeur vous informe qu’il n’a pu reconnaître aucune partition sur le disque dur. En conséquent, il va tout supprimer sur le disque dur.
Dans notre cas, cela est totalement normal car nous avions un disque dur complètement vierge. Cependant, si vous aviez déjà utilisé ce disque dur, ne cliquez pas sur Oui et vérifiez que vous avez bien sauvegardé toutes vos données.
Nous choisissons le partitionnement par défaut pour faciliter l’installation. Un autre article traitera d’un partitionnement adéquat dans le cadre de l’installation d’Oracle Database. Cliquez sur Suivant pour continuer
Encore une fois, on vous prévient qu’on va tout supprimer sur votre disque dur. Si vous perdez des données, vous ne pouvez que vous en vouloir
!
On vous propose de configurer le réseau. Nous gardons les réglages par défaut : DHCP. Cliquez sur Suivant
Sélectionnez votre fuseau horaire. Par défaut, il sélectionne le fuseau horaire de la langue que vous avez choisi précédemment. Une fois sélectionné, cliquez sur Suivant
Une des étapes les plus importantes : le choix des paquets à installer. Nous allons casser un peu la monotonie de l’installation : pas de choix par défaut. Sélectionnez Personnaliser Maintenant puis cliquez sur Suivant.
Tout d’abord, désélectionnez le package Environnement de bureau GNOME. Une fois déselectionné, rendez vous dans la partie Applications
Déselectionnez tous les packages à l’exception de Editeurs . Comme d’habitude, cliquez sur Suivant.
Un écran vous indique où est-ce que vous pourrez retrouvez les logs de l’installation pour voir si tout s’est bien passé. Pour passer à l’installation de OEL5, cliquez sur Suivant
L’installation se déroule. Vous pouvez aller vous boire un petit café le temps que tout s’installe. A la fin de l’installation, cet écran apparaîtra vous indiquant que l’installation s’est déroulée avec succès.
Vous venez de finir l’installation du système Oracle Enterprise Linux 5. Pour redémarrez et commencer l’installation de Oracle Database 11GR2, cliquez sur Redémarrer et rendez-vous à l’article suivant en cliquant sur la flêche verte !
Introduction
Lorsqu’un serveur redémarre de façon brutale, il est toujours utile que votre base de donnée Oracle redémarre automatiquement lorsque le système s’initialise. Ceci peut vous éviter des downs très longs et de nombreuses interventions de votre part qui s’avèrent au final pas très utiles. En plus, Oracle vous as facilité la vie pour mettre ça en place ! Vous n’avez donc aucune raison pour ne pas lire le reste de l’article
Modification de /etc/oratab
Il va vous falloir modifier le fichier /etc/oratab . Le fichier est au format
$ORACLE_SID:$ORACLE_HOME:N|Y
La dernière colonne indique aux scripts dbstart et dbshut (vu par la suite) de démarrer (Y) ou pas (N) cette instance.
Exemple :
orcl:/app/oracle/product/11.2.0/dbhome_1:N
Il faut que vous changiez le « N » de la ligne de l’instance que vous voulez démarrer en « Y ». Ce qui donnera pour notre ligne en exemple :
orcl:/app/oracle/product/11.2.0/dbhome_1:Y
Création du script de démarrage
A partir de maintenant, nous allons créer un script bash qui sera exécuté à chaque démarrage. Ce script appellera les deux scripts dbstart et dbshut qui s’occuperont respectivement de lancer et d’arrêter votre base de données.
Vous pouvez télécharger ce script à cette addresse. Copiez le dans le dossier /etc/init.d en prenant soin de remplacer les valeurs {A remplacer} par le ORACLE_HOME et le ORACLE_SID respectivement.
Exécuter ce script au démarrage
Pour exécuter ce script au démarrage de votre système Linux, il faudra placer un alias dans les répertoires rc3.d et rc5.d (dépend de votre runlevel). Pour faire ceci :
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle
Inversement, pour arrêter vos bases proprement à chaque extinction de votre système :
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/K01oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/K01oracle
Vous pouvez dorénavant redémarrer votre système et vérifier que votre base de données se lance au démarrage !
Introduction
Votre instance peut vous poser de très nombreux problèmes. Parmi ceux-ci,il y en a que tous les débutants font les premiers jours en tant que DBA Oracle. Vous trouvez ici une liste non-exhaustive d’erreurs courantes et leurs solutions
Les erreurs
Error while loading shared libraries
Système : Oracle Enterprise Linux 5 / Oracle Database 11G
Cause : SELinux en mode Enforcing
Solution : Lancer la commande setenforce 0 . Vous pouvez vérifier l’état de SELinux avec la commande getenforce
SP2-0024 : Rien à modifier
Cause: Oracle n’arrive pas à trouver le .sql que vous spécifiez
Solution: Mettre le chemin complet dans la commande. Exemple : @/app/oracle/scripts/script.sql au lieu de @script.sql
ORA-32017: failure in updating SPFILE
Autre : ORA-16179: incremental changes to « log_archive_dest_2″ not allowed with SPFILE
Cause : Erreur fréquente. Lors de l’ALTER SYSTEM, vous avez oublié la clause LOCATION
Solution : ALTER SYSTEM SET log_archive_dest_2=’LOCATION=/app/oracle/oradata/arch’ scope=both

Introduction
Imaginez-vous dans cette situation : un programmeur vous appelle « Monsieur CAPITAINE, j’ai des problèmes avec un de mes traitements sur l’instance de Dèv, c’est très lent. Pouvez-vous me dire ce qui est lent ? ». Qu’allez-vous faire ? Vous allez lancer des traces.
C’est un des outils les plus pratiques du DBA Oracle. Une trace est un fichier plat qui recense tous les ordres SQL passés entre un laps de temps que vous définirez. Dans l’exemple plus haut, l’intervalle serait Début du traitement – Fin du traitement .
Un peu de technique
Voici une trace : Cliquez ici pour la voir
Première impression : « Gné ? » . Vous avez tout à fait raison. Les traces, en elle-même, sans être parsées par l’utilitaire tkprof sont globalement illisibles sauf pour les DBA très expérimentés qui se feront une joie de vous les déchiffrer.
Pour satisfaire votre curiosité, voici la même trace qu’au dessus mais à la différence d’être parsées par TKPROF : Cliquez ici pour la voir
Comment on trace ?
Il y a plusieurs façons de générer des traces. Vous pouvez les générer pour « vous » au niveau session, mais vous pouvez aussi les générer pour une session différente de la vôtre.
Tracer votre propre session
Tout d’abord au niveau de votre de votre session, la solution la plus simple est l’ALTER SESSION :
ALTER SESSION SET EVENTS ‘10046 trace name context forever,level 12′;
Vous n’avez plus qu’à exécuter votre traitement qui pose des soucis de performance. Une fois terminée, vous n’avez qu’à entrer cette commande :
ALTER SESSION SET EVENTS ‘10046 trace name context off’;
Tiens d’ailleurs en parlant de ça je pourrais les trouver où mes traces ?
Pour trouver l’emplacement de vos traces, il suffit d’ouvrir SQL*plus et de copier la commande
show parameter user_dump_dest
Le résultat est le dossier exact où se trouve toutes vos traces générées.
Tracer une session distante
Maintenant, pour tracer des sessions distantes, vous pouvez utiliser le package DBMS_SYSTEM comme ceci :
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (sid=>[sid],serial#=>[serial],sql_trace=>TRUE);
Exécutez votre traitement puis pour stopper les traces :
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (sid=>[sid],serial#=>[serial],sql_trace=>FALSE);
Attention : Votre utilisateur doit avoir le droit EXECUTE sur le package DBMS_SYSTEM pour faire ceci.
Je fais comment pour récupérer le SID et le SERIAL ?
Le SID (Session ID) et le Serial# sont des identifiants uniques attachés à chaque session sur votre base de données Oracle. Pour récupérer le SID de la session visée, exécutez cette requête :
SELECT SYS_CONTEXT('userenv','SID') SID FROM DUAL;
Ensuite, avec un utilisateur qui a les privilèges de SELECT sur la vue V$SESSION, vous pouvez retrouver le serial avec cette requête :
SELECT serial# FROM V$SESSION WHERE sid=[SID précédemment trouvé];
Conclusion
Maintenant que vous savez lancer des traces de votre session et d’une distante, il vous faut les rendre lisibles. Pour ceci, la page suivante vous apprendra à manipuler l’utilitaire tkprof.
Introduction
L’Optimizer est la partie la plus importante d’une instance Oracle. C’est lui qui choisit quelle chemin il va prendre pour prendre/modifier les données que vous lui ordonnez. Toutes les étapes qu’il va prendre s’appelle le plan d’exécution.
Exemple de plan d’exécution généré via SQL*Plus :
Plan d'exécution
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=143 Card=1438 Bytes=503300)
1 0 TABLE ACCESS (FULL) OF 'PS_PERSONAL_DATA' (Cost=143 Card=1438 Bytes=503300)
Sur celui-ci par exemple, on observe que l’Optimizer a choisi de scanner complètement la table PS_PERSONAL_DATA , qu’il a parcouru 1438 lignes soit 503,300 kiloBytes de données et que la requête a un coût estimé à 143.
Je paris que vous avez un certain nombre de questions qui vous viennent à la tête tout de suite :
Comment il choisit son « chemin » ce fameux Optimizer ?
Alors, il choisit en fonction de ce qu’on appelle « le coût ». Le coût est un indice qu’Oracle donne à certaines étapes du plan d’exécution. Plus le coût est grand, plus l’action est consommatrice de ressources/temps (dans l’idéal d’Oracle parce que ça se passe pas tout le temps comme ça). Par exemple, un balayage complet d’une table aura un coût plus élevé qu’une sélection partielle de lignes.
Comment elle calcule le coût notre base de données ?
Ca, c’est le jardin secret d’Oracle. C’est un algorithme que seules quelques personnes connaissent dans le monde entier. Pour avoir une migration d’Oracle 8i vers 10G, le fait que ce soit secret est la principale cause des déboires des Administrateurs de bases de données lors des changements de version d’Oracle. On ne sait jamais vraiment si les performances seront très dégradées/améliorées lorsqu’on migre une application sur une nouvelle version d’Oracle.
Peut-on influencer les choix de l’Optimizer ?
Bien sûr qu’on peut ! C’est d’ailleurs le sujet de cet article. Influencer l’Optimizer est une des principales pistes de Tuning que vous devez explorer sur votre base de données.
Y a-t-il eu des changements importants dans l’Optimizer ces dernières versions ?
Beaucoup de changements. Depuis la version 10G, Oracle a « abandonné » (plutôt déprécié) les modes Rule et Choose et a tout misé sur le mode Cost-based. Vous pouvez choisir entre le mode ALL_ROWS qui privilégie le débit et le mode FIRST_ROWS(n) qui privilégie le temps pour les « n » premiers résultats. Bien sûr, vous pouvez toujours choisir le mode RULE mais l’Optimizer ne tiendra pas compte de ce mode et passera en mode Cost-Based si il juge que c’est mieux pour certaines requêtes.
Finis les questions ? On passe à la liste des paramètres ! Si vous avez d’autres questions, postez les en commentaire. J’ajouterai les réponses à la liste des questions ci-dessus.
Je ne traiterai que des version 10G et 8i dans cette page car je n’ai pas beaucoup travaillé sur d’autres versions (9i et 11G). De plus, je n’évoque que des paramètres conseillés pour l’OLTP (environnement transactionnel) car je n’ai pas d’expériences en DatawareHouse.
OPTIMIZER_MODE
C’est le mode de fonctionnement de l’Optimizer. 4 valeurs sont possibles : CHOOSE, RULE, ALL_ROWS, FIRST_ROWS. Le premier paramètre laisse l’Optimizer choisir entre le mode RULE et COST BASED. Le deuxième paramètre force le mode RULE . Les deux derniers paramètres forcent le mode COST BASED mais avec deux approches différentes :
-
ALL_ROWS permet de privilégier le débit global
-
FIRST_ROWS permet de privilégier le débit des premiers résultats sortis par une requête
Note : Le mode Rule est devenu obsolète en 10G
Rang de valeurs : RULE, ALL_ROWS, FIRST_ROWS, CHOOSE
Valeur par défaut : ALL_ROWS en 10G, CHOOSE en 8i
Valeur Recommandée pour l’OLTP : CHOOSE
OPTIMIZER_DYNAMIC_SAMPLING
Contrôle le niveau de dynamic sampling, qui permet de calculer les statistiques automatiquement. Plus la valeur est grande, plus le « Dynamic Sampling » est agressif. A 0, le Dynamic Sampling est désactivé.
Note : Existe seulement en 10G
Rang de valeur : 0-10
Valeur par défaut : 2
Valeur recommandée pour l’OLTP : Ca dépend de la quantité de donnée mise à jour/insérées durant une journée. Si vous modifiez/ajoutez plus de 10% de vos données actuelles dans vos tables, Oracle conseille de mettre une valeur grande. Sinon, une valeur de 2 suffira.
OPTIMIZER_INDEX_CACHING
Détermine en pourcentage de nombre de blocs d’index auxquels l’Optimizer peut s’attendre dans le cache.
Rang de valeur : 0 – 100
Valeur par défaut : 0
Valeur recommandée pour l’OLTP : 0
OPTIMIZER_SECURE_VIEW_MERGING
Existe seulement en 10G
Permet d’autoriser ou pas l’Optimizer à vérifier si la vue viole des règles de sécurité.
Rang de valeur : True, False
Valeur par défaut : True
Valeur recommandée pour l’OLTP : False
OPTIMIZER_INDEX_COST_ADJ
Ajuste le coût de parcours d’un index contre un Full Scan. Plus la valeur est petite, plus l’optimiseur est enclin à choisir un index dans le plan d’exécution.
Rang de valeur : 1 – 10 000
Valeur par défaut : 100
Valeur recommandée pour l’OLTP : 100
OPTIMIZER_FEATURES_ENABLE
Permet de forcer l’exécution du noyau comme il était dans une certaine version d’Oracle. Par exemple, si ce paramètre vaut 8.0.6, l’optimizer exécutera la requête comme sur une instance Oracle 8.0.6.
Rang de valeur : Tous les numéros de versions Oracle
Valeur par défaut : Numéro de version d’Oracle
Valeur recommandée pour l’OLTP : Valeur par défaut
OPTIMIZER_PERCENT_PARALLEL
Obsolète en 10G.
Plus la valeur est grande, plus l’Optimizer sera enclin à exécuter en parallèle des requêtes. Ce qui permet d’améliorer significativement les gros traitements, surtout les FULL TABLE SCAN. La valeur de 100 force l’Optimizer à exécuter constamment les requêtes en parallèles. Ce paramètre est surtout utile pour le datawarehousing. Il est plutôt conseillé de passer par des indexs en OLTP.
Rang de valeur : 0 – 100
Valeur par défaut : 0
Valeur recommandée pour l’OLTP : 100 / Nombre d’utilisateurs simultanés
OPTIMIZER_MAX_PERMUTATIONS
Seulement en 8i. Paramètre caché en 10G.
Restreint le nombre de permutations de tables que l’Optimizer va prendre en compte dans les requêtes avec des jointures.
Rang de valeur : 4 – 80 000
Valeur par défaut : 80 000
Valeur recommandée pour l’OLTP : < 1000































