<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog - Guireg CAPITAINE &#187; Oracle Database</title>
	<atom:link href="http://www.guiregcapitaine.com/tag/oracle-database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.guiregcapitaine.com</link>
	<description>Le blog de mes expériences</description>
	<lastBuildDate>Sun, 30 May 2010 10:08:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Installer Oracle 11GR2 sur Linux &#8211; Installation de Oracle</title>
		<link>http://www.guiregcapitaine.com/2010/02/23/installer-oracle-11gr2-sur-linux-installation-de-oracle/</link>
		<comments>http://www.guiregcapitaine.com/2010/02/23/installer-oracle-11gr2-sur-linux-installation-de-oracle/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:37:07 +0000</pubDate>
		<dc:creator>Guireg CAPITAINE</dc:creator>
				<category><![CDATA[Mes expériences personnelles]]></category>
		<category><![CDATA[11G]]></category>
		<category><![CDATA[11GR2]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Installer Oracle]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OEL 5]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle enterprise linux]]></category>

		<guid isPermaLink="false">http://www.guiregcapitaine.com/?p=607</guid>
		<description><![CDATA[Introduction
Après avoir installé votre système Linux et que vous l&#8217;avez préparé pour accueillir votre base de données, vous devez installer Oracle.
Vous avez deux façons d&#8217;installer Oracle : L&#8217;installation graphique et l&#8217;installation silencieuse (sans interface graphique, juste avec la ligne de commande). Ici, nous verrons l&#8217;installation graphique mais vous retrouverez comment installer votre base de données [...]]]></description>
			<content:encoded><![CDATA[<h1>Introduction</h1>
<p>Après avoir installé votre système Linux et que vous l&#8217;avez préparé pour accueillir votre base de données, vous devez installer Oracle.</p>
<p>Vous avez deux façons d&#8217;installer Oracle : L&#8217;installation graphique et l&#8217;installation silencieuse (sans interface graphique, juste avec la ligne de commande). Ici, nous verrons l&#8217;installation graphique mais vous retrouverez comment installer votre base de données sans interface graphique dans <a href="http://www.guiregcapitaine.com/2009/12/22/installer-oracle-11g-release-en-silent-mode-sur-oracle-el-5/">cet article</a>.</p>
<h1>Téléchargement de l&#8217;installeur</h1>
<p>Avant toute chose, il faut télécharger l&#8217;archive qui vous permettra d&#8217;installer votre base de données. Pour ceci, allez sur <a href="http://www.oracle.com/technology/software/products/database/index.html">la page de téléchargement de Oracle.com</a>.</p>
<p>Télécharger les Disk1 et Disk2 de la base de données correspondant à votre architecture de processeur. Pour cet article, nous utiliserons l&#8217;architecture <em>Linux x86</em>.</p>
<p>Une fois téléchargées, placez les deux archives zip dans le dossier /tmp de votre serveur.</p>
<h1>Décompression des archives</h1>
<p><span style="color: #ff0000;">Avertissement :</span> A partir de maintenant, toutes les actions sont faites sous l&#8217;utilisateur <span style="text-decoration: underline;">Oracle </span></p>
<p>Placez-vous dans le dossier /tmp</p>
<blockquote><p>cd /tmp</p></blockquote>
<p>Puis décompressez les deux archives</p>
<blockquote><p>unzip linux_11gR2_database_1of2.zip</p>
<p>unzip linux_11gR2_database_2of2.zip</p></blockquote>
<p>Un dossier database a été créé dans le dossier /tmp où sont situés tous les fichiers extraits des deux zips.</p>
<h1>Lancement de l&#8217;installeur</h1>
<p><span style="color: #ff0000;">Note :</span> Les actions sont toujours réalisées avec l&#8217;utilisateur <span style="text-decoration: underline;">Oracle</span></p>
<p>A partir de maintenant, vous devez vous logger avec l&#8217;utilisateur Oracle sur votre serveur en physique et non en SSH.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/1.png" rel="lightbox[607]"><img class="size-medium wp-image-614 alignnone" title="1" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/1-300x224.png" alt="" width="300" height="224" /></a></p>
<p><span style="color: #ff0000;">Avertissement :</span> Loggez-vous bien avec l&#8217;utilisateur Oracle et non l&#8217;utilisateur root sinon rien ne va marcher.</p>
<p>Vous arrivez sur un écran de ce type :</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/2.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-623" title="2" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/2-300x225.png" alt="" width="300" height="225" /></a></p>
<p>Un peu rudimentaire mais ça fait largement l&#8217;affaire. Vous avez deux éléments : une horloge et un terminal. Toutes les commandes ci-dessous seront à rentrer dans le terminal.</p>
<p>Pour lancer l&#8217;installeur, il suffit d&#8217;exécuter le script runInstaller</p>
<blockquote><p>cd /tmp/database</p>
<p>./runInstaller</p></blockquote>
<p>L&#8217;Universal Installer fait quelques vérifications de pré-requis (Espace temporaire, SWAP, et nombre de couleur du moniteur) puis démarre :</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/3.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-616" title="3" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/3-300x225.png" alt="" width="300" height="225" /></a></p>
<p>L&#8217;écran d&#8217;accueil vous demande d&#8217;entrer votre e-mail et votre mot de passe de support Oracle.</p>
<p>Si vous n&#8217;en avez pas, cliquez sur Next puis sur Yes au message d&#8217;avertissement.</p>
<p>A l&#8217;écran suivant, 3 options vous sont proposées :</p>
<ul>
<li>Création et configuration d&#8217;une base</li>
<li>Installation seulement du logiciel de la base de données</li>
<li>Mise à jour d&#8217;une base de données</li>
</ul>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/4.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-617" title="4" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/4-300x225.png" alt="" width="300" height="225" /></a></p>
<p>Vous vous demandez sûrement qu&#8217;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.</p>
<p><span style="color: #ff0000;">Note : </span>Hé oui, vous l&#8217;avez deviné, il peut avoir plusieurs base de données sur un serveur Oracle.</p>
<p>Nous choisissons la première option et on clique sur <em>Next</em>.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/5.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-618" title="5" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/5-300x171.png" alt="" width="300" height="171" /></a></p>
<p>L&#8217;installeur nous demande si la base de données sera installé sur un serveur ou sur une station de travail. Nous choisissons &laquo;&nbsp;Server Class&nbsp;&raquo; et nous continuons.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/6.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-619" title="6" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/6-300x172.png" alt="" width="300" height="172" /></a></p>
<p>La base de données sera t-elle toute seule ou sera t-elle un noeud d&#8217;un cluster ? Nous n&#8217;avons pas installé de Cluster donc on choisit <em>Single Instance. </em>Comme d&#8217;habitude<em>,</em> on clique sur <em>Next</em></p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/7.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-620" title="7" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/7-300x171.png" alt="" width="300" height="171" /></a></p>
<p>On nous demande de choisir entre une installation basique ou complète. Pour ne pas compliquer les choses, nous allons choisir l&#8217;installation basique.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/8.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-621" title="8" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/8-300x171.png" alt="" width="300" height="171" /></a></p>
<p>Voici la seule page de configuration technique que vous pourrez avoir dans cette installation. Voici les explications de tout ce qu&#8217;on peut vous demander :</p>
<p><strong>Oracle Base :</strong> Répertoire de base où se trouveront tous les fichiers de votre logiciel Oracle.</p>
<p><strong>Software Location : </strong>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</p>
<p><strong>Storage Type :</strong> 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</p>
<p><strong>Database File location :</strong> 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&#8217;indique, contiennent toutes les données de vos bases.</p>
<p><strong>Database Edition :</strong> Version de votre base de données. L&#8217;édition Enterprise est la plus aboutie mais c&#8217;est celle qui coûte la plus chère. Nous allons garder la version Enterprise pour cette installation.</p>
<p><strong>OSDBA group :</strong> Tous les users qui seront dans ce groupe UNIX pourront se connecter et administrer de A à Z vos base de données.</p>
<p><strong>Global database name :</strong> Nom que vous allez donner à votre base de données que vous êtes en train de configurer.</p>
<p><strong>Administrative password :</strong> Mot de passe qui sera attribué à tous les utilisateurs créés lors de l&#8217;installation (sysman, sys, dbsnmp etc&#8230;)</p>
<p>Une fois remplis, cliquez sur Next</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/9.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-626" title="9" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/9-300x170.png" alt="" width="300" height="170" /></a></p>
<p>Cette étape vérifie que tout a été installé. Vérifiez qu&#8217;il n&#8217;y a aucun problème puis cliquez sur &laquo;&nbsp;Next&nbsp;&raquo;.</p>
<p>Il arrive qu&#8217;il y ait des bugs de vérification de Swap et de mémoire physique dans les machines virtuelles comme sur notre capture d&#8217;écran ci-dessus. Dans ce cas, cliquez sur Ignore All puis sur Next.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/10.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-627" title="10" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/10-300x171.png" alt="" width="300" height="171" /></a></p>
<p>Un dernier écran vous fait un bilan des actions que l&#8217;installeur va faire. Jetez un coup d&#8217;oeil rapide puis une fois que vous êtes sûr que tout est bon, cliquez sur Finish.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/11.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-628" title="11" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/11-300x170.png" alt="" width="300" height="170" /></a></p>
<p>Vous avez le temps de vous prendre un bon café le temps que votre base de données s&#8217;installe.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/14.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-629" title="14" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/14-300x171.png" alt="" width="300" height="171" /></a></p>
<p>A la fin de l&#8217;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.</p>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/15.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-630" title="15" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/15-300x171.png" alt="" width="300" height="171" /></a></p>
<p>Une dernière fenêtre vous demande d&#8217;exécuter deux scripts en tant que root. Pour ceci, ouvrez un nouveau terminal et rentrez ces commandes :</p>
<blockquote><p>su</p>
<p>(rentrez votre mot de passe) puis Entrée</p>
<p>sh /app/oraInventory/orainstRoot.sh</p>
<p>sh /app/oracle/product/11.2.0/dbhome_1/root.sh</p></blockquote>
<p><a href="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/16.png" rel="lightbox[607]"><img class="alignnone size-medium wp-image-631" title="16" src="http://www.guiregcapitaine.com/wp-content/uploads/2010/02/16-300x171.png" alt="" width="300" height="171" /></a></p>
<p>Une fois exécutés, cliquez sur Ok dans notre fenêtre et une nouvelle fenêtre nous informant que l&#8217;installation s&#8217;est bien passée apparaît. Fermez la en cliquant sur Close</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guiregcapitaine.com/2010/02/23/installer-oracle-11gr2-sur-linux-installation-de-oracle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installer Oracle 11G Release 2 en silent mode sur Oracle EL 5</title>
		<link>http://www.guiregcapitaine.com/2009/12/22/installer-oracle-11g-release-en-silent-mode-sur-oracle-el-5/</link>
		<comments>http://www.guiregcapitaine.com/2009/12/22/installer-oracle-11g-release-en-silent-mode-sur-oracle-el-5/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 15:15:28 +0000</pubDate>
		<dc:creator>Guireg CAPITAINE</dc:creator>
				<category><![CDATA[Mes expériences personnelles]]></category>
		<category><![CDATA[11G]]></category>
		<category><![CDATA[11G release 2]]></category>
		<category><![CDATA[11GR2]]></category>
		<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mode silencieux]]></category>
		<category><![CDATA[OEL 5]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle enterprise linux 5]]></category>
		<category><![CDATA[sans interface graphique]]></category>
		<category><![CDATA[sans universal installer]]></category>
		<category><![CDATA[Silent mode]]></category>

		<guid isPermaLink="false">http://www.guiregcapitaine.com/fr/?p=519</guid>
		<description><![CDATA[Introduction
Vous en avez jamais eu marre d&#8217;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&#8217;installation silencieux utilise des fichiers de réponses (Response files dans son appellation original) [...]]]></description>
			<content:encoded><![CDATA[<h1><a href="http://www.guiregcapitaine.com/wp-content/uploads/2009/12/chut.jpg" rel="lightbox[519]"><img class="size-thumbnail wp-image-522 alignright" title="chut" src="http://www.guiregcapitaine.com/wp-content/uploads/2009/12/chut-150x150.jpg" alt="" width="150" height="150" /></a>Introduction</h1>
<p>Vous en avez jamais eu marre d&#8217;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.</p>
<p>Le mode d&#8217;installation silencieux utilise des fichiers de réponses (Response files dans son appellation original) qui permet de spécifier toutes les informations nécessaires.</p>
<h1>Créer votre response file</h1>
<p>Un response file est un fichier texte qui porte par défaut l&#8217;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&#8217;une installation graphique de Oracle.</p>
<p>Voici un exemple de response file que j&#8217;utilise pour une installation d&#8217;Oracle Database toute simple : <a href="http://www.guiregcapitaine.com/wp-content/uploads/db.rsp">Le télécharger</a> . Vous pouvez vous en inspirez et changer les valeurs pour que ça colle à votre installation.</p>
<h1>L&#8217;installation en silent mode</h1>
<p>L&#8217;installation en silent mode est très simple. Après avoir dézippé les deux archives d&#8217;installation que vous pourrez <a href="http://www.oracle.com/technology/software/products/database/index.html">télécharger en cliquant ici</a> , vous vous positionnez dans le répertoire créé</p>
<blockquote><p>unzip linux_11gR2_database_1of2.zip</p>
<p>unzip linux_11gR2_database_2of2.zip</p>
<p>cd database</p></blockquote>
<p>Vous devez définir la variable DISTRIB avant de commencer</p>
<blockquote><p>export DISTRIB=`pwd`</p></blockquote>
<p>Puis vous lancer l&#8217;Universal Installer avec quelques options supplémentaires</p>
<blockquote><p>./runInstaller -silent -ignoreSysPrereqs -ignorePrereq -responseFile /chemin/vers/responsefile</p></blockquote>
<p>L&#8217;installation durera une petite dizaine de minute.</p>
<p>Par la suite, il ne vous restera plus qu&#8217;à exécuter les classiques deux scripts en tant que root comme indiqué lors de l&#8217;installation. Facile non ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guiregcapitaine.com/2009/12/22/installer-oracle-11g-release-en-silent-mode-sur-oracle-el-5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dépanner votre instance Oracle 11G</title>
		<link>http://www.guiregcapitaine.com/2009/11/26/depanner-votre-instance-oracle-11g/</link>
		<comments>http://www.guiregcapitaine.com/2009/11/26/depanner-votre-instance-oracle-11g/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 16:21:18 +0000</pubDate>
		<dc:creator>Guireg CAPITAINE</dc:creator>
				<category><![CDATA[Mes expériences personnelles]]></category>
		<category><![CDATA[10G]]></category>
		<category><![CDATA[11G]]></category>
		<category><![CDATA[Base de données]]></category>
		<category><![CDATA[EL 5]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle enterprise linux]]></category>

		<guid isPermaLink="false">http://www.guiregcapitaine.com/fr/?p=461</guid>
		<description><![CDATA[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&#8217;erreurs courantes et leurs solutions
Les erreurs
Error while loading shared libraries
Système : Oracle Enterprise Linux 5 / Oracle Database 11G
Cause : SELinux en [...]]]></description>
			<content:encoded><![CDATA[<h1>Introduction</h1>
<p>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&#8217;erreurs courantes et leurs solutions</p>
<h1>Les erreurs</h1>
<h2>Error while loading shared libraries</h2>
<p><strong>Système :</strong> Oracle Enterprise Linux 5 / Oracle Database 11G</p>
<p><strong>Cause :</strong> SELinux en mode <em>Enforcing</em></p>
<p><strong>Solution : </strong>Lancer la commande <em>setenforce 0</em> . Vous pouvez vérifier l&#8217;état de SELinux avec la commande <em>getenforce</em></p>
<h2>SP2-0024 : Rien à modifier</h2>
<p><strong>Cause: </strong>Oracle n&#8217;arrive pas à trouver le .sql que vous spécifiez</p>
<p><strong>Solution:</strong> Mettre le chemin complet dans la commande. Exemple : @/app/oracle/scripts/script.sql au lieu de @script.sql</p>
<h2>ORA-32017: failure in updating SPFILE</h2>
<p>Autre : ORA-16179: incremental changes to &laquo;&nbsp;log_archive_dest_2&#8243; not allowed with SPFILE</p>
<p><strong>Cause : </strong>Erreur fréquente. Lors de l&#8217;ALTER SYSTEM, vous avez oublié la clause LOCATION</p>
<p><strong>Solution : </strong>ALTER SYSTEM SET log_archive_dest_2=&#8217;<span style="color: #ff0000;">LOCATION</span>=/app/oracle/oradata/arch&#8217; scope=both</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guiregcapitaine.com/2009/11/26/depanner-votre-instance-oracle-11g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Décoder vos traces avec l&#8217;utilitaire TKPROF</title>
		<link>http://www.guiregcapitaine.com/2009/11/23/decoder-vos-traces-avec-lutilitaire-tkprof/</link>
		<comments>http://www.guiregcapitaine.com/2009/11/23/decoder-vos-traces-avec-lutilitaire-tkprof/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 18:29:03 +0000</pubDate>
		<dc:creator>Guireg CAPITAINE</dc:creator>
				<category><![CDATA[Mes expériences personnelles]]></category>
		<category><![CDATA[10G]]></category>
		<category><![CDATA[11G]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[tkprof]]></category>
		<category><![CDATA[Traces]]></category>

		<guid isPermaLink="false">http://www.guiregcapitaine.com/?p=384</guid>
		<description><![CDATA[
Introduction
Comme vous avez pu dans le voir dans l&#8217;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 [...]]]></description>
			<content:encoded><![CDATA[<h1><a href="http://www.guiregcapitaine.com/wp-content/uploads/2009/11/idea.jpg" rel="lightbox[384]"><img class="alignright size-medium wp-image-437" title="Tkprof - I've got an idea" src="http://www.guiregcapitaine.com/wp-content/uploads/2009/11/idea-300x225.jpg" alt="Tkprof - I've got an idea" width="200" height="151" /></a></h1>
<h1>Introduction</h1>
<p>Comme vous avez pu dans le voir dans l&#8217;article <a title="Générer des traces sur votre instance Oracle" href="http://www.guiregcapitaine.com/2009/11/07/generer-des-traces-sur-votre-instance-oracle/">Générer des traces sur votre instance Oracle</a> , les traces en elle-même sont globalement illisibles <img src='http://www.guiregcapitaine.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Pour vous éviter un mal de tête, Oracle a développer un outil très pratique nommé Tkprof qui se chargera de vous <em>décoder</em> vos traces et de vous fournir quelques éléments pratiques comme le plan d&#8217;exécution des requêtes.</p>
<h1>Utilisation de TkProf</h1>
<p>TkProf est inclut dans Oracle Client et Oracle Database. C&#8217;est un outil en ligne de commande que vous pouvez via une invite de commande sous Windows ou un terminal sous Linux.</p>
<p>Sans plus attendre, voici la syntaxe :</p>
<p><span style="text-decoration: underline;">Windows :</span></p>
<blockquote><p>tkprof  C:/oracle/&#8230;./trace.trc output=C:/oracle/&#8230;./trace_output.txt</p></blockquote>
<p><span style="text-decoration: underline;">Linux :</span></p>
<blockquote><p>$ORACLE_HOME/bin/tkprof  /app/oracle/&#8230;/trace.trc output=/app/oracle/&#8230;/trace_output.txt</p></blockquote>
<p><span style="color: #ff0000;">Attention :</span> 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.</p>
<h2>Les options indispensables</h2>
<p>Pour que vos rapports TkProf soient plus lisibles, quelques options sont indispensables.</p>
<ul>
<li>SYS=no : Ne pas afficher les ordres SQL exécutés par l&#8217;utilisateur SYS</li>
<li>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</li>
<li>AGGREGATE=no : Permet de ne pas regrouper les ordres SQL similaires</li>
<li>SORT= : Permet de triées les instructions selon l&#8217;option désirée</li>
</ul>
<h2>Et comment je les utilise ces options ?</h2>
<p>Simple comme bonjour ! Par exemple, pour des traces sans ordres SQL exécutées par SYS et pas de regroupements d&#8217;ordres SQL similaires sous Linux :</p>
<blockquote><p>$ORACLE_HOME/bin/tkprof  /app/oracle/&#8230;/trace.trc sys=no aggregate=no output=/app/oracle/&#8230;/trace_output.txt</p></blockquote>
<h1>Comment lire mon rapport ?</h1>
<p>Pour mieux illustrer, prenons la trace qui avait été générée dans mon article<a href="http://www.guiregcapitaine.com/2009/11/07/generer-des-traces-sur-votre-instance-oracle/"> <em>Générer des traces sur votre instance Oracle</em></a>.</p>
<blockquote>
<pre>********************************************************************************

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
********************************************************************************</pre>
</blockquote>
<p>Nous pouvons distinguer trois parties :</p>
<ul>
<li>Un tableau avec plein de nombres. (On reviendra dessus après)</li>
<li>L&#8217;explain plan de la requête</li>
<li>Les Wait events générés par la requête</li>
</ul>
<h3>Comment je le lis le tableau ?</h3>
<p>Ce fameux tableau est découpé en trois lignes :</p>
<ul>
<li><em>Parse :</em> Cette étape détermine le plan d&#8217;exécution de votre requête</li>
<li><em>Execute :</em> Pour les ordres INSERT, UPDATE, DELETE : modifie les données. Pour l&#8217;ordre SELECT : Identifie les lignes à extraire</li>
<li><em>Fetch :</em> Extraction des lignes et opérations de tri. Concerne uniquement l&#8217;ordre SELECT.</li>
</ul>
<p>Concernant les lignes, voici leurs significations :</p>
<ul>
<li><em>Count :</em> Nombre de fois que le Parse/Execute/Fetch a été exécuté</li>
<li><em>CPU (Seconde) : </em>Temps total de traitement CPU</li>
<li><em>Elapsed (Seconde) :</em> Temps total pris par le Parse/Execute/Fetch.</li>
<li><em>Disk :</em> Nombre total de blocs lus physiquement dans les fichiers de données</li>
<li><em>Query :</em> Nombre de buffers exploités en mode cohérent</li>
<li><em>Current :</em> Nombre de buffers exploités en mode courant</li>
<li><em>Rows : </em>Nombre de lignes affectés par la requête.</li>
</ul>
<h3>Quelques consignes pour bien commencer</h3>
<ol>
<li>Vérifier qu&#8217;il n&#8217;y a pas de grosses différences entre CPU et Elapsed</li>
<li>N&#8217;oubliez jamais de diviser vos valeurs par la valeur de Count</li>
<li>Prenez l&#8217;habitude d&#8217;additionner Current et Query pour connaître le nombre total de buffers extraits</li>
<li>Comparer le nombre de blocs parcourus aux nombre de lignes fetchées pour vérifier s&#8217;il ne manque pas un index. (Inutile si vous avez l&#8217;explain plan)</li>
<li>Ne perdez pas de temps à trop décoder, ça se parcoure vraiment très rapidement</li>
</ol>
<p><strong>Conclusion</strong></p>
<p>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.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guiregcapitaine.com/2009/11/23/decoder-vos-traces-avec-lutilitaire-tkprof/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Générer des traces sur votre instance Oracle</title>
		<link>http://www.guiregcapitaine.com/2009/11/07/generer-des-traces-sur-votre-instance-oracle/</link>
		<comments>http://www.guiregcapitaine.com/2009/11/07/generer-des-traces-sur-votre-instance-oracle/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 11:48:52 +0000</pubDate>
		<dc:creator>Guireg CAPITAINE</dc:creator>
				<category><![CDATA[Mes expériences personnelles]]></category>
		<category><![CDATA[10G]]></category>
		<category><![CDATA[11G]]></category>
		<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Explain plan]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Plan d'exécution]]></category>
		<category><![CDATA[tkprof]]></category>
		<category><![CDATA[Traces]]></category>

		<guid isPermaLink="false">http://www.guiregcapitaine.com/?p=355</guid>
		<description><![CDATA[
Introduction
Imaginez-vous dans cette situation : un programmeur vous appelle &#171;&#160;Monsieur CAPITAINE, j&#8217;ai des problèmes avec un de mes traitements sur l&#8217;instance de Dèv, c&#8217;est très lent. Pouvez-vous me dire ce qui est lent ?&#160;&#187;. Qu&#8217;allez-vous faire ? Vous allez lancer des traces.
C&#8217;est un des outils les plus pratiques du DBA Oracle. Une trace est un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="border: 0pt none;" src="http://www.guiregcapitaine.com/wp-content/uploads/2009/10/traces_inversed.jpeg" alt="" width="182" height="182" /></p>
<h1>Introduction</h1>
<p>Imaginez-vous dans cette situation : un programmeur vous appelle &laquo;&nbsp;Monsieur CAPITAINE, j&#8217;ai des problèmes avec un de mes traitements sur l&#8217;instance de Dèv, c&#8217;est très lent. Pouvez-vous me dire ce qui est lent ?&nbsp;&raquo;. Qu&#8217;allez-vous faire ? Vous allez lancer des traces.</p>
<p>C&#8217;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&#8217;exemple plus haut, l&#8217;intervalle serait <em>Début du traitement &#8211; Fin du traitement</em> .</p>
<h1>Un peu de technique</h1>
<p>Voici une trace : <a href="http://www.guiregcapitaine.com/wp-content/uploads/orcl_ora_3428.trc" target="_blank">Cliquez ici pour la voir</a></p>
<p>Première impression : &laquo;&nbsp;Gné ?&nbsp;&raquo; . Vous avez tout à fait raison. Les traces, en elle-même, sans être parsées par l&#8217;utilitaire tkprof sont globalement illisibles sauf pour les DBA très expérimentés qui se feront une joie de vous les déchiffrer.</p>
<p>Pour satisfaire votre curiosité, voici la même trace qu&#8217;au dessus mais à la différence d&#8217;être parsées par TKPROF : <a href="http://www.guiregcapitaine.com/wp-content/uploads/trace.txt" target="_blank">Cliquez ici pour la voir</a></p>
<h1>Comment on trace ?</h1>
<p>Il y a plusieurs façons de générer des traces. Vous pouvez les générer pour &laquo;&nbsp;vous&nbsp;&raquo; au niveau session, mais vous pouvez aussi les générer pour une session différente de la vôtre.</p>
<h2>Tracer votre propre session</h2>
<p>Tout d&#8217;abord au niveau de votre de votre session, la solution la plus simple est l&#8217;ALTER SESSION :</p>
<blockquote><p>ALTER SESSION SET EVENTS &#8216;10046 trace name context forever,level 12&#8242;;</p></blockquote>
<p>Vous n&#8217;avez plus qu&#8217;à exécuter votre traitement qui pose des soucis de performance. Une fois terminée, vous n&#8217;avez qu&#8217;à entrer cette commande :</p>
<blockquote><p>ALTER SESSION SET EVENTS &#8216;10046 trace name context off&#8217;;</p></blockquote>
<p><strong>Tiens d&#8217;ailleurs en parlant de ça je pourrais les trouver où mes traces ?</strong></p>
<p>Pour trouver l&#8217;emplacement de vos traces, il suffit d&#8217;ouvrir SQL*plus et de copier la commande</p>
<blockquote><p>show parameter user_dump_dest</p></blockquote>
<p>Le résultat est le dossier exact où se trouve toutes vos traces générées.</p>
<h2>Tracer une session distante</h2>
<p>Maintenant, pour tracer des sessions distantes, vous pouvez utiliser le package DBMS_SYSTEM comme ceci :</p>
<blockquote>
<pre style="line-height: 18pt;">EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (sid=&gt;[sid],serial#=&gt;[serial],sql_trace=&gt;TRUE);</pre>
</blockquote>
<p>Exécutez votre traitement puis pour stopper les traces :</p>
<blockquote>
<pre style="line-height: 18pt;">EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (sid=&gt;[sid],serial#=&gt;[serial],sql_trace=&gt;FALSE);</pre>
</blockquote>
<p><span style="color: #ff0000;">Attention :</span> Votre utilisateur doit avoir le droit EXECUTE sur le package DBMS_SYSTEM pour faire ceci.</p>
<p><strong>Je fais comment pour récupérer le SID et le SERIAL ?</strong></p>
<p>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 :</p>
<blockquote>
<pre style="line-height: 18pt;">SELECT SYS_CONTEXT('userenv','SID') SID FROM DUAL;</pre>
</blockquote>
<p>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 :</p>
<blockquote>
<pre style="line-height: 18pt;">SELECT serial# FROM V$SESSION WHERE sid=[SID précédemment trouvé];</pre>
</blockquote>
<h1>Conclusion</h1>
<p>Maintenant que vous savez lancer des traces de votre session et d&#8217;une distante, il vous faut les rendre lisibles. Pour ceci, la page suivante vous apprendra à manipuler l&#8217;utilitaire<em> tkprof.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guiregcapitaine.com/2009/11/07/generer-des-traces-sur-votre-instance-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
