Archive pour la catégorie ‘Mes expériences personnelles’
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
La base de données Oracle est installable sur une bonne partie des systèmes d’exploitation. Cependant, Linux est son domaine de prédilection. Ici, nous allons installer notre base de données sur le système d’exploitation « made in maison » de chez Oracle : Oracle Entreprise Linux 5.
Comme vous l’aurez, Oracle Enterprise Linux 5 (Aka OEL 5) est un fork de RedHat Enterprise Linux 5 dépourvu des technologies propriétaires à RedHat. Un peu à la manière de CentOS 5.
Concernant Oracle, un nouvel installeur est arrivé avec la release 2 de la 11G. Si vous êtes un habitué, rassurez-vous, vous ne serez pas trop perdu non plus
Place à l’action ! Nous allons procéder à l’installation de OEL 5 à la page suivante
Introduction
Vous en avez jamais eu marre d’installer Oracle avec le lourd Universal Installer en Java ? Ou alors vous voulez installer Oracle sur votre serveur mais vous ne voulez pas utiliser X ? Le silent mode est donc fait pour vous.
Le mode d’installation silencieux utilise des fichiers de réponses (Response files dans son appellation original) qui permet de spécifier toutes les informations nécessaires.
Créer votre response file
Un response file est un fichier texte qui porte par défaut l’extension .rsp . Vous pouvez en créer un vous-même avec toutes les informations que vous voulez ou en générer un à la fin d’une installation graphique de Oracle.
Voici un exemple de response file que j’utilise pour une installation d’Oracle Database toute simple : Le télécharger . Vous pouvez vous en inspirez et changer les valeurs pour que ça colle à votre installation.
L’installation en silent mode
L’installation en silent mode est très simple. Après avoir dézippé les deux archives d’installation que vous pourrez télécharger en cliquant ici , vous vous positionnez dans le répertoire créé
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
cd database
Vous devez définir la variable DISTRIB avant de commencer
export DISTRIB=`pwd`
Puis vous lancer l’Universal Installer avec quelques options supplémentaires
./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /chemin/vers/responsefile
L’installation durera une petite dizaine de minute.
Par la suite, il ne vous restera plus qu’à exécuter les classiques deux scripts en tant que root comme indiqué lors de l’installation. Facile non ?
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
Oracle APEX est un portail web rattachée à la base de donnée Oracle qui permet de développer des applications web en un temps record.
Pour les initiés aux technologies Oracle, ça pourrait leur faire penser à un forms/reports en version web.
APEX est installable très facilement avec une base de donnée Oracle. Nous allons voir ici comment l’installer sur la version 11GR2 de Oracle.
Installation de Oracle APEX sur Oracle Database 11GR2
Pour installer Oracle APEX, rien de bien compliqué.
Connectez-vous en SYSDBA à votre base de données.
cd $ORACLE_HOME
bin/sqlplus / « as sysdba »
A l’invite de commande, lancez le script apxconf.sql
@ ?apex/apxconf.sql
Entrez un mot de passe pour l’utilisateur admin
Entrez le port sur lequel vous voulez que le serveur web tourne (par défaut 8080)
Débloquer l’utilisateur ANONYMOUS
Pour pouvoir vous connecter, il vous suffira de débloquer l’utilisateur ANONYMOUS à l’aide de la commande :
ALTER USER anonymous ACCOUNT UNLOCK ;
Créer un workspace
Maintenant que tout est bien installé et prêt, il est temps de vous connecter à l’administration d’APEX. Pour ceci, ouvrez un navigateur web et allez à l’adresse http://server-ip:port-choisit/apex/apex_admin. Cette page apparaît :
Rentrez le login Admin et votre mot de passe défini lors de l’installation. Vous arrivez sur cette page :
Cliquez sur la flêche à côté de l’icône Manage Workspaces => Manage Workspaces => Create Workspace . Vous arrivez sur cet écran.
Donnez un nom à votre workspace et un commentaire.
Oracle vous demande le schéma auquel est rattaché le workspace. Vous avez le choix entre utiliser un schéma existant ou en créer un nouveau.
Donner l’identité de l’utilisateur qui pourra administrer complètement ce workspace. Cet utilisateur est complètement indépendant d’un utilisateur Oracle ou de votre utilisateur Admin précédemment créé.
Comme à son habitude, Oracle vous fait un briefing de ce que vous allez créer. Cliquez sur Create et votre Workspace sera enfin créé !
Vous connecter à votre Workspace
Enfin, pour finir, voici comment vous connecter à votre workspace. En haut à droite de votre écran, cliquez sur Logout. Une page avec 3 champs apparaît :
Il ne vous reste plus qu’à rentrer le nom de votre workspace, votre login et votre mot de passe créé dans la partie précédente et vous voici prêt à créer un projet web avec Oracle APEX !
Note : Vous retrouverez cette interface sans forcément passer par l’admin en allant à l’url http://serveur-url:port-choisit/apex
Conclusion
Oracle APEX est très facile à installer et sa console d’administration web puissante vous permettra d’avoir un très rapide aperçu de tous les workspaces et de les gérer de façon très efficace.
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
Comme vous avez pu dans le voir dans l’article Générer des traces sur votre instance Oracle , les traces en elle-même sont globalement illisibles
Pour vous éviter un mal de tête, Oracle a développer un outil très pratique nommé Tkprof qui se chargera de vous décoder vos traces et de vous fournir quelques éléments pratiques comme le plan d’exécution des requêtes.
Utilisation de TkProf
TkProf est inclut dans Oracle Client et Oracle Database. C’est un outil en ligne de commande que vous pouvez via une invite de commande sous Windows ou un terminal sous Linux.
Sans plus attendre, voici la syntaxe :
Windows :
tkprof C:/oracle/…./trace.trc output=C:/oracle/…./trace_output.txt
Linux :
$ORACLE_HOME/bin/tkprof /app/oracle/…/trace.trc output=/app/oracle/…/trace_output.txt
Attention : La version de TkProf doit être impérativement la même que celle de la base de donnée où vous avez généré vos traces. Si elles sont différentes, vous aurez à coup sûr des valeurs aberrantes dans votre output file.
Les options indispensables
Pour que vos rapports TkProf soient plus lisibles, quelques options sont indispensables.
- SYS=no : Ne pas afficher les ordres SQL exécutés par l’utilisateur SYS
- EXPLAIN=user/password : Permet de spécifier le schéma dans lequel tkprof va générer les explain plan. Inutile si vous générez vos traces directement avec le compte oracle en local sur votre base de donnée
- AGGREGATE=no : Permet de ne pas regrouper les ordres SQL similaires
- SORT= : Permet de triées les instructions selon l’option désirée
Et comment je les utilise ces options ?
Simple comme bonjour ! Par exemple, pour des traces sans ordres SQL exécutées par SYS et pas de regroupements d’ordres SQL similaires sous Linux :
$ORACLE_HOME/bin/tkprof /app/oracle/…/trace.trc sys=no aggregate=no output=/app/oracle/…/trace_output.txt
Comment lire mon rapport ?
Pour mieux illustrer, prenons la trace qui avait été générée dans mon article Générer des traces sur votre instance Oracle.
********************************************************************************
SELECT e.last_name, j.job_title from oracle.employees e
JOIN oracle.jobs j ON (e.job_id=j.job_id)
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.01 0.13 0 4 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 15 0 107
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.01 0.14 0 19 0 107
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: SYS
Rows Row Source Operation
------- ---------------------------------------------------
107 HASH JOIN (cr=15 pr=0 pw=0 time=5798 us)
19 TABLE ACCESS FULL JOBS (cr=7 pr=0 pw=0 time=187 us)
107 TABLE ACCESS FULL EMPLOYEES (cr=8 pr=0 pw=0 time=796 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.14 0.15
********************************************************************************
Nous pouvons distinguer trois parties :
- Un tableau avec plein de nombres. (On reviendra dessus après)
- L’explain plan de la requête
- Les Wait events générés par la requête
Comment je le lis le tableau ?
Ce fameux tableau est découpé en trois lignes :
- Parse : Cette étape détermine le plan d’exécution de votre requête
- Execute : Pour les ordres INSERT, UPDATE, DELETE : modifie les données. Pour l’ordre SELECT : Identifie les lignes à extraire
- Fetch : Extraction des lignes et opérations de tri. Concerne uniquement l’ordre SELECT.
Concernant les lignes, voici leurs significations :
- Count : Nombre de fois que le Parse/Execute/Fetch a été exécuté
- CPU (Seconde) : Temps total de traitement CPU
- Elapsed (Seconde) : Temps total pris par le Parse/Execute/Fetch.
- Disk : Nombre total de blocs lus physiquement dans les fichiers de données
- Query : Nombre de buffers exploités en mode cohérent
- Current : Nombre de buffers exploités en mode courant
- Rows : Nombre de lignes affectés par la requête.
Quelques consignes pour bien commencer
- Vérifier qu’il n’y a pas de grosses différences entre CPU et Elapsed
- N’oubliez jamais de diviser vos valeurs par la valeur de Count
- Prenez l’habitude d’additionner Current et Query pour connaître le nombre total de buffers extraits
- Comparer le nombre de blocs parcourus aux nombre de lignes fetchées pour vérifier s’il ne manque pas un index. (Inutile si vous avez l’explain plan)
- Ne perdez pas de temps à trop décoder, ça se parcoure vraiment très rapidement
Conclusion
TkProf est un outil très facile à utiliser mais néanmoins indispensable à tous les DBAs. Il vous permettra de comprendre et résoudre de nombreux problèmes en très peu de temps.
































