<?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>Cap Data Team SGBD Blog : Oracle, SQL Server, MySQL, Sybase... &#187; Oracle</title>
	<atom:link href="http://blog.capdata.fr/index.php/category/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.capdata.fr</link>
	<description>Le blog technique sur les bases de données de CAP DATA Consulting</description>
	<lastBuildDate>Wed, 01 Feb 2012 17:21:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Checkpoint not complete: Comment limiter les alertes liées à la journalisation</title>
		<link>http://blog.capdata.fr/index.php/comment-limiter-les-alertes-liees-a-la-journalisation-checkpoint-not-completed-et-compagnie/</link>
		<comments>http://blog.capdata.fr/index.php/comment-limiter-les-alertes-liees-a-la-journalisation-checkpoint-not-completed-et-compagnie/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 07:49:30 +0000</pubDate>
		<dc:creator>Louis PROU</dc:creator>
				<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=2783</guid>
		<description><![CDATA[Mécanisme :
 
Le moteur oracle met en œuvre un mécanisme de journalisation via les fichiers redo logs afin d’enregistrer toutes les modifications apportées à la base de données. Ceux-ci sont organisés en groupes qui vont être écrits de manière circulaire, c&#8217;est-à-dire écrasés à intervalle plus ou moins régulier.
Ils sont primordiaux pour la restauration de l’instance dans [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="text-decoration: underline">Mécanisme :</span></strong></p>
<p><span style="text-decoration: underline"> </span></p>
<p style="text-align: justify">Le moteur oracle met en œuvre un mécanisme de journalisation via les fichiers redo logs afin d’enregistrer toutes les modifications apportées à la base de données. Ceux-ci sont organisés en groupes qui vont être écrits de manière circulaire, c&#8217;est-à-dire écrasés à intervalle plus ou moins régulier.</p>
<p style="text-align: justify">Ils sont primordiaux pour la restauration de l’instance dans le cas d’un arrêt anormal ou pour la restauration de média si un fichier de données est corrompu ou tout simplement perdu. Couplés à une sauvegarde de fichiers de données, ils permettent donc de rejouer l’intégralité des changements survenus entre la sauvegarde et l’incident.</p>
<p style="text-align: justify">Les fichiers de journalisation se composent d’au minimum deux groupes constitués chacun d’un ou  plusieurs membres. Ainsi les membres d’un même groupe vont être écrits de manière simultanée par l’instance via le processus LGWR (logwriter) et contenir exactement les mêmes données. Cette mise en miroir appelée également multiplexage permet de diminuer les risques en cas de perte de fichiers. C’est pourquoi il est conseillé de positionner les redo logs sur des espaces physiques différents. Tous les membres d’un groupe ont la même taille définie lors de leur création et celle-ci reste fixe. Il faut également savoir que le nombre de groupes n’augmente pas dynamiquement. Ainsi lorsqu’il n’est plus possible d’écrire dans un groupe qui est plein Oracle passe au groupe suivant et ainsi de suite jusqu’au dernier. L’écriture d’un fichier à un autre se nomme basculement (switch). Puis il va repasser au premier, d’où la notion de circularité, en écrasant toutes les informations qui y sont stockées. Elles ne seront donc plus disponibles lors par exemple, d’une restauration de média. Pour garantir cela il faut donc activer le mécanisme d’archivage, qui comme son nom l’indique, permet d’archiver les fichiers de journalisation dès lors qu’ils sont pleins avant qu’ils ne soient réutilisés.</p>
<p><span style="text-decoration: underline"> </span></p>
<p><strong><span style="text-decoration: underline">Problématique :</span></strong></p>
<p><span style="text-decoration: underline"> </span></p>
<p style="text-align: justify">Toute la problématique se situe donc dans le simple fait de parvenir à dimensionner correctement la taille des fichiers de journalisation et avoir le bon nombre de groupes.</p>
<p style="text-align: justify">Cependant l’objectif reste simple :</p>
<p style="text-align: justify">Avoir une taille de fichiers de journalisation suffisamment grande dans le but d’éviter des basculements trop fréquents qui seraient pénalisants pour les performances. Sans perdre de vue qu’avoir des basculements peu fréquents et donc des points de reprise peu fréquents pourraient dans certain cas allonger la durée de récupération de l’instance et donc la durée de redémarrage lors d’un arrêt anormal. Il faut donc trouver le juste milieu entre bonne performance en fonctionnement normal mais également en cas de dysfonctionnement.</p>
<p style="text-align: justify">Utiliser un nombre de groupes suffisamment important afin de permettre aux points de reprise et à l’archivage de se terminer avant que l’instance ne revienne sur un fichier de journalisation et écrase les informations. Si ce n’est pas le cas le processus LGWR est en attente dégradant ainsi les performances.</p>
<p><span style="text-decoration: underline"> </span></p>
<p><strong><span style="text-decoration: underline">Analyse: </span></strong></p>
<p><span style="text-decoration: underline"> </span></p>
<p style="text-align: justify">La première chose à faire est d’analyser le fichier d’alerte de l’instance afin d’auditer de manière simple l’activité des fichiers de journalisation.</p>
<p style="text-align: justify">Voici donc les trois types d’informations à surveiller :</p>
<p>- Basculement d’un fichier de journalisation à un autre</p>
<pre style="padding-left: 30px"><em>Mon Jul 04 10:08:05 2011</em></pre>
<pre style="padding-left: 60px"><em>Thread 1 advanced to log sequence 50</em></pre>
<pre style="padding-left: 60px"><em>Current log# 2 seq# 50 mem# 0: E:\ORADATA\DBVC\REDO02A.RDO </em></pre>
<pre style="padding-left: 60px"><em>Current log# 2 seq# 50 mem# 1: D:\ORADATA\DBVC\REDO02B.RDO</em></pre>
<p>- Attente lors d’un basculement : Point de reprise non terminé</p>
<pre style="padding-left: 30px"><em>Thu Jul 07 10:42:25 2011</em></pre>
<pre style="padding-left: 60px"><em>Thread 1 cannot allocate new log, sequence 56</em></pre>
<pre style="padding-left: 60px"><em>Checkpoint not complete</em></pre>
<p><em> </em></p>
<p>- Attente lors d’un basculement : Archivage non terminé</p>
<pre style="padding-left: 30px"><em>Thu Jul 07 10:42:25 2011</em></pre>
<pre style="padding-left: 60px"><em>Thread 1 cannot allocate new log, sequence 57</em></pre>
<pre style="padding-left: 60px"><em>All online logs needed archiving</em></pre>
<p><em> </em></p>
<p>Ensuite il est bon de vérifier la manière dont sont organisés les redo logs en se connectant à l’instance, via par exemple  sqlplus:</p>
<pre><em>SQL&gt; select *from v$log;</em></pre>
<pre><em> GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1          1      12364  419430400           2 NO  CURRENT           530717709 18-MAY-11
2          1      12363  419430400           2 NO  ACTIVE               530642826 18-MAY-11
3          1      12362  419430400           2 NO  INACTIVE            530562254 18-MAY-11</em></pre>
<p><em> </em></p>
<p>Ici l’on interroge la vue v$log, où l’on constate que l’on dispose de trois groupes de fichiers de 400 Mo chacun. Le groupe N°1 étant celui en cours d’utilisation par l’instance.</p>
<p><em> </em></p>
<pre><em>SQL&gt; select * from v$logfile order by group#;</em></pre>
<pre><em> GROUP# STATUS  TYPE    MEMBER                                   IS_
---------- ------- ------- ---------------------------------------- ---
1         ONLINE  D:\ORADATA\DBVC\REDO01A.RDO              NO
1         ONLINE  F:\ORADATA\DBVC\REDO01B.RDO              NO
2         ONLINE  E:\ORADATA\DBVC\REDO02A.RDO              NO
2         ONLINE  D:\ORADATA\DBVC\REDO02B.RDO              NO
3         ONLINE  F:\ORADATA\DBVC\REDO03A.RDO              NO
3         ONLINE  E:\ORADATA\DBVC\REDO03B.RDO              NO</em></pre>
<p>Ici l’on interroge la vue v$logfile où l’on voit que chaque groupe est composé de deux membres. Chaque membre étant positionné sur un disque physique distinct.</p>
<p><em> </em></p>
<pre><em>SQL&gt; select * from v$loghist;</em></pre>
<pre><em>THREAD#  SEQUENCE# FIRST_CHANGE# FIRST_TIME SWITCH_CHANGE#
---------- ---------- ------------- ------------------- --------------</em></pre>
<pre><em>1    12247    523471807    17/05/2011    0:11:07        523552937
1    12248    523552937    17/05/2011    0:26:08        523634497
1    12249    523634497    17/05/2011    0:46:07        523650275
1    12250    523650275    17/05/2011    1:11:08        523746442
1    12251    523746442    17/05/2011    1:26:08        523817931
1    12252    523817931    17/05/2011    1:43:10        523844135
1    12253    523844135    17/05/2011    2:07:33        523925461
1    12254    523925461    17/05/2011    2:26:08        523985782
1    12255    523985782    17/05/2011    2:42:57        524023131
1    12256    524023131    17/05/2011    3:06:09        524118467
1    12257    524118467    17/05/2011    3:23:03        524159631
1    12258    524159631    17/05/2011    3:42:51        524216095
1    12259    524216095    17/05/2011    4:04:04        524297285
1    12260    524297285    17/05/2011    4:21:50        524330560
1    12261    524330560    17/05/2011    4:42:45        524393688
1    12262    524393688    17/05/2011    5:01:10        524491001
1    12263    524491001    17/05/2011    5:21:08        524506409
1    12264    524506409    17/05/2011    5:42:36        524587362
1    12265    524587362    17/05/2011    6:01:08        524668639
1    12266    524668639    17/05/2011    6:16:25        524684295
1    12267    524684295    17/05/2011    6:41:46        524764738
1    12268    524764738    17/05/2011    6:59:28        524861296
1    12269    524861296    17/05/2011    7:16:10        524877473
1    12270    524877473    17/05/2011    7:41:13        524958651
1    12271    524958651    17/05/2011    7:56:14        525040362
1    12272    525040362    17/05/2011    8:16:10        525056411
1    12273    525056411    17/05/2011    8:41:11        525137127
1    12274    525137127    17/05/2011    8:56:15        525233811</em></pre>
<p style="text-align: justify">On peut également interroger la vue v$loghist où l’on peut ici constater qu’il y a un switch log toutes les 15/25 min environ, ce qui reste correct.</p>
<p style="text-align: justify">
<p style="text-align: justify">Il faut donc comprendre que si la durée qui sépare les messages d’alerte de type « Basculement d’un fichier de journalisation à un autre » est courte, les fichiers sont mal dimensionnés. Il faudra donc veiller à les agrandir. C&#8217;est-à-dire supprimer les membres non actifs pour les recréer de taille plus importante. Si ce message d’alerte n’apparait que de manière occasionnelle (par exemple une fois par jour) c’est que les fichiers sont correctement taillés.</p>
<p style="text-align: justify">Si il y a beaucoup de messages d’alertes au niveau des attentes (Checkpoint not complete / All online logs needed archiving) il faudra veiller à ajouter un groupe de fichier. En effet de cette manière le processus LGWR mettra plus de temps à effectuer le tour complet des fichiers de journalisation et permettra donc au point de reprise ou à l’archivage de se terminer correctement sans attente.</p>
<p><strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/how-to-reduire-la-taille-du-journal-de-transactions-sur-disque/" rel="bookmark" title="11 juillet 2011">How-To: réduire la taille du journal de transactions sur disque</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/suppression-accidentelle-de-ligne-comment-retrouver-le-coupable/" rel="bookmark" title="6 octobre 2011">Suppression accidentelle de ligne : comment retrouver le coupable ?</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/error-8976-8978-problemes-de-chainage-comment-recuperer-les-donnees/" rel="bookmark" title="30 mai 2011">Error 8976 / 8978, problèmes de chaînage, comment récupérer les données</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/bench-avec-netapp-datacore-esx/" rel="bookmark" title="26 avril 2011">Bench avec NetApp / Datacore / ESX</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/regenerer-le-ddl-des-indexes-full-text/" rel="bookmark" title="12 octobre 2011">Regénérer le DDL des indexes FULL TEXT</a> (David BAFFALEUF) [SQL Server]</li>
</ul>
<p><!-- Similar Posts took 3.797 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fcomment-limiter-les-alertes-liees-a-la-journalisation-checkpoint-not-completed-et-compagnie%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fcomment-limiter-les-alertes-liees-a-la-journalisation-checkpoint-not-completed-et-compagnie%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/comment-limiter-les-alertes-liees-a-la-journalisation-checkpoint-not-completed-et-compagnie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abonnez-vous au blog de la CapData team !</title>
		<link>http://blog.capdata.fr/index.php/abonnez-vous-au-blog-de-la-capdata-team/</link>
		<comments>http://blog.capdata.fr/index.php/abonnez-vous-au-blog-de-la-capdata-team/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 11:48:49 +0000</pubDate>
		<dc:creator>Cédric PEINTRE</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[capdata]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=1080</guid>
		<description><![CDATA[Bonjour à tous,
Juste un petit post pour vous rappeler les différentes méthodes vous permettant de suivre l&#8217;activité débordante du blog de la capdata team :

Accès standard via la page web : http://blog.capdata.fr
Vous abonner au flux RSS du blog et être ainsi prévenu de l&#8217;arrivée des nouveaux articles : http://feeds.feedburner.com/CapDataTeamBlog
Nous suivre sur Twitter pour retrouver l&#8217;actualité [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour à tous,</p>
<p>Juste un petit post pour vous rappeler les différentes méthodes vous permettant de suivre l&#8217;activité débordante du blog de la capdata team :</p>
<ul>
<li>Accès standard via la page web : <a href="http://blog.capdata.fr" target="_blank">http://blog.capdata.fr</a></li>
<li>Vous abonner au flux RSS du blog et être ainsi prévenu de l&#8217;arrivée des nouveaux articles : <a href="http://feeds.feedburner.com/CapDataTeamBlog" target="_blank">http://feeds.feedburner.com/CapDataTeamBlog</a></li>
<li>Nous suivre sur Twitter pour retrouver l&#8217;actualité des bases de données : <a href="http://twitter.com/capdata_blog" target="_blank">http://twitter.com/capdata_blog</a></li>
</ul>
<p>Vous êtes de plus en plus nombreux à nous suivre sur ce blog technique autour des bases de données et nous vous en remercions.</p>
<p>J&#8217;en profite pour vous proposer quelques articles qui semblent avoir remportés un vif succès dernièrement :</p>
<ul>
<li><a href="http://blog.capdata.fr/index.php/jeux-de-caracteres-unicode-et-base-de-donnees/" target="_self">http://blog.capdata.fr/index.php/jeux-de-caracteres-unicode-et-base-de-donnees/</a></li>
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/" target="_self">http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/</a></li>
<li><a href="http://blog.capdata.fr/index.php/modifier-la-collation-dune-base-sql-2005/" target="_self">http://blog.capdata.fr/index.php/modifier-la-collation-dune-base-sql-2005/</a></li>
<li><a href="http://blog.capdata.fr/index.php/mysql-et-les-tables-temporaires-internes/" target="_self">http://blog.capdata.fr/index.php/mysql-et-les-tables-temporaires-internes/</a></li>
<li><a href="http://blog.capdata.fr/index.php/sybase-ase-direct-io-dsync-onoff-raw-device/" target="_self">http://blog.capdata.fr/index.php/sybase-ase-direct-io-dsync-onoff-raw-device/</a></li>
</ul>
<p>Encore une fois, n&#8217;hésitez pas à poster vos commentaires sur les articles, l&#8217;échange est la richesse du contenu.</p>
<p>A bientôt sur le blog de la capdata team !<strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/certification-sql-server-70-432-offerte/" rel="bookmark" title="25 février 2011">Voucher certification SQL Server 70-432 offert !</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/scruter-les-journaux-devenements-windows-avec-logparser/" rel="bookmark" title="12 mars 2010">Scruter les journaux d&#8217;évènements Windows avec LogParser</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/interet-de-creer-des-indexes-cluster-uniques/" rel="bookmark" title="16 mars 2010">Intérêt de créer des indexes cluster uniques</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/que-faire-des-warning-aborted-connection-avec-mysql/" rel="bookmark" title="25 mars 2010">Que faire des &laquo;&nbsp;[Warning] Aborted connection&nbsp;&raquo; avec MySQL ?</a> (Cédric PEINTRE) [MySQL]</li>
<li><a href="http://blog.capdata.fr/index.php/sybase-ase-planification-dans-adaptive-server/" rel="bookmark" title="19 juin 2009">Planification dans Adaptive Server</a> (David BAFFALEUF) [Sybase]</li>
</ul>
<p><!-- Similar Posts took 3.188 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fabonnez-vous-au-blog-de-la-capdata-team%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fabonnez-vous-au-blog-de-la-capdata-team%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/abonnez-vous-au-blog-de-la-capdata-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jeux de caractères, Unicode  et Base de données</title>
		<link>http://blog.capdata.fr/index.php/jeux-de-caracteres-unicode-et-base-de-donnees/</link>
		<comments>http://blog.capdata.fr/index.php/jeux-de-caracteres-unicode-et-base-de-donnees/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 10:31:37 +0000</pubDate>
		<dc:creator>Guillaume DEFENDINI</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[characterset]]></category>
		<category><![CDATA[jeux de caractères]]></category>
		<category><![CDATA[nchar]]></category>
		<category><![CDATA[nvarchar]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=961</guid>
		<description><![CDATA[Introduction
Un caractère est un symbole ou un signe unique appartenant à un alphabet.
Le jeu de caractères est un ensemble de caractères à représenter.
Il existe plusieurs jeux de caractères, permettant de représenter différents alphabets du monde.
Le standard ASCII
 
 
 
Afin de répertorier tous les caractères, un standard a été mis en place.
Le premier standard qui [...]]]></description>
			<content:encoded><![CDATA[<div><strong>Introduction</strong></div>
<div>Un caractère est un symbole ou un signe unique appartenant à un alphabet.</div>
<div>Le jeu de caractères est un ensemble de caractères à représenter.</div>
<div>Il existe plusieurs jeux de caractères, permettant de représenter différents alphabets du monde.</div>
<p><strong>Le standard ASCII</strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><span style="font-weight: normal;">Afin de répertorier tous les caractères, un standard a été mis en place.</span></p>
<p><span style="font-weight: normal;">Le premier standard qui voit le jour est l’ASCII. </span></p>
<p><span style="font-weight: normal;">Pour représenter des caractères dans un fichier texte, on associe un nombre (code) à une lettre, à un chiffre ou à un symbole.</span></p>
<p><span style="font-weight: normal;">L’encodage le plus connu de l’ASCII est US-ASCII. </span></p>
<p><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">A =&gt; 65 =&gt; 01000001</span></p>
<p><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">a =&gt; 97 =&gt; 01100001 </span></p>
<p><span style="font-weight: normal;">Le codage est réalisé sur 7bits/octet soit 128 symboles possibles. Une trentaine d&#8217;entre eux sont des caractères de commande, le reste est constitué de l&#8217;alphabet anglais standard, des chiffres et des ponctuations. </span></p>
<p><span style="font-weight: normal;">L’extension la plus connue est la famille ISO-8859, permettant de représenter les caractères accentués. Le codage est réalisé sur un octet complet, soit 256 caractères possibles. Les codes de 160 à 255 sont affectés au codage des caractères latins accentués.</span></p>
<p><span style="font-weight: normal;">Standards ISO-8859-1 à 15</span></p>
<p><span style="font-weight: normal;"> ISO-8859-1 puis 15 (euro): Europe de l&#8217;Ouest</span></p>
<p><span style="font-weight: normal;"> ISO-8859-2: Europe Centrale ou de l&#8217;Est</span></p>
<p><span style="font-weight: normal;"> ISO-8859-5: Cyrillique</span></p>
<p><span style="font-weight: normal;"> ISO-8859-7: Grec</span><span><span style="font-weight: normal;"> </span></span></p>
<p><span style="font-weight: normal;"><strong> </strong></span></p>
<p><strong> <span style="font-weight: normal;">Les principaux problèmes rencontrés avec ce standard sont les suivants :</span></strong></p>
<p>- On ne peut utiliser plusieurs langues à l&#8217;intérieur d&#8217;une même instance.</p>
<p><span style="font-weight: normal;">- Deux grands absents de l&#8217;ISO-Latin-1 sont la ligature oe « œ », essentielle à la typographie française correcte, et le symbole de l&#8217;euro « € ».</span></p>
<p><span style="font-weight: normal;">- Chaque constructeur d&#8217;ordinateur a aussi développé ses propres codes non conformes aux standards internationaux (IBM EBCDIC, Windows-1252,..) </span></p>
<p><strong>L’unicode</strong></p>
<p><span style="font-weight: normal;">La globalisation consiste à intégrer dans une même table tous les caractères connus du monde. </span></p>
<p><span style="font-weight: normal;">Le standard Unicode est un mécanisme universel de codage de caractères. Il définit une manière cohérente de coder des textes multilingues et facilite l’échange de données textuelles. </span></p>
<p><span style="font-weight: normal;">Il est un passage obligatoire pour la plupart des nouveaux protocoles de l’Internet, mis en œuvre dans tous les systèmes d’exploitation et langages informatiques modernes.</span></p>
<p><span style="font-weight: normal;"><span style="text-decoration: underline;">Formes de codage</span></span></p>
<p><span style="font-weight: normal;">Il existe plusieurs formes de codage de caractères pour l&#8217;Universal Character Set:</span></p>
<p><span style="font-weight: normal;">- UCS-2</span></p>
<p><span style="font-weight: normal;">- UCS-4</span></p>
<p>Cependant, les codages UCS-2 et UCS-4 sont difficiles à utiliser dans de nombreuses applications et protocoles qui travaillent avec des caractères codés sur 8 ou même 7 bits. Même certains systèmes plus récents capables de travailler avec des caractères sur 16 bits ne peuvent pas traiter les données codées en UCS-4. Cette situation a conduit au développement de formats de transformation UTF (UCS Transformation Formats). Chacun possédant ses propres caractéristiques.</p>
<p><span style="text-decoration: underline;">Encodage UTF 8</span></p>
<p><span style="font-weight: normal;">UTF-8 a été conçu par Kenneth Thompson en 1992 pour être compatible avec certains logiciels originellement prévus pour traiter des caractères d&#8217;un seul octet. </span></p>
<p><span style="font-weight: normal;">Les caractères de numéro 0 à 127 sont codés sur un octet dont le bit de poids fort est toujours nul.</span></p>
<p><span style="font-weight: normal;">Les caractères de numéro supérieur à 127 sont codés sur plusieurs octets.</span></p>
<p><span style="text-decoration: underline;">Encodage UTF 16</span></p>
<p><span style="font-weight: normal;">UTF-16 est une méthode permettant de transformer un sous-ensemble de la table UCS-4 en une paire de valeurs UCS-2 d’une plage réservée. </span></p>
<p><span style="font-weight: normal;">UTF-16 est décomposé en 2 types.</span></p>
<p><span style="font-weight: normal;">UTF-16-BE (Big-endian)</span></p>
<p><span style="font-weight: normal;">UTF-16-LE (Little-endian)</span></p>
<p><span style="font-weight: normal;">Le codage UTF-16-BE est l&#8217;un des codages préconisés par la norme Unicode. Ce codage associe simplement un code de 16 bits (2 octets) à chaque caractère.</span></p>
<p><span style="text-decoration: underline;">Encodage UTF 32</span></p>
<p><span style="font-weight: normal;">UTF-32 est un protocole pour encoder les caractères sur 32 bits. Du fait que l’UTF-32 utilise 4 bytes par caractère. </span></p>
<p><span style="font-weight: normal;">Il est aussi  décomposé en 2 types.</span></p>
<p><span style="font-weight: normal;">UTF-32-BE (Big-endian)</span></p>
<p><span style="font-weight: normal;">UTF-32-LE (Little-endian)</span></p>
<p><span style="font-weight: normal;">Il est relativement consommateur d’espace.</span></p>
<p><strong>Support SGBD</strong></p>
<p style="text-align: center;"><a href="http://blog.capdata.fr/wp-content/uploads/2010/04/unicode_sgbd.png"><img class="size-medium wp-image-962 aligncenter" src="http://blog.capdata.fr/wp-content/uploads/2010/04/unicode_sgbd-300x161.png" alt="" width="500" height="261" /></a></p>
<p><strong>Oracle</strong></p>
<p><span style="font-weight: normal;">Deux paramètres permettent de prendre en charge l’Unicode.</span></p>
<ul>
<li><span style="font-weight: normal;">Database Character Set</span></li>
<li><span style="font-weight: normal;">National Character Set</span></li>
</ul>
<p><span style="font-weight: normal;">Ces paramètres sont définis lors de la création de la base.</span></p>
<p><span style="font-weight: normal;">L’instruction CREATE DATABASE dispose de la clause character set et de la clause national character set qui permettent de déclarer le jeu de caractères qui servira de jeu de caractères de la base et de jeu de caractères nationaux. </span></p>
<p><span style="font-weight: normal;">Sans spécification de la clause national character set, le jeu AL16UTF16 sera utilisé par défaut.</span></p>
<p><span style="font-weight: normal;">Le paramètre Database Character Set ne peut pas être configuré en UTF-16.</span></p>
<p><span style="font-weight: normal;">Oracle gère l&#8217;unicode au niveau des colonnes grâce </span>National Character Set et <span style="font-weight: normal;">au types de données suivantes :</span></p>
<ul>
<li><span style="font-weight: normal;">Nchar</span></li>
<li><span style="font-weight: normal;">Nvarchar2</span></li>
<li><span style="font-weight: normal;">nclob</span></li>
</ul>
<p><strong>Sybase</strong></p>
<p><span style="font-weight: normal;">Au moment de l’installation, vous devez définir le paramètre default character set. Par défaut il est déterminé par celui utilisé sur votre server (Win = 1252, solaris =ISO 8859-1). Sybase recommande de définir UTF 8 pour ce paramètre si vous utiliser de l&#8217;unicode.</span></p>
<p><span style="font-weight: normal;">Sybase supporte la gestion de l’unicode au niveau du type de colonne à l’aide des 3 types suivants : </span></p>
<p><span style="font-weight: normal;">-</span><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">Unichar</span></p>
<p><span style="font-weight: normal;">-</span><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">Univarchar</span></p>
<p><span style="font-weight: normal;">-</span><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">Unitext</span></p>
<p><span style="font-weight: normal;">Ces 3 types de données sont encodés en UTF 16.</span></p>
<p><strong>Sql server</strong></p>
<p><span style="font-weight: normal;">Nous  allons introduire la notion de collation.</span></p>
<p><span style="font-weight: normal;"> Une collation est une table de correspondance spécifique à un jeu de caractères. </span></p>
<p><span style="font-weight: normal;">Un jeu de caractères peut avoir plusieurs collations, en général une par langue (par exemple, latin1 français, latin1 suédois). </span></p>
<p><span style="font-weight: normal;">Ce paramètre se définit à l&#8217;installation, sa valeur par défaut est en fonction de la langue de l&#8217;OS sur lequel se fait l&#8217;installation (pour les collations de type windows) : </span></p>
<p><span style="font-weight: normal;">Système en français : French_CI_AS </span></p>
<p><span style="font-weight: normal;">Système en anglais : Latin1_General_CI_AS </span></p>
<p><span style="font-weight: normal;">Il sert à déterminer la page de code utilisée dans les champs non unicode (varchar par exemple), l&#8217;ordre de tri des chaînes de caractère et aussi la sensibilité aux accents, aux majuscules, etc.</span></p>
<p><span style="font-weight: normal;">La collation paramétrée s&#8217;applique aux bases de données systèmes (master, msdb, tempdb et model) et par défaut aux nouvelles bases de données créées. Elle peut cependant être modifiée lors de la création d&#8217;une nouvelle base de données ou lors de l&#8217;ajout d&#8217;un champ texte grâce au mot clef COLLATE. </span></p>
<p>Sql server supporte la gestion de l’unicode à travers le type de colonne :</p>
<p><span style="font-weight: normal;">-</span><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">Nchar</span></p>
<p><span style="font-weight: normal;">-</span><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">Nvarchar</span></p>
<p><span style="font-weight: normal;">-</span><span><span style="font-weight: normal;"> </span></span><span style="font-weight: normal;">Ntext</span></p>
<p><strong>My sql</strong></p>
<p>MySQL détermine le jeu de caractères et la collation en fonction de l&#8217;option de configuration active quand le serveur démarre ou en fonction des valeurs de configuration à l&#8217;exécution.</p>
<p><span style="font-weight: normal;">Vous pouvez utiliser &#8211;default-character-set=character_set_name comme jeu de caractères et vous pouvez en même temps ajouter &#8211;default-collation=collation_name pour la collation. Par défaut mysql utilise les options suivante &#8211;default-charset=latin1 &#8211;collation=latin1_swedish_ci car latin1_swedish_ci est la collation par défaut de latin1.</span></p>
<p><span style="font-weight: normal;">La collation peut aussi être définie au niveau de la base ou de la colonne à l’aide de la clause collate.</span></p>
<p><span style="font-weight: normal;">En MySQL version 4.x et plus ancien, NCHAR et CHAR étaient synonymes. </span></p>
<p><span style="font-weight: normal;">MySQL utilise UTF8 comme jeu de caractère prédéfini pour les champs de types Nchar et Nvarchar .</span><strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/consistence-des-ecritures-avec-sata/" rel="bookmark" title="13 mars 2011">Consistence des écritures avec SATA</a> (David BAFFALEUF) [Operating SystemSQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/io-asynchrones-episode-1/" rel="bookmark" title="5 juillet 2011">I/O asynchrones (épisode 1)</a> (David BAFFALEUF) [Operating SystemSQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/modes-de-recuperation-et-journal-de-transactions-episode-2/" rel="bookmark" title="11 décembre 2008">Modes de récupération et journal de transactions, épisode 2</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/modes-de-recuperation-et-journal-de-transactions-episode-1/" rel="bookmark" title="13 juin 2008">Modes de récupération et journal de transactions, épisode 1</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/formation-optimisation-de-requetes/" rel="bookmark" title="22 septembre 2010">Formation Optimisation de requêtes</a> (David BAFFALEUF) [SQL Server]</li>
</ul>
<p><!-- Similar Posts took 3.413 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fjeux-de-caracteres-unicode-et-base-de-donnees%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fjeux-de-caracteres-unicode-et-base-de-donnees%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/jeux-de-caracteres-unicode-et-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un trigger fait-il parti d&#8217;une transaction ?</title>
		<link>http://blog.capdata.fr/index.php/un-trigger-fait-il-parti-dune-transaction/</link>
		<comments>http://blog.capdata.fr/index.php/un-trigger-fait-il-parti-dune-transaction/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 13:31:54 +0000</pubDate>
		<dc:creator>Cédric PEINTRE</dc:creator>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Sybase]]></category>
		<category><![CDATA[ACID]]></category>
		<category><![CDATA[atomique]]></category>
		<category><![CDATA[transaction]]></category>
		<category><![CDATA[trigger]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=430</guid>
		<description><![CDATA[C&#8217;est une question que l&#8217;on peut se poser, même si la réponse parait évidente, nous ne sommes pas à l&#8217;abri d&#8217;éventuelles surprises. Verdict à la fin de ce post !
C&#8217;est d&#8217;ailleurs une question que l&#8217;on s&#8217;est posée, autour de la machine café, et qui du coup a fait l&#8217;objet d&#8217;un petit exercice avec Oracle, SQL [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est une question que l&#8217;on peut se poser, même si la réponse parait évidente, nous ne sommes pas à l&#8217;abri d&#8217;éventuelles surprises. Verdict à la fin de ce post !</p>
<p>C&#8217;est d&#8217;ailleurs une question que l&#8217;on s&#8217;est posée, autour de la machine café, et qui du coup a fait l&#8217;objet d&#8217;un petit exercice avec Oracle, SQL Server, MySQL et Sybase&#8230; Bon, je vous rassure, nous ne faisons pas que parler bases de données pendant les pauses café mais ça arrive, parfois.</p>
<h2>Place aux tests : Un trigger fait-il parti d&#8217;une transaction ?</h2>
<h3><span style="text-decoration: underline;">Test Oracle :</span></h3>
<pre>SQL &gt; create table t2 ( cnt int );
 SQL &gt; insert into t2 values ( 0 );
 SQL &gt; commit;
 SQL &gt; create table t ( x int check ( x&gt;0 ) );</pre>
<pre>SQL &gt; create trigger t_trigger
 before insert or delete on t for each row
 begin
 if ( inserting ) then
 update t2 set cnt = cnt +1;
 else
 update t2 set cnt = cnt -1;
 end if;
 dbms_output.put_line( 'I fired and updated ' ||sql%rowcount || ' rows'  );
 end;
 /</pre>
<p><span style="text-decoration: underline;">Résultat : OUI<br />
</span></p>
<pre>SQL &gt; set serveroutput on
 SQL &gt; insert into t values (1);
 I fired and updated 1 rows
 1 row created.
 SQL &gt; insert into t values(-1);
 I fired and updated 1 rows
 insert into t values(-1)
 *
 ERROR at line 1:
 ORA-02290: check constraint (SYS_C009597) violated
 SQL &gt; select * from t2;
 CNT
 ----------
 1</pre>
<h3><span style="text-decoration: underline;">Test MS SQL Server :</span></h3>
<pre>use tempdb
 go</pre>
<pre>create table t2 ( cnt int )
 insert into  t2 values ( 0 )
 select * from t2</pre>
<pre>create table t ( x int check  ( x&gt;0 ) )</pre>
<pre>drop trigger t_trigger
 create trigger t_trigger  on t for insert
 as
 begin
 update t2 set cnt = cnt +1
 print( 'I fired and updated ' + CAST(@@ROWCOUNT AS NVARCHAR(8))  + '  rows' )
 end</pre>
<p><span style="text-decoration: underline;">Résultat : OUI<br />
</span></p>
<pre>begin tran
 insert into t values(2);
 insert into t values(-1);</pre>
<pre>(1 row(s) affected)
 I fired and updated  1 rows</pre>
<pre>(1 row(s) affected)
 Msg 547, Level 16, State  0, Line 4
 The INSERT statement conflicted with the CHECK constraint  "CK__t__x__7A5DD7C8". The conflict occurred in database "tempdb", table  "dbo.t", column 'x'.
 The statement has been terminated.</pre>
<h3><span style="text-decoration: underline;">Test MySQL (InnoDB) :</span></h3>
<p>Au passage, cela m&#8217;a permis de découvrir que les contraintes <em>CHECK </em>n&#8217;étaient  pas prises en charge par MySQL : <em>The <code>CHECK</code> clause is  parsed but ignored by all storage engines</em></p>
<pre>mysql&gt; set autocommit=off;
 Query OK, 0 rows affected (0.02  sec)</pre>
<pre>mysql&gt; use test
 Database changed
 mysql&gt; create  table t2 ( cnt int ) engine=innodb;
 Query OK, 0 rows affected (0.11  sec)</pre>
<pre>mysql&gt; insert into t2 values ( 0 );
 Query OK, 1 row  affected (0.02 sec)</pre>
<pre>mysql&gt; commit;
 Query OK, 0 rows  affected (0.11 sec)</pre>
<pre>mysql&gt; create table t ( x int primary key)  engine=innodb;
 Query OK, 0 rows affected (0.09 sec)</pre>
<pre>mysql&gt;  delimiter //</pre>
<pre>mysql&gt; create trigger t_trigger
 -&gt;             before insert on t for each row
 -&gt;              begin
 -&gt;             update t2 set cnt = cnt +1;
 -&gt;             end;
 -&gt; //
 Query OK, 0 rows affected (0.11  sec)</pre>
<pre>mysql&gt; delimiter ;</pre>
<p><span style="text-decoration: underline;">Résultat : OUI<br />
</span></p>
<pre>mysql&gt; insert into t values (1);
 Query OK, 1 row affected  (0.02 sec)</pre>
<pre>mysql&gt; insert into t values (1);
 ERROR 1062  (23000): Duplicate entry '1' for key 'PRIMARY'</pre>
<pre>mysql&gt; select *  from t2;
 +------+
 | cnt  |
 +------+
 |    1 |
 +------+
 1 row in set (0.00 sec)</pre>
<h3><span style="text-decoration: underline;">Test Sybase :<br />
</span></h3>
<pre>1&gt; create trigger T1_ins_tr on T1 for insert</pre>
<pre>2&gt; as</pre>
<pre> 3&gt; begin</pre>
<pre> 4&gt; select 1/0</pre>
<pre> 5&gt; end</pre>
<pre> 6&gt; go</pre>
<p><span style="text-decoration: underline;">Résultat : OUI<br />
</span></p>
<pre>5&gt; begin tran
 6&gt; go
 1&gt; insert into T1 values ('kjhkjhkjh')
 2&gt; go
 Msg 3607, Level 16, State 0:
 Server 'ASE1502', Procedure 'T1_ins_tr', Line 4:
 Divide by zero occurred.</pre>
<pre>-----------
 1&gt; select @@trancount
 2&gt; go</pre>
<pre>-----------
 0</pre>
<pre>(1 row affected)</pre>
<h2>Résultat des tests : LE VERDICT !</h2>
<p>Oui, un trigger fait bien parti d&#8217;une transaction, quel que soit le SGBD, enfin, au moins sur Oracle, SQL Serveur, MySQL et Sybase.</p>
<p>Je vous laisse faire vos tests sur DB2, Postgre et consorts&#8230; N&#8217;hésitez pas à nous faire un retour dans les commentaires.</p>
<p>A+<br />
Cédric<strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/mythe-sql-server-associe-un-thread-a-chaque-connexion/" rel="bookmark" title="1 août 2010">Mythe: SQL Server associe un thread à chaque connexion</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/fragmentation-sur-des-tables-stockees-en-s-gam/" rel="bookmark" title="20 août 2010">Fragmentation sur des tables stockées en S-GAM</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/saines-lectures/" rel="bookmark" title="25 août 2010">Saines lectures</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/scripting-et-smo-suite-scripter-les-objets-directement-en-t-sql/" rel="bookmark" title="3 août 2010">Scripting et SMO (suite): scripter les objets directement en T-SQL</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/sql-server-regles-dinstallation-de-base-episode-1/" rel="bookmark" title="18 juin 2009">Règles d&#8217;installation de base (épisode 1)</a> (David BAFFALEUF) [SQL Server]</li>
</ul>
<p><!-- Similar Posts took 3.578 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fun-trigger-fait-il-parti-dune-transaction%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fun-trigger-fait-il-parti-dune-transaction%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/un-trigger-fait-il-parti-dune-transaction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Création d’un Dataguard physique</title>
		<link>http://blog.capdata.fr/index.php/creation-d%e2%80%99une-physical-standby-database/</link>
		<comments>http://blog.capdata.fr/index.php/creation-d%e2%80%99une-physical-standby-database/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 14:42:12 +0000</pubDate>
		<dc:creator>Guillaume DEFENDINI</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[archive]]></category>
		<category><![CDATA[Data Guard]]></category>
		<category><![CDATA[standby]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=720</guid>
		<description><![CDATA[Configuration :
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Oracle 10GR2
PTEST : base primaire
STEST : base standby
Remarque :Toutes les opérations SQL se font connecté en tant que &#171;&#160;as sysdba&#160;&#187; 
1. Configuration  des bases en archivelog et force logging

SQL&#62; ALTER DATABASE FORCE LOGGING;
SQL&#62; alter database archivelog ;
2. Créer une sauvegarde de la base primaire
A) Créer les standby [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Configuration </strong></em>:<br />
Red Hat Enterprise Linux Server release 5.4 (Tikanga)<br />
Oracle 10GR2<br />
PTEST : base primaire<br />
STEST : base standby</p>
<p>Remarque :Toutes les opérations SQL se font connecté en tant que &laquo;&nbsp;as sysdba&nbsp;&raquo;<strong> </strong></p>
<p><strong>1. Configuration  des bases en archivelog et force logging<br />
</strong></p>
<p>SQL&gt; ALTER DATABASE FORCE LOGGING;<br />
SQL&gt; alter database archivelog ;</p>
<p><strong>2. Créer une sauvegarde de la base primaire</strong></p>
<p>A) Créer les standby controlfile<br />
SQL&gt; alter database create standby controlfile as ‘/u01/app/oracle/TEST/standby1.ctl’;</p>
<p>B) Créer les standby redo log .<br />
SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE &#8216;/u01/app/oracle/TEST/srl01.log&#8217; SIZE 10M   REUSE;<br />
SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE &#8216;/u01/app/oracle/TEST/srl02.log&#8217; SIZE 10M   REUSE;<br />
SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE &#8216;/u01/app/oracle/TEST/srl03.log&#8217; SIZE 10M   REUSE;<br />
SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE &#8216;/u01/app/oracle/TEST/srl04.log&#8217; SIZE 10M   REUSE;</p>
<p>Il est conseillé :</p>
<ul>
<li> de créer un fichier &laquo;&nbsp;standby redo log&nbsp;&raquo; de plus que les redo log</li>
<li> d&#8217;avoir une taille des standby redo log &gt;= taille des redo log</li>
</ul>
<p>C) Effectuer une sauvegarde de la base primaire ((il est possible de le faire à chaud par rman)</p>
<p>Arrêter la base primaire</p>
<p>Faire une copie physique dans un répertoire de sauvegarde des types de fichier suivants :<br />
- datafiles<br />
- online redo logs<br />
- standby controlfile<br />
- standby redolog</p>
<p>Redémarrer la base primaire</p>
<p><strong>3.  Modification ou création des  paramètres d’initialisation des bases primaire et standby</strong></p>
<p><em>Base ayant le rôle primaire (PTEST) </em>:<br />
log_archive_format=%t_%s_%r.arc<br />
log_archive_dest_2=&#8217;service=STEST LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=STEST&#8217;<br />
log_archive_config=&#8217;DG_CONFIG=(PTEST,STEST)&#8217;<br />
LOG_ARCHIVE_DEST_STATE_2=ENABLE<br />
db_name=TEST<br />
db_unique_name=PTEST<br />
fal_server=STEST<br />
fal_client=PTEST<br />
DB_FILE_NAME_CONVERT=(&#8216;/u01/app/oracle/TESTSTANDBY&#8217;,'/u01/app/oracle/TEST&#8217;)<br />
LOG_FILE_NAME_CONVERT=(&#8216;/u01/app/oracle/TESTSTANDBY&#8217;,'/u01/app/oracle/TEST&#8217;)<br />
standby_archive_dest=/u01/app/oracle/flash_recovery_area/STEST/standby_archive<br />
STANDBY_FILE_MANAGEMENT=AUTO</p>
<p><em> Base ayant le rôle standby (STEST)  :</em><br />
fal_server=PTEST<br />
fal_client=STEST<br />
DB_FILE_NAME_CONVERT=(&#8216;/u01/app/oracle/TEST&#8217;,'/u01/app/oracle/TESTSTANDBY&#8217;)<br />
LOG_FILE_NAME_CONVERT=(&#8216;/u01/app/oracle/TEST&#8217;,'/u01/app/oracle/TESTSTANDBY&#8217;)<br />
STANDBY_ARCHIVE_DEST=/u01/app/oracle/flash_recovery_area/STEST/standby_archive<br />
log_archive_format=%t_%s_%r.dbf<br />
STANDBY_FILE_MANAGEMENT=AUTO<br />
log_archive_config=&#8217;DG_CONFIG=(PTEST,STEST)&#8217;<br />
LOG_ARCHIVE_DEST_2=&#8217;service=STEST LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=PTEST&#8217;<br />
LOG_ARCHIVE_DEST_STATE_2=DEFER<br />
CONTROL_FILES=(&laquo;&nbsp;/u01/app/oracle/TESTSTANDBY/standby1.ctl&nbsp;&raquo;, &laquo;&nbsp;/u01/app/oracle/TESTSTANDBY/standby2.ctl&nbsp;&raquo;, &laquo;&nbsp;/u01/app/oracle/TESTSTANDBY/standby3.ctl&nbsp;&raquo;)</p>
<p><strong>4.  Configurer le listener, Oracle services names de la base primaire et de la standby</strong></p>
<p>A) Configurer les fichiers $ORACLE_HOME/network/admin/listener.ora pour l&#8217;enregistrement statique</p>
<p><em>listener.ora :</em></p>
<p>SID_LIST_LISTENER_PRIMARY =<br />
(SID_LIST=<br />
(SID_DESC=<br />
(GLOBAL_DBNAME=TEST)<br />
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)<br />
(SID_NAME=PTEST)<br />
)<br />
)</p>
<p>SID_LIST_LISTENER_STANDBY =<br />
(SID_LIST =<br />
(SID_DESC =<br />
(GLOBAL_DBNAME = TEST)<br />
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1 )<br />
(SID_NAME = STEST)<br />
)<br />
)</p>
<p>LISTENER_PRIMARY =<br />
(DESCRIPTION_LIST =<br />
(DESCRIPTION =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1521))<br />
)<br />
)</p>
<p>LISTENER_STANDBY =<br />
(DESCRIPTION_LIST =<br />
(DESCRIPTION =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1522))<br />
)<br />
)</p>
<p>B) Configurer les $ORACLE_HOME/network/admin/tnsnames.ora</p>
<p>STEST =<br />
(DESCRIPTION =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1522))<br />
(CONNECT_DATA =<br />
(SERVER = DEDICATED)<br />
(SERVICE_NAME =STEST)<br />
)<br />
)</p>
<p>PTEST =<br />
(DESCRIPTION =<br />
(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1521))<br />
(CONNECT_DATA =<br />
(SERVER = DEDICATED)<br />
(SERVICE_NAME =PTEST)<br />
)<br />
)</p>
<p>C) Redémarrer les listeners des deux bases.</p>
<p>$ORACLE_HOME/bin/lsnrctl start LISTENER_PRIMARY<br />
$ORACLE_HOME/bin/lsnrctl start LISTENER_STANDBY</p>
<p><strong>5. Copie du fichier de mot de passe ou génération avec $ORACLE_HOME/bin/orapwd<br />
</strong></p>
<p><strong>6. Faire un startup mount de la base standby :</strong></p>
<p>SQL&gt; startup mount</p>
<p><strong>7. </strong> <strong>Démarrer le recovery sur la base standby</strong></p>
<p>A l’aide de la commande suivante :<br />
SQL&gt; alter database recover managed standby database disconnect from session;</p>
<ul>
<li>Dès qu’un archive log est transmis par la base primaire, la base standby commence à effectuer le recovery.</li>
<li>L’option “disconnect from session” permet de garder la main sur la session SQL dans laquelle la commande a été exécutée, le process est alors lancé en background.</li>
</ul>
<p><strong> 8.  Vérifier le transport des journaux</strong></p>
<p>En forçant la création d’un archive log sur la base primaire :<br />
SQL&gt; alter system archive log current ;<br />
L’archive log est alors transmis vers le répertoire d’archive de la base standby, et cette dernière fait automatiquement un recovery à partir du log transmis.</p>
<p><strong>9. </strong><strong>Vérifier que le data Guard fonctionne </strong></p>
<p>en exécutant la requête suivante sur le primary et sur la standby:<br />
SQL&gt; select max(sequence#) from v$log_history;</p>
<div style="overflow: hidden; width: 1px; height: 1px;">
<h1><a name="p"></a><span lang="EN-GB"> </span></h1>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><em>Remarques :</em></p>
<p class="MsoNormal">
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"><!--[if !supportLists]--><span>-<span> </span></span><!--[endif]-->Dans notre démarche nous adopterons la dénomination suivante:</p>
<p class="MsoNormal" style="text-indent: 35.45pt;">PTEST : base primaire</p>
<p class="MsoNormal" style="text-indent: 35.45pt;">STEST : base standby</p>
<p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"><!--[if !supportLists]--><span><span>-<span> </span></span></span><!--[endif]-->Toutes les opérations SQL se font connecté en tant que <strong><em>sys as sysdba</em></strong></p>
<p class="MsoNormal">
<h2><a name="_Toc255820650"></a></h2>
<p class="MsoNormal">
<p class="SQL"><span> </span><span lang="EN-GB">SQL&gt; </span>ALTER DATABASE FORCE LOGGING;</p>
<p class="SQL"><span> </span>SQL&gt; alter database archivelog ;</p>
<blockquote cite="4B94FA71.9070302@capdata.fr">
<h2><a name="_Toc255820651"></a></h2>
<h2><a name="_Toc255820652"></a></h2>
<p class="MsoNormal">
<p class="Titredesection"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Créer les standby controlfile</p>
<p class="MsoNormal">
<p class="SQL"><span> </span><span lang="EN-GB">SQL&gt; alter database create standby controlfile as</span></p>
<p class="SQL"><span lang="EN-GB"><span> </span><span> </span><span> </span>‘/u01/app/oracle/TEST/standby1.ctl’;</span></p>
<p><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><span style="font-size: 10pt;" lang="EN-GB"> </span></p>
<p class="MsoNormal" style="margin-left: 18pt;"><em><span style="font-size: 10pt;" lang="EN-US"> </span></em></p>
<p class="Titredesection" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]--><span lang="EN-US"><span> </span></span>Créer les standby redo log .</p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE</span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>&#8216;/u01/app/oracle/TEST/srl01.log&#8217; SIZE 10M<span> </span>REUSE;</span></p>
<p class="SQL"><span lang="EN-GB"><span> </span></span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE</span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>&#8216;/u01/app/oracle/TEST/srl02.log&#8217; SIZE 10M<span> </span>REUSE;</span></p>
<p class="SQL"><span lang="EN-GB"> </span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE</span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>&#8216;/u01/app/oracle/TEST/srl03.log&#8217; SIZE 10M<span> </span>REUSE;</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>SQL&gt; ALTER DATABASE ADD STANDBY LOGFILE</span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>&#8216;/u01/app/oracle/TEST/srl04.log&#8217; SIZE 10M<span> </span>REUSE;</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal"><em><span style="font-size: 10pt;">Il est conseillé de créer un fichier stand by redo log de plus que les redo log afin d’éviter un problème en cas de saturation des redo log</span></em></p>
<p class="MsoNormal"><em><span style="font-size: 10pt;"> </span></em></p>
<p class="Titredesection"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Arrêter la base primaire ((il est possible de le faire à chaud par rman)</p>
<p class="MsoNormal">
<p class="Titredesection" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Faire une copie physique dans un répertoire de sauvegarde des types de fichier suivants :</p>
<p class="MsoNormal">
<p class="MsoNormal" style="margin-left: 53.45pt; text-indent: -18pt;"><!--[if !supportLists]--><span>-<span> </span></span><!--[endif]-->datafiles</p>
<p class="MsoNormal" style="margin-left: 53.45pt; text-indent: -18pt;"><!--[if !supportLists]--><span>-<span> </span></span><!--[endif]-->online redo logs</p>
<p class="MsoNormal" style="margin-left: 53.45pt; text-indent: -18pt;"><!--[if !supportLists]--><span>-<span> </span></span><!--[endif]-->standby controlfile</p>
<p class="MsoNormal" style="margin-left: 53.45pt; text-indent: -18pt;"><!--[if !supportLists]--><span>-<span> </span></span><!--[endif]-->standby redolog</p>
<p class="MsoNormal">
<p class="Titredesection"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Redémarrer la base primaire</p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<h2><a name="_Toc255820653"></a></h2>
<p class="MsoNormal">
<p class="MsoNormal"><span style="text-decoration: underline;">Base ayant le rôle <strong>primaire</strong> (PTEST)</span> :</p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt;">
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">log_archive_format</span></strong><strong><span lang="EN-GB">=%t_%s_%r.arc</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">log_archive_dest_2</span></strong><strong><span lang="EN-GB">=&#8217;service=STEST LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=STEST&#8217;</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">log_archive_config</span></strong><strong><span lang="EN-GB">=&#8217;DG_CONFIG=(PTEST,STEST)&#8217;</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">LOG_ARCHIVE_DEST_STATE_2</span></strong><strong><span lang="EN-GB">=ENABLE</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">dg_broker_start</span></strong><strong><span lang="EN-GB"> = TRUE</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">db_name=</span></strong><strong><span lang="EN-GB">TEST<span style="color: #f79646;"> </span></span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">db_unique_name</span></strong><strong><span lang="EN-GB">=PTEST</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB"> </span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">### Primary database standby role parameters ###</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">fal_server</span></strong><strong><span lang="EN-GB">=STEST</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">fal_client</span></strong><strong><span lang="EN-GB">=PTEST</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">DB_FILE_NAME_CONVERT</span></strong><strong><span lang="EN-GB">=(&#8216;/u01/app/oracle/TESTSTANDBY&#8217;,'/u01/app/oracle/TEST&#8217;)</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">LOG_FILE_NAME_CONVERT</span></strong><strong><span lang="EN-GB">=(&#8216;/u01/app/oracle/TESTSTANDBY&#8217;,'/u01/app/oracle/TEST&#8217;)</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">standby_archive_dest</span></strong><strong><span lang="EN-GB">=/u01/app/oracle/flash_recovery_area/STEST/standby_archive</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">STANDBY_FILE_MANAGEMENT</span></strong><strong><span lang="EN-GB">=AUTO</span></strong><strong><span> </span></strong></p>
</div>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal"><span style="text-decoration: underline;">Base ayant le rôle <strong>standby</strong> (STEST)</span> :</p>
<p class="MsoNormal">
<p class="MsoNormal">
<div style="border: 1pt solid windowtext; padding: 1pt 4pt;">
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">### Standby database standby role parameters ###</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">fal_server</span></strong><strong><span lang="EN-GB">=PTEST</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">fal_client</span></strong><strong><span lang="EN-GB">=STEST</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">DB_FILE_NAME_CONVERT</span></strong><strong><span lang="EN-GB">=(&#8216;/u01/app/oracle/TEST&#8217;,'/u01/app/oracle/TESTSTANDBY&#8217;)</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">LOG_FILE_NAME_CONVERT</span></strong><strong><span lang="EN-GB">=(&#8216;/u01/app/oracle/TEST&#8217;,'/u01/app/oracle/TESTSTANDBY&#8217;)</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">STANDBY_ARCHIVE_DEST</span></strong><strong><span lang="EN-GB">=/u01/app/oracle/flash_recovery_area/STEST/standby_archive</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">log_archive_format</span></strong><strong><span lang="EN-GB">=%t_%s_%r.dbf</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">STANDBY_FILE_MANAGEMENT</span></strong><strong><span lang="EN-GB">=AUTO</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">log_archive_config</span></strong><strong><span lang="EN-GB">=&#8217;DG_CONFIG=(PTEST,STEST)&#8217;</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB"> </span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">### Standby database primary role parameters ###</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">LOG_ARCHIVE_DEST_2</span></strong><strong><span lang="EN-GB">=&#8217;service=STEST LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=PTEST&#8217;</span></strong></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><strong><span lang="EN-GB">LOG_ARCHIVE_DEST_STATE_2</span></strong><strong><span lang="EN-GB">=DEFER</span></strong><strong><span> </span></strong></p>
</div>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal">
<h2><a name="_Toc255820654"></a></h2>
<p class="MsoNormal">
<p class="Titredesection" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Configurer les fichiers listener.ora situés sous $ORACLE_HOME/network/admin</p>
<p class="MsoNormal">
<p class="MsoNormal" style="margin-left: 18pt;"><span>Si le port du <em>listener</em> de l’instance n’est pas 1521, la valeur du paramètre LOCAL_LISTENER doit être renseignée.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-US">Listener.ora</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt;">
<p><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">SID_LIST_LISTENER_PRIMARY =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_LIST=</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_DESC=</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span><span> </span>(GLOBAL_DBNAME=TEST)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_NAME=PTEST)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">SID_LIST_LISTENER_STANDBY =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_LIST =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span></span><span>(SID_DESC =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_NAME = PLSExtProc)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(PROGRAM = extproc)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_DESC =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(GLOBAL_DBNAME = TEST)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1 )</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID_NAME = STEST)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span></span><span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">LISTENER_PRIMARY =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(DESCRIPTION_LIST =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(DESCRIPTION =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1521))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">LISTENER_STANDBY =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">(DESCRIPTION_LIST =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(DESCRIPTION =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1522))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span></span><span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span><span> </span>)</span></p>
</div>
<p class="MsoNormal">
<p class="Titredesection" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Configurer les tnsnames.ora</p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt;">
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">STEST =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(DESCRIPTION =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1522))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(CONNECT_DATA =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SERVER = DEDICATED)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span><span> </span>(SERVICE_NAME =STEST)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">PTEST =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(DESCRIPTION =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = TCP)(HOST = LINUX-ORA10-DATAGUARD-PRIMARY)(PORT = 1521))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(CONNECT_DATA =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SERVER = DEDICATED)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SERVICE_NAME =PTEST)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US">EXTPROC_CONNECTION_DATA =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(DESCRIPTION =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS_LIST =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(CONNECT_DATA =</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(SID = PLSExtProc)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span>(PRESENTATION = RO)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span lang="EN-US"><span> </span></span><span>)</span></p>
<p class="MsoNormal" style="border: medium none; padding: 0cm;"><span><span> </span>)</span></p>
</div>
<p class="MsoNormal">
<p class="MsoNormal">Redémarrer les listeners des deux bases.</p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-US">&gt;Lsnrctl start LISTENER_PRIMARY</span></p>
<p class="MsoNormal"><span lang="EN-US">&gt;Lsnrctl start LISTENER_STANDBY</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<h2><a name="_Toc255820655"></a></h2>
<p class="MsoNormal">
<p class="SQL"><span lang="EN-GB">SQL&gt; create spfile from pfile=’/u01/app/oracle/admin/PTEST/pfileinitGUARD2.ora’ ;</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="Titredesection"><!--[if !supportLists]--><span style="font-family: Symbol;"> </span><!--[endif]-->Faire un startup nomount de la base standby, puis la monter en mode standby:</p>
<p class="MsoNormal">
<p class="SQL"><span> </span><span lang="EN-US">SQL&gt; startup nomount</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="SQL"><span lang="EN-GB"><span> </span>SQL&gt; alter database mount standby database ;</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="MsoNormal">
<h2><a name="_Toc255820656"></a></h2>
<p class="MsoNormal">
<p class="PucesLBi"><!--[if !supportLists]--><span style="font-family: Wingdings; color: #3366ff;"><span>§<span> </span></span></span><!--[endif]-->A l’aide de la commande suivante :</p>
<p class="MsoNormal">
<p class="SQL" style="margin-left: 35.45pt;"><span lang="EN-GB">SQL&gt; alter database recover managed standby database disconnect from session;</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p>
<p class="PucesLBi" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Wingdings; color: #3366ff;"><span>§<span> </span></span></span><!--[endif]-->Dès qu’un archive log est transmis par la base primaire, la base standby commence à effectuer le recovery.</p>
<p class="MsoNormal">
<p class="PucesLBi" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Wingdings; color: #3366ff;"><span>§<span> </span></span></span><!--[endif]-->L’option “disconnect from session” permet de garder la main sur la session SQL dans laquelle la commande a été exécutée, le process est alors lancé en background.</p>
<p class="MsoNormal" style="margin-left: 18pt;">
<p class="PucesLBi" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Wingdings; color: #3366ff;"><span>§<span> </span></span></span><!--[endif]-->Démarrer le transport des redo logs en forçant la création d’un archive log sur la base primaire :</p>
<p class="MsoNormal" style="margin-left: 18pt;">
<p class="SQL"><span> </span><span lang="EN-US">SQL&gt; alter system archive log current ;</span></p>
<p class="MsoNormal" style="margin-left: 18pt;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: justify;">L’archive log est alors transmis vers le répertoire d’archive de la base standby, et cette dernière fait automatiquement un recovery à partir du log transmis.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="PucesLBi" style="text-align: justify;"><!--[if !supportLists]--><span style="font-family: Wingdings; color: #3366ff;"><span>§<span> </span></span></span><!--[endif]-->Vérifier que le dataguard fonctionne en exécutant la requête suivante <span style="text-decoration: underline;">sur le primary et sur la standby</span>:</p>
<p class="MsoNormal" style="margin-left: 18pt;">
<p class="SQL"><span> </span><span lang="EN-US">SQL&gt; select max(sequence#) from v$log_history;</span></p>
</blockquote>
</div>
<p><strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/oracle-les-rpms-et-les-dependances-avec-yum/" rel="bookmark" title="6 novembre 2009">Oracle, les Rpms plus de souci avec YUM</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/" rel="bookmark" title="5 juin 2009">Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/sybase-ase-direct-io-dsync-onoff-raw-device/" rel="bookmark" title="18 juin 2009">Direct i/o, dsync on/off, raw device</a> (David BAFFALEUF) [Sybase]</li>
<li><a href="http://blog.capdata.fr/index.php/suppression-accidentelle-de-ligne-comment-retrouver-le-coupable/" rel="bookmark" title="6 octobre 2011">Suppression accidentelle de ligne : comment retrouver le coupable ?</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/how-to-reduire-lenveloppe-de-tempdb/" rel="bookmark" title="7 juillet 2011">How-To : réduire l&#8217;enveloppe de tempdb</a> (David BAFFALEUF) [SQL Server]</li>
</ul>
<p><!-- Similar Posts took 3.344 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fcreation-d%25e2%2580%2599une-physical-standby-database%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fcreation-d%25e2%2580%2599une-physical-standby-database%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/creation-d%e2%80%99une-physical-standby-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation Oracle 11gR2 64 bits sur Red Hat 5 Partie 1</title>
		<link>http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/</link>
		<comments>http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 16:41:04 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[11gR2]]></category>
		<category><![CDATA[asm]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[Red Hat]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=654</guid>
		<description><![CDATA[Cet article est écrit par Thierry GASCARD.
Il sera composé de trois parties :
- installation Oracle Grid Infrastructure 11gR2
- installation Oracle Database 11gR2
- utilisation Oracle Restart
1.  Configuration système
1.1 Pré-requis matériel :
-  5 Go pour les binaires Oracle en RAID 10
-  400 Mo sur /tmp
-  disques pour ASM
1.2 Noyau linux utilisé
RH 5 Entreprise 64 Bits Update 4
1.3 [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est écrit par Thierry GASCARD.<br />
Il sera composé de trois parties :<br />
- installation Oracle Grid Infrastructure 11gR2<br />
- installation Oracle Database 11gR2<br />
- utilisation Oracle Restart</p>
<p><strong>1.  Configuration système</strong></p>
<p>1.1 Pré-requis matériel :</p>
<p>-  5 Go pour les binaires Oracle en RAID 10<br />
-  400 Mo sur /tmp<br />
-  disques pour ASM</p>
<p>1.2 Noyau linux utilisé</p>
<p>RH 5 Entreprise 64 Bits Update 4</p>
<p>1.3 Pré-requis noyau</p>
<p>SELinux désactivé<br />
X installé et configuré<br />
Rpms suivants installés en plus des Rpms par défaut (version minimum) :<br />
binutils-2.17.50.0.6-12.el5  (x86_64)<br />
compat-libstdc++-33-3.2.3-61  (x86_64)<br />
compat-libstdc++-33-3.2.3-61  (i386)<br />
elfutils-libelf-0.137-3.el5  (x86_64)<br />
elfutils-libelf-0.137-3.el5  (i386)<br />
elfutils-libelf-devel-0.137-3.el5  (i386)<br />
elfutils-libelf-devel-0.137-3.el5  (x86_64)<br />
elfutils-libelf-devel-static-0.137-3.el5  (i386)<br />
elfutils-libelf-devel-static-0.137-3.el5  (x86_64)<br />
gcc-4.1.2-46.el5  (x86_64)<br />
gcc-c++-4.1.2-46.el5  (x86_64)<br />
glibc-2.5-42  (i686)<br />
glibc-2.5-42  (x86_64)<br />
glibc-common-2.5-42  (x86_64)<br />
glibc-devel-2.5-42  (x86_64)<br />
glibc-devel-2.5-42  (i386)<br />
glibc-headers-2.5-42  (x86_64)<br />
ksh-20080202-14.el5  (x86_64)<br />
libaio-0.3.106-3.2  (x86_64)<br />
libaio-0.3.106-3.2  (i386)<br />
libaio-devel-0.3.106-3.2  (i386)<br />
libaio-devel-0.3.106-3.2  (x86_64)<br />
libgcc-4.1.2-46.el5  (x86_64)<br />
libgcc-4.1.2-46.el5  (i386)<br />
libstdc++-4.1.2-46.el5  (x86_64)<br />
libstdc++-4.1.2-46.el5  (i386)<br />
libstdc++-devel-4.1.2-46.el5  (x86_64)<br />
libstdc++-devel-4.1.2-46.el5  (i386)<br />
make-3.81-3.el5  (x86_64)<br />
sysstat-7.0.2-3.el5  (x86_64)<br />
unixODBC-2.2.11-7.1  (x86_64)<br />
unixODBC-2.2.11-7.1  (i386)<br />
unixODBC-devel-2.2.11-7.1  (x86_64)<br />
unixODBC-devel-2.2.11-7.1  (i386)</p>
<p>La commande suivante nous donne des informations sur les Rpms nécessaires :<br />
rpm -q &#8211;qf &#8216;%{NAME}-%{VERSION}-%{RELEASE}  (%{ARCH})\n&#8217; \<br />
binutils compat-libstdc++-33-3.2.* elfutils-libelf elfutils-libelf-devel \<br />
elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers \<br />
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel</p>
<p>Rem : attention à la présence de rpms 32 bits : utilisation possible de l’option force : rpm -ivh –force ..</p>
<p>1.4 Configuration des limites systèmes</p>
<p>[root@]# cat &gt;&gt; /etc/security/limits.conf &lt;&lt;EOF<br />
grid soft nproc 2047<br />
grid hard nproc 16384<br />
grid soft nofile 1024<br />
grid hard nofile 65536<br />
EOF</p>
<p>[root@]# cat &gt;&gt; /etc/pam.d/login &lt;&lt;EOF<br />
session    required     pam_limits.so<br />
EOF</p>
<p>[root@]# cat &gt;&gt; /etc/profile &lt;&lt;EOF<br />
if [ \$USER = "oracle" ] || [ \$USER = "grid" ]; then<br />
if [ \$SHELL = "/bin/ksh" ]; then<br />
ulimit -p 16384<br />
ulimit -n 65536<br />
ulimit -n 25165824<br />
else<br />
ulimit -u 16384 -n 65536 -l 25165824<br />
fi<br />
umask 022<br />
fi<br />
EOF</p>
<p>1.5 Configuration du serveur pour oracle</p>
<p>[root@]# cat &gt;&gt; /etc/sysctl.conf &lt;&lt;EOF<br />
kernel.shmmax=25769803776 &#8212; soit 24 Go<br />
kernel.shmall=6291456 &#8212; avec taille de 4ko soit 24 Go<br />
kernel.shmmni = 4096<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 6815744<br />
net.ipv4.ip_local_port_range = 9000 65500<br />
net.core.rmem_default=262144<br />
net.core.rmem_max=4194304<br />
net.core.wmem_default=262144<br />
net.core.wmem_max=1048576<br />
fs.aio-max-nr=1048576<br />
EOF</p>
<p><strong>2.   Préparation système</strong></p>
<p>2.1 Création groupe oinstall,asmadmin,asmdba,asmoper</p>
<p>[root@]# groupadd -g 1000 oinstall<br />
[root@]# groupadd -g 1200 asmadmin<br />
[root@]# groupadd -g 1201 asmdba<br />
[root@]# groupadd -g 1202 asmoper</p>
<p>2.2   Création utilisateur grid</p>
<p>[root@]# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c &laquo;&nbsp;Grid Infrastructure Owner&nbsp;&raquo; grid<br />
[root@]# id grid<br />
[root@]# passwd grid</p>
<p>2.3 Vérification de l&#8217;existence de l&#8217;utilisateur nobody</p>
<p>[root@]# id nobody</p>
<p>2.4    Création des répertoires</p>
<p>[root@]# mkdir -p /capdata/app/grid<br />
[root@]# mkdir -p /capdata/app/11.2.0/grid<br />
[root@]# chown -R grid:oinstall /capdata<br />
[root@]# chmod -R 775 /capdata</p>
<p>2.4 Mise à jour du profile de l&#8217;utilisateur grid</p>
<p>export ORACLE_SID=+ASM<br />
export ORACLE_BASE=/capdata/app/grid<br />
export ORACLE_HOME=/capadata/app/11.2.0/grid<br />
export ORA_NLS11=$ORACLE_HOME/nls/data<br />
export PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin<br />
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib<br />
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib<br />
export TEMP=/tmp<br />
export TMPDIR=/tmp<br />
umask 022</p>
<p><strong>3. Installation et configuration de la librairie ASM</strong><br />
3.1   Téléchargement</p>
<p>En fonction du noyau linux (uname -r), télécharger les rpms ASM sur le site <a href="http://www.oracle.com/technology/tech/linux/asmlib/" target="_blank">Oracle d&#8217;asm </a><br />
- ASMLib Kernel Driver<br />
- Userspace Library<br />
- Driver Support Files</p>
<p>3.2   Installation</p>
<p>[root@]#rpm -Uvh oracleasm*</p>
<p>3.2   Configuration</p>
<p>[root@]# /usr/sbin/oracleasm configure -i<br />
..<br />
Default user to own the driver interface []: <strong>grid</strong><br />
Default group to own the driver interface []: <strong>asmadmin</strong><br />
Start Oracle ASM library driver on boot (y/n) [n]: <strong>y</strong><br />
Scan for Oracle ASM disks on boot (y/n) [y]: <strong>y</strong><br />
Writing Oracle ASM library driver configuration: done</p>
<p>puis chargement<br />
[root@]# /usr/sbin/oracleasm init</p>
<p>3.2   Création des disques ASM<br />
a &#8211; partitionnement des LUNs EMC</p>
<p>J&#8217;effectue un alignement des partitions en enlevant les 256 premiers secteurs de disques soit 128 Ko</p>
<p>[root@]# /sbin/parted /dev/emcpowera<br />
mklabel msdos<br />
unit s<br />
mkpart primary 256 -1s<br />
print<br />
quit</p>
<p>[root@]# /sbin/parted /dev/emcpowerb<br />
mklabel msdos<br />
unit s<br />
mkpart primary 256 -1s<br />
print<br />
quit</p>
<p>b- création des disques ASM</p>
<p>[root@]# /usr/sbin/oracleasm createdisk DATA_DISK1 /dev/emcpowera1<br />
[root@]# /usr/sbin/oracleasm createdisk BACK_DISK1 /dev/emcpowerb1</p>
<p><strong>4. Installation d&#8217;Oracle Grid Infrasture 11gR2</strong></p>
<p>[grid@]# ./runInstaller &amp;</p>
<p>Ordre d’installation<br />
1. Installation Option : « Install and Configure for Standalone Server »<br />
2. Product Languages : « english, french »<br />
3. Create ASM Disk Group : « DATA,BACK »<br />
4. ASM passwaord  : «same password»<br />
5. Operating system Group : « asmdba,asmoper,asmadmin »<br />
6. Installation location :<br />
ORACLE_BASE : /capdata/app/grid<br />
ORACLE_HOME : /capadata/app/11.2.0/grid<br />
7. Prerequisite checks :<br />
Génération d&#8217;un script fixit.sh pour fixer d&#8217;événtuel problème<br />
8. Summary<br />
9. Setup<br />
Lancement de deux scripts sous root<br />
[root@]# /capdata/app/oraInventory/orainstRoot.sh<br />
[root@]# /capdata/app/11.2.0/grid/root.sh<br />
10.Finish</p>
<p>Et voilà pour la première partie&#8230;.<strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/" rel="bookmark" title="5 juin 2009">Installation Oracle 64 bits sur Red Hat 5</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/" rel="bookmark" title="12 juin 2008">Se connecter à SQL Server à travers Oracle, quelle drôle d&#8217;idée ?</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/" rel="bookmark" title="5 juin 2009">Création et utilisation d&#8217;OCFS2</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/" rel="bookmark" title="5 juin 2009">Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/utiliser-asmcmd/" rel="bookmark" title="5 juin 2009">Utiliser ASMCMD</a> (Thierry GASCARD) [Oracle]</li>
</ul>
<p><!-- Similar Posts took 3.615 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Finstallation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Finstallation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle, les Rpms plus de souci avec YUM</title>
		<link>http://blog.capdata.fr/index.php/oracle-les-rpms-et-les-dependances-avec-yum/</link>
		<comments>http://blog.capdata.fr/index.php/oracle-les-rpms-et-les-dependances-avec-yum/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 15:58:02 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[public-yum]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://blog.capdata.fr/?p=288</guid>
		<description><![CDATA[Un truc sympa, vous en avez marre d&#8217;installer des rpms avec Oracle ou des soucis de dépendance ..
La solution http://public-yum.oracle.com  et YUM.
[root@OEL5-ORA1 yum.repos.d]# cd /etc/yum.repos.d
[root@OEL5-ORA1 yum.repos.d]#wget http://public-yum.oracle.com/public-yum-el5.repo
car j&#8217;utilise OEL 5 Update 4
[root@OEL5-ORA1 ~]# cat /etc/enterprise-release
Enterprise Linux Enterprise Linux Server release 5.4 (Carthage)
Je vais modifier le fichier public-yum-el5.repo en mettant enabled=1 pour ma version el5_u4_base
vi [...]]]></description>
			<content:encoded><![CDATA[<p>Un truc sympa, vous en avez marre d&#8217;installer des rpms avec Oracle ou des soucis de dépendance ..</p>
<p>La solution <a href="http://public-yum.oracle.com/">http://public-yum.oracle.com </a> et YUM.</p>
<p><em>[root@OEL5-ORA1 yum.repos.d]#</em><em> cd /etc/yum.repos.d<br />
[root@OEL5-ORA1 yum.repos.d]#</em><em>wget http://public-yum.oracle.com/public-yum-el5.repo</em></p>
<p>car j&#8217;utilise OEL 5 Update 4</p>
<p>[root@OEL5-ORA1 ~]# cat /etc/enterprise-release<em><br />
Enterprise Linux Enterprise Linux Server release 5.4 (Carthage)</em></p>
<p>Je vais modifier le fichier public-yum-el5.repo en mettant enabled=1 pour ma version <em>el5_u4_base</em></p>
<p>vi public-yum-el5.repo</p>
<p><em>&#8230;<br />
</em></p>
<p><em>[el5_u4_base]<br />
name=Enterprise Linux $releasever U4 &#8211; $basearch &#8211; base<br />
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/4/base/$basearch/<br />
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5<br />
gpgcheck=1<br />
<strong>enabled=1</strong></em></p>
<p><em>&#8230;</em></p>
<p>[root@OEL5-ORA1 yum.repos.d]# yum list oracleasm<br />
<em>Loaded plugins: security<br />
Error: No matching Packages to list<br />
ocfs2 packages are not available. Let’s install it now</em></p>
<p>[root@OEL5-ORA1 yum.repos.d]# yum install oracleasm</p>
<p><em>Loaded plugins: security<br />
Setting up Install Process<br />
Package oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686 already installed and latest version<br />
Nothing to do</em></p>
<p>Quel plaisir <img src='http://blog.capdata.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <em><br />
</em><strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/creation-d%e2%80%99une-physical-standby-database/" rel="bookmark" title="8 mars 2010">Création d’un Dataguard physique</a> (Guillaume DEFENDINI) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/" rel="bookmark" title="5 juin 2009">Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/reperer-un-package-ssis-lors-de-son-execution/" rel="bookmark" title="30 juin 2011">Repérer un package SSIS lors de son exécution</a> (Louis HOCHBERG) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/replication-sql-server-retrouver-la-vilaine-transaction-en-echec/" rel="bookmark" title="21 septembre 2009">Retrouver une transaction en échec</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/pourquoi-il-faut-sauvegarder-les-bases-systemes/" rel="bookmark" title="3 juillet 2011">Pourquoi il faut sauvegarder les bases systèmes</a> (David BAFFALEUF) [SQL Server]</li>
</ul>
<p><!-- Similar Posts took 3.837 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Foracle-les-rpms-et-les-dependances-avec-yum%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Foracle-les-rpms-et-les-dependances-avec-yum%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/oracle-les-rpms-et-les-dependances-avec-yum/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Création et utilisation d&#8217;OCFS2</title>
		<link>http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/</link>
		<comments>http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 14:26:12 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[CFS]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[OCFS2]]></category>
		<category><![CDATA[rac]]></category>
		<category><![CDATA[suse]]></category>

		<guid isPermaLink="false">https://www.alldb.fr/blogs/?p=103</guid>
		<description><![CDATA[Cet article est écrit par Thierry GASCARD.

Nous allons créer un système de fichiers supportant le cluster (Cluster FileSystem).
L&#8217;OS utilisé est une SUSE 10 en 64 bits.
1. Installation du driver OCFS2
A effectuer via l’utilisateur système root.
OCFS2 1.4 est compris dans la distribution SLES10 SP2.
sinon sous les autres linux :
Déterminer la version du noyau : uname –rm
Rechercher [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est écrit par <a href="mailto:tgascard@capdata.fr" target="_blank">Thierry GASCARD.<br />
</a></p>
<p>Nous allons créer un système de fichiers supportant le cluster (Cluster FileSystem).<br />
L&#8217;OS utilisé est une SUSE 10 en 64 bits.</p>
<h1>1. Installation du driver OCFS2</h1>
<p>A effectuer via l’utilisateur système root.<br />
OCFS2 1.4 est compris dans la distribution SLES10 SP2.<br />
sinon sous les autres linux :<br />
Déterminer la version du noyau : uname –rm<br />
Rechercher les drivers sur le site d’<a href="http://oss.oracle.com/projects/ocfs2/" target="_blank">Oracle</a><br />
Télécharger les fichiers correspondants à la plate forme et la version du noyau (ici RH5 64 bits)</p>
<ul>
<li>ocfs2-tools-1.4.1-1.el5.x86_64.rpm</li>
<li>ocfs2console-1.4.1-1.el5.x86_64.rpm</li>
<li>ocfs2-2.6.18-128.1.1.el5-1.4.1-1.el5.x86_64.rpm</li>
</ul>
<p>Installer les RPMs sur chaque noeud :<br />
<em>rpm -Uvh ocfs2*.rpm</em><br />
vérifier l’installation<br />
<em> chkconfig &#8211;list o2cb</em></p>
<h1>2. Configuration OCFS2</h1>
<p>1) Sur un des nœuds en x window lancer ocfs2console puis cluster/configure node<br />
ajouter hostname1   x.x.x<br />
ajouter hostname2   x.x.x<br />
puis propager la configuration<br />
Rem : attention au nom de domaine<br />
2) vérifier sur chaque nœud le fichier /etc/ocfs2/cluster.conf<br />
3) configurer le service o2cb sur chaque nœud en root<br />
<em>/etc/init.d/o2cb configure </em></p>
<p>puis répondre y et accepter les valeurs par défaut sauf Use user-space driven heartbeat? (y/n) [y] n</p>
<h1>3. Formater la partition en OCFS2 sur un nœud</h1>
<p>en x window lancer ocfs2console  puis task/format</p>
<ul>
<li> /dev/emcpowerd</li>
<li> label : oracle</li>
<li> cluster size : 128 K</li>
<li> block size 4k</li>
</ul>
<h1>4. Monter le système de fichiers OCFS2</h1>
<p>1) créer un point de montage sur chaque nœud<br />
<em>mkdir /ocfs</em><br />
2) ajouter dans /etc/fstab, voire la note metalink <span style="helvetica;"><strong>835839.1</strong></span><br />
/dev/emcpowerd /ocfs    ocfs2    _netdev,datavolume,nointr,noatime 0 0</p>
<p>les options correspondent avec ocfs2 1.4.1  :</p>
<ul>
<li> datavolume : utilisation des &laquo;&nbsp;direct IO&nbsp;&raquo;</li>
<li> _netdev : montage après le réseau</li>
<li> nointr: désactive les siganux durant les opération de cluster</li>
<li>noatime : désactive la mise à jour de l&#8217;heure</li>
</ul>
<p><strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/" rel="bookmark" title="5 juin 2009">Installation Oracle 64 bits sur Red Hat 5</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/" rel="bookmark" title="12 juin 2008">Se connecter à SQL Server à travers Oracle, quelle drôle d&#8217;idée ?</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/" rel="bookmark" title="3 mars 2010">Installation Oracle 11gR2 64 bits sur Red Hat 5 Partie 1</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/" rel="bookmark" title="5 juin 2009">Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/utiliser-asmcmd/" rel="bookmark" title="5 juin 2009">Utiliser ASMCMD</a> (Thierry GASCARD) [Oracle]</li>
</ul>
<p><!-- Similar Posts took 3.699 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fcreation-et-utilisation-docfs2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fcreation-et-utilisation-docfs2%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser ASMCMD</title>
		<link>http://blog.capdata.fr/index.php/utiliser-asmcmd/</link>
		<comments>http://blog.capdata.fr/index.php/utiliser-asmcmd/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 13:55:30 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[asm]]></category>
		<category><![CDATA[asmcmd]]></category>
		<category><![CDATA[cluster]]></category>

		<guid isPermaLink="false">https://www.alldb.fr/blogs/?p=97</guid>
		<description><![CDATA[Cet article est écrit par Vincent Devers
Un utilitaire asmcmd permet de naviguer dans les disques ASM.
Voici quelques commandes utiles.
Avant de se connecter, vérifier que les processus de l’instance ASM sont lancés
 ps –ef &#124;grep ASM
export ORACLE_SID=+ASM
export ORACLE_HOME=/u01/app/asm/asm_1
Afficher la version : asmcmd –v 
Lancer asmcmd sous l&#8217;utilisateur asm ou oracle
Asmcmd&#62;
Lister les disques groupes ( affiche également [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est écrit par <a href="mailto:vdevers@capdata.fr">Vincent Devers</a></p>
<p>Un utilitaire asmcmd permet de naviguer dans les disques ASM.<br />
Voici quelques commandes utiles.<br />
Avant de se connecter, vérifier que les processus de l’instance ASM sont lancés<br />
<em> ps –ef |grep ASM<br />
export ORACLE_SID=+ASM<br />
export ORACLE_HOME=/u01/app/asm/asm_1</em></p>
<p>Afficher la version : <em>asmcmd –v </em><br />
Lancer <em>asmcmd </em>sous l&#8217;utilisateur asm ou oracle<br />
Asmcmd&gt;<br />
Lister les disques groupes ( affiche également la taille des disques et l’espace libre dans les disques ) : <strong>lsdg</strong><br />
Lister les disques : <strong>lsdsk</strong><br />
Avoir les io sur les disques : <strong>lsdsk -s</strong><br />
Vérifier le status des disques : <strong>lsdsk –p</strong><br />
Aller dans un groupe :  <strong>cd </strong>+diskgroup1/<br />
Afficher l’espace total utilisé : du<br />
Trouver tous les fichiers d’un type dans un diskgroup :<br />
<strong>find –t</strong> archivelog  + DISKGROUP1/ *<br />
<strong> find –t</strong> datafile +DISKGROUP1/  *<br />
<strong>find –t</strong> onlinelog +DISKGROUP1/ *<br />
<strong>find –t </strong>tempfile +DISKGROUP1/ *<br />
<strong> find –t </strong>backupset +DISKGROUP1/  *<br />
<strong> find –t</strong> parameterfile +DISKGROUP1/  *<br />
<strong>find –t</strong> dataguardconfig + DISKGROUP1/  *<br />
<strong>find –t</strong> flashback +DISKGROUP1/ *<br />
<strong>find –t </strong>dumpset + DISKGROUP1/  *<br />
Trouver les fichiers sans le type mais avec une wildcard : <strong>find </strong>+DISKGROUP1/  undo*<br />
Créer une sauvegarde contenant les métadonnées pour un ou plusieurs groupes  :<br />
<strong>md_backup –b</strong> /u01/bdd/backupall<br />
<strong>md_backup –b</strong> /u01/bdd/backupdiskgroup1 –g diskgroup1<br />
Restaurer des métadonnées d’un diskgroup :<br />
<strong>md_restore –b</strong> backup_file ( lit les métadata de backup_file )<strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/sqldiag-episode-1/" rel="bookmark" title="5 février 2010">SQLDIAG (épisode 1)</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/comment-limiter-les-alertes-liees-a-la-journalisation-checkpoint-not-completed-et-compagnie/" rel="bookmark" title="8 juillet 2011">Checkpoint not complete: Comment limiter les alertes liées à la journalisation</a> (Louis PROU) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/" rel="bookmark" title="3 mars 2010">Installation Oracle 11gR2 64 bits sur Red Hat 5 Partie 1</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/" rel="bookmark" title="5 juin 2009">Création et utilisation d&#8217;OCFS2</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/" rel="bookmark" title="12 juin 2008">Se connecter à SQL Server à travers Oracle, quelle drôle d&#8217;idée ?</a> (Thierry GASCARD) [Oracle]</li>
</ul>
<p><!-- Similar Posts took 3.742 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Futiliser-asmcmd%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Futiliser-asmcmd%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/utiliser-asmcmd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</title>
		<link>http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/</link>
		<comments>http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 13:14:14 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[asm]]></category>
		<category><![CDATA[asmlib]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[EMC]]></category>
		<category><![CDATA[Powerpath]]></category>
		<category><![CDATA[suse]]></category>

		<guid isPermaLink="false">https://www.alldb.fr/blogs/?p=89</guid>
		<description><![CDATA[Cet article est écrit par Thierry GASCARD.
1. Installation et configuration du driver ASMLIB
Sous l&#8217;utilisateur root
1.1    Installation ASMLIB
- Déterminer la version du noyau : uname –rm
- Rechercher les drivers ASM sur le site d’Oracle
- Télécharger les fichiers correspondants à la plate forme et la version du noyau
oracleasm-support-2.1.3-1.SLE10.x86_64.rpm
oracleasmlib-2.0.4-1.SLE10.x86_64.rpm
oracleasm-2.6.16.60-0.39.3-smp-2.0.5-1.SLE10.x86_64.rpm
- Installer les RPM correspondants :
rpm -Uvh \
&#62; oracleasm-2.6.16.60-0.39.3-smp-2.0.5-1.SLE10.x86_64.rpm \
&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est écrit par <a href="mailto:tgascard@capdata.fr" target="_blank">Thierry GASCARD.</a></p>
<h1>1. Installation et configuration du driver ASMLIB</h1>
<p>Sous l&#8217;utilisateur root</p>
<h2>1.1    Installation ASMLIB</h2>
<p>- Déterminer la version du noyau : uname –rm<br />
- Rechercher les drivers ASM sur le site d’<a href="http://www.oracle.com/technology/software/tech/linux/asmlib/sles10.html" target="_blank">Oracle</a><br />
- Télécharger les fichiers correspondants à la plate forme et la version du noyau<br />
oracleasm-support-2.1.3-1.SLE10.x86_64.rpm<br />
oracleasmlib-2.0.4-1.SLE10.x86_64.rpm<br />
oracleasm-2.6.16.60-0.39.3-smp-2.0.5-1.SLE10.x86_64.rpm<br />
- Installer les RPM correspondants :<br />
<em>rpm -Uvh \<br />
&gt; oracleasm-2.6.16.60-0.39.3-smp-2.0.5-1.SLE10.x86_64.rpm \<br />
&gt; oracleasmlib-2.0.4-1.SLE10.x86_64.rpm \<br />
&gt; oracleasm-support-2.1.3-1.SLE10.x86_64.rpm</em></p>
<h2>1.2 Configuration du driver ASM</h2>
<p>- Lancer la commande de configuration<br />
<em># /etc/init.d/oracleasm configure</em><br />
- Renseigner les informations suivantes :<br />
<em>Default user to own the driver interface []: oracle<br />
Default group to own the driver interface []: dba<br />
Start Oracle ASM library driver on boot (y/n) [n]: y<br />
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y<br />
Writing Oracle ASM library driver configuration:           [  OK  ]<br />
Creating /dev/oracleasm mount point:                       [  OK  ]<br />
Loading module &laquo;&nbsp;oracleasm&nbsp;&raquo;:                                [  OK  ]<br />
Mounting ASMlib driver filesystem:                         [  OK  ]<br />
Scanning system for ASM disks :                            [  OK  ]</em></p>
<h2>1.3 Créer les volumes ASM</h2>
<p><em>/usr/sbin/asmtool -C -l /dev/oracleasm -n VOLDB1-s /dev/emcpowerb -a force=yes<br />
/usr/sbin/asmtool -C -l /dev/oracleasm -n VOLBK1 -s /dev/emcpowerc -a force=yes</em><br />
puis redémarrer le serveur</p>
<p>Rem : oracleasm createdisk ne fonctionne pas note Metalink : <span style="helvetica;"><strong>469163.1</strong></span><br />
erreur de reconnaissance des disques fournis avec powerpath<br />
<em># /etc/init.d/oracleasm createdisk VOLDB1 /dev/emcpowerb<br />
Marking disk &laquo;&nbsp;/dev/emcpowerb&nbsp;&raquo; as an ASM disk: asmtool: Device &laquo;&nbsp;/dev/emcpowerb&nbsp;&raquo; is not a partition<br />
[FAILED]</em></p>
<h2>1.3 Vérifier</h2>
<p>lancer la découverte<br />
<em>/etc/init.d/oracleasm scandisks</em><br />
Vérifier l’existence des volumes sur les deux noeuds<br />
<em># /etc/init.d/oracleasm listdisks</em></p>
<h2>1.4 configurer les chemins de découverte des disques</h2>
<p>Modifier le fichier /etc/sysconfig/oracleasm pour paramétrer la gestion du  &laquo;&nbsp;multipathing&nbsp;&raquo; en gras :</p>
<p>..<br />
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning<br />
ORACLEASM_SCANORDER=&nbsp;&raquo;<strong>emcpower</strong>&nbsp;&raquo;</p>
<p># ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan<br />
ORACLEASM_SCANEXCLUDE=&nbsp;&raquo;<strong>sd</strong>&nbsp;&raquo;</p>
<h2>2. Installation ASM 11g</h2>
<p>Dans son propre ORACLE_HOME (ORACLE_ASM_HOME)</p>
<h1>3. Passage patch 11.1.0.7</h1>
<h1>4. Création de l’instance ASM</h1>
<h2>4.1. Configuration du listener pour ASM</h2>
<p>Connexion avec l’utilisateur asm ou oracle sinon<br />
<em>export ORACLE_HOME=/u01/app/asm/11.1.0/asm_1<br />
$ORACLE_HOME/admin/netca &amp;</em><br />
Creation du listener LISTENER_ASM sur le port 1521 en TCP</p>
<h2>4.2 Création de l&#8217;instance ASM</h2>
<p>Connexion avec l’utilisateur système oracle<br />
export ORACLE_SID=+ASM1<br />
/u01/oracle/11g/asm/bin/dbca &amp;</p>
<p>puis configurer les &laquo;&nbsp;disques groupe&nbsp;&raquo;<strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/oracle-les-rpms-et-les-dependances-avec-yum/" rel="bookmark" title="6 novembre 2009">Oracle, les Rpms plus de souci avec YUM</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/suppression-accidentelle-de-ligne-comment-retrouver-le-coupable/" rel="bookmark" title="6 octobre 2011">Suppression accidentelle de ligne : comment retrouver le coupable ?</a> (David BAFFALEUF) [SQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/" rel="bookmark" title="5 juin 2009">Installation Oracle 64 bits sur Red Hat 5</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/consistence-des-ecritures-avec-sata/" rel="bookmark" title="13 mars 2011">Consistence des écritures avec SATA</a> (David BAFFALEUF) [Operating SystemSQL Server]</li>
<li><a href="http://blog.capdata.fr/index.php/point-in-time-recovery-et-fn_dump_dblog/" rel="bookmark" title="13 juillet 2011">Point-in-time recovery et fn_dump_dblog()</a> (David BAFFALEUF) [SQL Server]</li>
</ul>
<p><!-- Similar Posts took 3.875 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Finstallation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Finstallation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation Oracle 64 bits sur Red Hat 5</title>
		<link>http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/</link>
		<comments>http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 10:25:29 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[64 bits]]></category>
		<category><![CDATA[huge page]]></category>
		<category><![CDATA[redhat 5]]></category>

		<guid isPermaLink="false">https://www.alldb.fr/blogs/?p=72</guid>
		<description><![CDATA[Cet article est écrit par Thierry GASCARD.
1 Configuration système
1.1 Pré-requis matériel :
- 12 Go pour les binaires Oracle en RAID 10
- 400 Mo sur /tmp
1.2 Pré-requis logiciel :
RH 5 Entreprise 64 Bits : Oracle 10.2.0.1 Entreprise Edition Linux x86-64
Patch 10.2.0.4 pour Linux x86-64 sur le site du support Oracle 
Patch 6620371 pour Linux 64 Bits [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est écrit par <a href="mailto:tgascard@capdata.fr" target="_blank">Thierry GASCARD.</a></p>
<h1>1 Configuration système</h1>
<h2>1.1 Pré-requis matériel :</h2>
<p>- 12 Go pour les binaires Oracle en RAID 10<br />
- 400 Mo sur /tmp</p>
<h2>1.2 Pré-requis logiciel :</h2>
<p>RH 5 Entreprise 64 Bits<a href="http://www.oracle.com/technology/software/products/database/index.html" target="_blank"> : Oracle 10.2.0.1 Entreprise Edition Linux x86-64</a></p>
<p>Patch 10.2.0.4 pour Linux x86-64 sur le site du <a href="http://metalink.oracle.com" target="_blank">support Oracle </a></p>
<p>Patch 6620371 pour Linux 64 Bits sur le site du <a href="http://metalink.oracle.com">support Oracle </a></p>
<h2>1.3 Pré-requis noyau</h2>
<p>version du noyau &gt;=2.6.18-8<br />
SELinux désactivé<br />
X installé et configuré<br />
Rpms suivants installés en plus des Rpms par défaut (version minimum) :<br />
binutils-2.17.50 (x86_64)<br />
compat-db-4.2.52 (x86_64)<br />
compat-libstdc++-296(i386)<br />
compat-libstdc++-33-3.2.3 (x86_64)<br />
compat-libstdc++-33-3.2.3(i386)<br />
control-center-2.16.0 (x86_64)<br />
gcc-4.1.1 (x86_64)<br />
gcc-c++-4.1.1 (x86_64)<br />
glibc-2.5-12 (x86_64)<br />
glibc-2.5-12 (i686)<br />
glibc-common-2.5-12 (x86_64)<br />
glibc-devel-2.5-12 (x86_64)<br />
glibc-devel-2.5-12(i386)<br />
glibc-headers-2.5-12 (x86_64)<br />
ksh-20060214-1.4 (x86_64)<br />
libaio-0.3.96 (x86_64)<br />
libgcc-4.1.1(i386)<br />
libgcc-4.1.1(x86_64)<br />
libgnome-2.16.0 (x86_64)<br />
libgnomeui-2.16.0 (x86_64)<br />
libgomp-4.1.1 (x86_64)<br />
libstdc++-4.1.1 (x86_64)<br />
libstdc++-devel-4.1.1 (x86_64)<br />
libXp-1.0.0-8 (i386)<br />
make-3.81 (x86_64)<br />
sysstat-7.0.0 (x86_64)<br />
unixODBC-2.2.11-7.1 x86_64.<br />
unixODBC-devel-2.2.11-7.1 x86_64<br />
util-linux-2.13-0.50.el5 x86_64<br />
xorg-x11-xinit-1.0.2-15.el5 x86_64</p>
<p>Rem : attention à la présence de rpms 32 bits : utilisation possible de l&#8217;option force : <em>rpm -ivh &#8211;force</em> ..</p>
<h2>1.4 Paramètres noyau</h2>
<p>Modification du fichier <strong>/etc/sysctl.conf</strong> :<br />
kernel.shmmni = 4096<br />
kernel.sem= 250 32000 100 128<br />
kernel.sysrq=1<br />
kernel.msgmnb=65536<br />
kernel.msgmni=2878<br />
kernel.msgmax=8192<br />
net.ipv4.ip_local_port_range = 9000 65500<br />
net.core.rmem_default = 262144<br />
net.core.rmem_max=2097152<br />
net.core.wmem_default = 262144<br />
net.core.wmem_max = 262144<br />
fs.aio-max-nr=3145728<br />
fs.file-max=327679<br />
vm.lower_zone_protection=100<br />
kernel.shmall = 3145728<br />
kernel.shmmax = 12884901888<br />
vm.nr_hugepages = 6144</p>
<p>Modification du fichier <strong>/etc/security/limits.conf</strong> :<br />
oracle hard memlock 12582912<br />
oracle soft memlock 12582912<br />
oracle soft core unlimited<br />
oracle hard nofile 131072<br />
oracle hard nproc 131072<br />
oracle soft nproc 131072<br />
oracle soft nofile 131072<br />
oracle hard core unlimited</p>
<h1>2    Préparation système</h1>
<h2>2.1 Création groupe oinstall,dba</h2>
<p><em>root&gt; groupadd -g 55 oinstall<br />
root&gt;groupadd -g 56 dba</em></p>
<h2>2.2    Ajout utilisateur oracle</h2>
<p><em>root&gt; useradd -u 500 -g 55 -G dba -c &laquo;&nbsp;Oracle Owner&nbsp;&raquo; -d /home/oracle -s /bin/bash oracle<br />
root&gt; passwd oracle</em></p>
<p>2.2 Modification du fichier<strong> /etc/profile</strong><br />
if [ $USER = "oracle" ]; then<br />
if [ $SHELL = "/bin/ksh" ]; then<br />
ulimit -p 16384<br />
ulimit -n 65536<br />
ulimit -l 12582912<br />
else<br />
ulimit -u 16384 -n 65536 -l 12582912<br />
fi<br />
fi</p>
<h2>2.2    Création des répertoires</h2>
<p><em>root&gt; mkdir /opt/oracle<br />
root&gt; mkdir /u01<br />
root&gt; chown –R oracle:oinstall /opt/oracle<br />
root&gt; chown –R oracle:oinstall /u01<br />
root&gt; su &#8211; oracle<br />
mkdir -p /opt/oracle/product/10.2.0/db_1<br />
mkdir -p /opt/oracle/admin</em></p>
<h2>3 Installation Oracle</h2>
<h2>3.1    Décompression des zips et cpio</h2>
<p><em>$ cat 10201_database_linux_x86_64.cpio.gz | gunzip | cpio -idvm<br />
$ cat 10201_companion_linux_x86_64.cpio.gz | gunzip | cpio –idvm<br />
$unzip p6810189_10204_Linux-x86-64</em></p>
<h2>3.2   installation</h2>
<p><em>export ORACLE_BASE=/opt/oracle/product ;<br />
export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1<br />
./runInstaller &amp;</em></p>
<p>Ordre d’installation<br />
1. Installation &laquo;&nbsp;Base Product (10.2.0.1)&nbsp;&raquo;<br />
2. Installation “Companion Disk” pour éviter l’erreur NCOMP lors du patch 10.2.0.4<br />
- Choisir l’option «Oracle Database 10g Products 10.2.0.1.0»<br />
3. Installation Patch (10.2.0.4)<br />
4. Installation patch 6620371 pour &laquo;&nbsp;huge page&nbsp;&raquo;<br />
<em> [oracle]$ cd 6620371/<br />
[oracle]$ /opt/oracle/product/10.2.0/db_1/OPatch/opatch apply</em></p>
<h1>4    Mise à jour de l’environnement Oracle</h1>
<h2>4.1 mise à jour du .profile_bash d&#8217;oracle</h2>
<h2>4.2 mise à jour du glogin.sql</h2>
<p>vi $ORACLE_HOME/slplus/admin/glogin.sql<br />
set sqlprompt &laquo;&nbsp;_user &#8216;on&#8217; _date &#8216;at&#8217; _connect_identifier &gt;&nbsp;&raquo;</p>
<h1>5    configuration de huge page sous linux</h1>
<p>- vm.nr_hugepages  : nombre de pages (taille de 2Mo sur linux avec grep Hugepagesize /proc/meminfo)<br />
- vm.hugetlb_shm_group : ID du groupe utilisé par oracle (dba)<br />
- kernel.shmmax supérieur à la taille de l&#8217;espace mémoire accordé aux &laquo;&nbsp;huge page&nbsp;&raquo;<br />
- memlock  : avec /etc/security/limit.conf et ulimit -l<br />
Tout est bien expliqué dans le blog d&#8217; <a href="http://arkzoyd.blogspot.com/2008/10/huge-pages-linux-et-oracle.html" target="_blank">arkzoyd</a>: à lire absolument !!!!!<strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/" rel="bookmark" title="5 juin 2009">Création et utilisation d&#8217;OCFS2</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/" rel="bookmark" title="3 mars 2010">Installation Oracle 11gR2 64 bits sur Red Hat 5 Partie 1</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/" rel="bookmark" title="12 juin 2008">Se connecter à SQL Server à travers Oracle, quelle drôle d&#8217;idée ?</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/" rel="bookmark" title="5 juin 2009">Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/utiliser-asmcmd/" rel="bookmark" title="5 juin 2009">Utiliser ASMCMD</a> (Thierry GASCARD) [Oracle]</li>
</ul>
<p><!-- Similar Posts took 3.633 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Finstallation-oracle-64-bits-sur-red-hat-5%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Finstallation-oracle-64-bits-sur-red-hat-5%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Se connecter à SQL Server à travers Oracle, quelle drôle d&#8217;idée ?</title>
		<link>http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/</link>
		<comments>http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 09:46:20 +0000</pubDate>
		<dc:creator>Thierry GASCARD</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[sql server oracle gateway ole db]]></category>

		<guid isPermaLink="false">http://192.168.1.220:8080/blogs/oracle/?p=6</guid>
		<description><![CDATA[Cet article est écrit par Thierry GASCARD.
La première solution est d&#8217;utiliser la &#171;&#160;gateway Oracle pour SQL SERVER &#160;&#187; (15000$ par serveur).
La deuxième gratuite est d&#8217;utiliser OLE DB.
Je vais m&#8217;intéresser à la deuxième solution, vous en devinez la raison  
1) créer un fichier UDL (vide puis ajouter l&#8217;extension .udl) sous C:\\Documents and Settings\\thierry\\Bureau\\client1.udl, puis double [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est écrit par <a href="mailto:tgascard@capdata.fr" target="_blank">Thierry GASCARD.</a></p>
<p>La première solution est d&#8217;utiliser la &laquo;&nbsp;gateway Oracle pour SQL SERVER &nbsp;&raquo; (15000$ par serveur).</p>
<p>La deuxième gratuite est d&#8217;utiliser OLE DB.</p>
<p>Je vais m&#8217;intéresser à la deuxième solution, vous en devinez la raison <img src='http://blog.capdata.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>1) créer un fichier UDL (vide puis ajouter l&#8217;extension .udl) sous C:\\Documents and Settings\\thierry\\Bureau\\client1.udl, puis double cliquer</p>
<p>-onglet Fournisseur : choisir le fournisseur &laquo;&nbsp;Microsoft OLE DB Provider for SQL Server&nbsp;&raquo;</p>
<p>s&#8217;il n&#8217;est pas présent  téléchargez <a title="MDAC 2.8" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&amp;displaylang=en" target="_blank">MDAC </a>(merci david)<br />
-onglet connexion : nom du serveur SQL (minsk\aquarium), utilisateur/mot de passe, base de données client1<br />
2) sous $ORACLE_HOME\hs\admin<br />
faire une copie du fichier inithsoledb.ora en initclient1.ora<br />
3) configuer initclient1.ora<br />
HS_FDS_CONNECT_INFO =&nbsp;&raquo;UDLFILE=C:\\Documents and Settings\\thierry\\Bureau\\client1.udl&nbsp;&raquo;<br />
HS_FDS_TRACE_LEVEL = 0<br />
HS_FDS_TRACE_FILE_NAME = client1.trc</p>
<p>attention doubler \ (merci manu..)<br />
4) configuer le fichier tnsnames.ora<br />
CLIENT1  =<br />
(DESCRIPTION=<br />
(ADDRESS=(PROTOCOL=tcp)(HOST=pc-thierry)(PORT=1524))<br />
(CONNECT_DATA=(SID=CLIENT1))<br />
(HS=OK)<br />
)<br />
5) configurer le fichier listener.ora<br />
ajouter aux services de votre listener<br />
(SID_DESC=<br />
(SID_NAME=CLIENT1)<br />
(ORACLE_HOME = D:\app\oracle\10.2.0\db_1)<br />
(PROGRAM=hsolesql)<br />
)<br />
6) créer le database link<br />
CREATE PUBLIC DATABASE LINK &laquo;&nbsp;CLIENT1&#8243; USING &#8216;CLIENT1&#8242;;</p>
<p>7) tester la connexion<br />
select * from sysobjects@client1;</p>
<p><em>remarque : en cas de souci, vous pouvez poser une trace.<br />
mettre le paramètre HS_FDS_TRACE_LEVEL = 4<br />
la trace se trouvera sous D:\app\oracle\10.2.0\db_1\hs\trace</em><strong>Continuez votre lecture sur le blog :</strong>
<ul class="similar-posts">
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-11gr2-64-bits-sur-red-hat-5-partie-1/" rel="bookmark" title="3 mars 2010">Installation Oracle 11gR2 64 bits sur Red Hat 5 Partie 1</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-oracle-64-bits-sur-red-hat-5/" rel="bookmark" title="5 juin 2009">Installation Oracle 64 bits sur Red Hat 5</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/creation-et-utilisation-docfs2/" rel="bookmark" title="5 juin 2009">Création et utilisation d&#8217;OCFS2</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/installation-asm-sur-suse-10-en-64-bits-avec-multipathing-emc-powerpath/" rel="bookmark" title="5 juin 2009">Installation ASM sur SUSE 10 en 64 Bits avec multipathing (EMC Powerpath)</a> (Thierry GASCARD) [Oracle]</li>
<li><a href="http://blog.capdata.fr/index.php/utiliser-asmcmd/" rel="bookmark" title="5 juin 2009">Utiliser ASMCMD</a> (Thierry GASCARD) [Oracle]</li>
</ul>
<p><!-- Similar Posts took 3.619 ms -->
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fse-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fse-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.capdata.fr/index.php/se-connecter-a-sql-server-a-travers-oracle-quelle-drale-didae/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

