







<?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>Lolokai - Supervision, systèmes, réseaux, base de données... &#187; oracle</title>
	<atom:link href="http://www.lolokai.com/tag/oracle-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lolokai.com</link>
	<description>Découvrez l&#039;informatique : réseau avec Cisco, systèmes avec Windows et Linux, Gestion de configuration avec Puppet, Sécurité dont Nmap, virtualisation avec VMware et quelques articles sur Wordpress</description>
	<lastBuildDate>Tue, 18 Jun 2013 03:33:24 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Gestion de données en SQL (DML)</title>
		<link>http://www.lolokai.com/sgbd/gestion-de-donnees-en-sql-dml/</link>
		<comments>http://www.lolokai.com/sgbd/gestion-de-donnees-en-sql-dml/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 07:00:44 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[BD]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[dml]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=5698</guid>
		<description><![CDATA[Introduction Jusqu’à maintenant nous avons vu principalement comment extraire des données de notre base. Aujourd’hui nous allons voir ensemble quelques instructions DML(data manipulation langage) qui vont nous permettre d’ajouter (insert) , de mettre à jour (update) et de supprimer (delete) nos données. Script Nous allons tout au long de cet article travailler sur la table... <a class="moretag" href="http://www.lolokai.com/sgbd/gestion-de-donnees-en-sql-dml/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Jusqu’à maintenant nous avons vu principalement comment extraire des données de notre base. Aujourd’hui nous allons voir ensemble quelques instructions DML(data manipulation langage) qui vont nous permettre d’ajouter (insert) , de mettre à jour (update) et de supprimer (delete) nos données.</p>
<h2><span style="color: #33cccc;">Script</span></h2>
<pre class="brush: sql; title: ; notranslate">Create table students (
student_id number(8) constraint students_stid_pk primary key ,
last_name varchar2(25),
first_name varchar2(25),
promotion char(2) ,
job_id varchar2(50) ) ;</pre>
<p>Nous allons tout au long de cet article travailler sur la table students. Cette table recense des informations sur des élèves et le métier qu’ils aimeraient faire.</p>
<h2><span style="color: #33cccc;">Insertion de données</span></h2>
<p>Le mot clé « INSERT » va nous permettre d’ajouter des enregistrements dans notre table.</p>
<p>Voyons la syntaxe :</p>
<p>INSERT INTO table_name [(column[,column…])]</p>
<p>VALUES (value [, value…])</p>
<p>Rien de mieux que des exemples :</p>
<pre class="brush: sql; title: ; notranslate">INSERT INTO students (student_id , last_name, first_name , promotion , job_id)
VALUES (1 , 'Assoumani' , 'Saïd' , 'B3' , 'Database Admin') ;</pre>
<p>Ici dans la clause « INSERT INTO », on spécifie les colonnes que l’on souhaite remplir et dans la clause « VALUES » on donne respectivement les valeurs que l’on souhaite mettre dans ces colonnes. Il faut savoir qu’on n’est pas obligé de remplir toutes les colonnes, les colonnes non citées dans l’instruction auront une valeur nulle.</p>
<pre class="brush: sql; title: ; notranslate">INSERT INTO students (student_id , last_name, first_name , promotion)
VALUES (2 , 'Taochy' , 'Samuel' , 'B3' ) ;</pre>
<p>Ici l’élève ayant pour student_id 2,  n’a pas encore préciser le métier qu’il aimerait faire.</p>
<p>On a aussi la possibilité de spécifier aucune colonne, dans ce cas il va falloir remplir tous les champs et surtout dans l’ordre de création de la table.</p>
<p>Je m’explique, dans notre table students on a créé en premier la colonne student_id et en second la colonne last_name… donc lors de notre insert nous devrons respecter scrupuleusement cet ordre si nous spécifions aucune colonne.</p>
<pre class="brush: sql; title: ; notranslate">INSERT INTO students
VALUES (3 , 'Auckburally','Yassin' , 'B3','Network Admin' );</pre>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/11/SQL_DML_AssoumaniSaid1.png" rel="lightbox[5698]"><img class="alignnone size-full wp-image-5713" src="http://www.lolokai.com/wp-content/uploads/2012/11/SQL_DML_AssoumaniSaid1.png" alt="" width="491" height="115" /></a></p>
<h2><span style="color: #33cccc;">Modification de données</span></h2>
<p>L’élève Samuel Taochy m’a fait comprendre qu’il aimerait devenir Administrateur Système. Il me faut donc rajouter cette information dans notre table students. Le mot clé « UPDATE» va nous permettre de modifier des enregistrements dans notre table.</p>
<p>Voyons la syntaxe :</p>
<p>UPDATE table_name</p>
<p>SET    column = value [, column = value, ...]</p>
<p>[WHERE  condition];</p>
<p>Rien de mieux qu’un exemple :</p>
<pre class="brush: sql; title: ; notranslate">UPDATE students
SET job_id = 'System Admin'
WHERE student_id = 2 ;</pre>
<p>Avec cette instruction j’ai mis à jour la colonne job_id de l’étudiant numéro 2. Attention Si on omet la clause « WHERE » alors la modification va s’appliquer sur tous les enregistrements de notre table.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/11/SQL_DML_AssoumaniSaid2.png" rel="lightbox[5698]"><img class="alignnone size-full wp-image-5714" src="http://www.lolokai.com/wp-content/uploads/2012/11/SQL_DML_AssoumaniSaid2.png" alt="" width="486" height="92" /></a></p>
<h2><span style="color: #33cccc;">Suppresion de données</span></h2>
<p>Le mot clé « DELETE» va nous permettre de supprimer des enregistrements dans notre table.</p>
<p>Voyons la syntaxe :</p>
<p>DELETE [FROM] table_name</p>
<p>[WHERE  condition];</p>
<p>Rien de mieux qu’un exemple :</p>
<pre class="brush: sql; title: ; notranslate">DELETE FROM students
WHERE student_id = 1 ;</pre>
<p>Avec cette instruction, j’ai supprimé de notre table les informations sur l’élève Assoumani Said. Attention Si on omet la clause « WHERE » alors la suppression va s’appliquer à tous les enregistrements de notre table.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/11/SQL_DML_AssoumaniSaid3.png" rel="lightbox[5698]"><img class="alignnone size-full wp-image-5716" src="http://www.lolokai.com/wp-content/uploads/2012/11/SQL_DML_AssoumaniSaid3.png" alt="" width="473" height="62" /></a></p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Nous venons de voir ensemble comment ajouter, modifier et supprimer des enregistrements dans notre base de données. Nous avons vu aussi que la clause « WHERE » est importante pour le cas des « UPDATE » et « DELETE ». En effet, si on oublie de mettre cette clause la modification ou la suppression va affecter toutes les lignes de notre tables. Nous verrons dans le prochain article comment on peut annuler ce genre d’erreur et aussi comment validé les modifications que l’on a apporté a notre base.Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/sgbd/gestion-de-donnees-en-sql-dml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les fonctions (1ère partie )</title>
		<link>http://www.lolokai.com/sgbd/les-fonctions-1ere-partie/</link>
		<comments>http://www.lolokai.com/sgbd/les-fonctions-1ere-partie/#comments</comments>
		<pubDate>Tue, 11 Sep 2012 06:00:35 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[BD]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Fonction]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Single Rows]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=4757</guid>
		<description><![CDATA[Introduction Aujourd’hui nous allons voir ensemble quelques fonctions bien utiles en SQL (ce sujet sera étudié à travers deux articles). Il faut s’avoir qu’il existe principalement deux types de fonctions, les fonctions de lignes (single row) et les fonctions de groupes (agrégation). Dans ce premier  article nous allons voir principalement les différentes fonctions de ligne. Les... <a class="moretag" href="http://www.lolokai.com/sgbd/les-fonctions-1ere-partie/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<h2 style="text-align: left;"><span style="color: #33cccc;">Introduction</span></h2>
<p>Aujourd’hui nous allons voir ensemble quelques fonctions bien utiles en SQL (ce sujet sera étudié à travers deux articles). Il faut s’avoir qu’il existe principalement deux types de fonctions, les fonctions de lignes (single row) et les fonctions de groupes (agrégation).</p>
<p>Dans ce premier  article nous allons voir principalement les différentes fonctions de ligne.</p>
<h2 style="text-align: left;"><span style="color: #33cccc;">Les fonctions sur chaines </span></h2>
<p>Voici une liste des fonctions sur chaines que j’ai trouvé bon de répertorier :</p>
<table border="1">
<tbody>
<tr>
<th>upper(mot)</th>
<td>Convertir le mot en majuscule</td>
</tr>
<tr>
<th>lower(mot)</th>
<td>Convertir le mot en minuscule</td>
</tr>
<tr>
<th>initcap(mot)</th>
<td>Mettre en majuscule la première lettre.</td>
</tr>
<tr>
<th>replace(mot_cible , occ1 , occ2 )</th>
<td>Remplacer chaque occurrence de occ1 par occ2 dans mot_cible</td>
</tr>
<tr>
<th>substr(mot, m , n)</th>
<td>Extraire n caractère du mot à partir de la position m</td>
</tr>
<tr>
<th>length(mot)</th>
<td>Retourner la longueur du mot</td>
</tr>
<tr>
<th>rpad(mot cible , n , chaine)</th>
<td>Complèter mot_cible avec chaine,  sur n caractère à droite de mot_cible</td>
</tr>
<tr>
<th>lpad(mot cible , n , chaine)</th>
<td>Complèter mot_cible avec chaine ,  sur n caractère à gauche de mot_cible</td>
</tr>
<tr>
<th>concat(mot_1 , mot_2)</th>
<td>Joindre le mot_1 et mot2 (une concaténation)</td>
</tr>
<tr>
<th>instr(mot_1 , x)</th>
<td>Retourner la position numérique du caractère x (x représentant n’importe quel caractère)</td>
</tr>
</tbody>
</table>
<p>Voilà quatre petits exemples, ici je vais utiliser la table fictive dual. La table DUAL peut être utilisée lorsqu&rsquo;une requête ne cible pas de table particulière.</p>
<pre class="brush: sql; title: ; notranslate">SELECT initcap('SaID') FROM dual ;                      ⇒ Said
SELECT replace('Affoumani' , 'f','s') FROM dual ;       ⇒ Assoumani
SELECT lower('AiMe') FROM dual ;                        ⇒ aime
SELECT rpad(lpad(' Oracle ',10,'*'),12,'*') FROM dual ; ⇒ ** Oracle **</pre>
<p>Vous l’aurez remarqué, on peut aussi imbriquer ces fonctions ☺</p>
<h2 style="text-align: left;"><span style="color: #33cccc;">Les fonctions numériques </span></h2>
<p>Voici une liste des fonctions numérique que j’ai trouvé bon de répertorier :</p>
<table border="1">
<tbody>
<tr>
<th>round(n ,m)</th>
<td>Arrondir le nombre n à m decimal</td>
</tr>
<tr>
<th>trunc( n , m)</th>
<td>Tronquer le nombre n à m decimal</td>
</tr>
<tr>
<th>mod(n, m )</th>
<td>La fonction modulo retourne le reste de la divion de n/m</td>
</tr>
<tr>
<th>ceil(n)</th>
<td>Renvoyer l’entier superieur le plus proche du nombre n</td>
</tr>
<tr>
<th>floor(n)</th>
<td>Renvoyer l’entier inferieur le plus proche du nombre n</td>
</tr>
<tr>
<th>power(n , m)</th>
<td>Renvoyer n à la puissance m</td>
</tr>
<tr>
<th>sqrt(n)</th>
<td>Renvoyer la racine carée de n</td>
</tr>
</tbody>
</table>
<p>Voilà quatre petits exemples, toujours avec notre table fictive dual</p>
<pre class="brush: sql; title: ; notranslate">SELECT round(20.236 , 2) FROM dual ;         ⇒ 20.24
SELECT trunc(20.236, 2) FROM dual ,          ⇒ 20,23
SELECT floor(20.796 ) FROM dual ;            ⇒ 20
SELECT mod(10,9) FROM dual ;                 ⇒ 1</pre>
<h2 style="text-align: left;"><span style="color: #33cccc;">Les fonctions Date </span></h2>
<p>Oracle nous donne aussi la possibilité de manipuler les dates. Il faut savoir que les dates sont des types de données que l’on rencontre souvent. Le type date est composé de deux informations : la date et l&rsquo;heure. Voici une liste des fonctions date que j’ai trouvé bon de répertorier :</p>
<table border="1">
<tbody>
<tr>
<th>sysdate</th>
<td>Retourner la date actuelle du système</td>
</tr>
<tr>
<th>next_day(date)</th>
<td>Renvoyer le jour suivant date</td>
</tr>
<tr>
<th>last_day(date)</th>
<td>Renvoyer le dernier jour du mois de date</td>
</tr>
<tr>
<th>months_between(date1, date2)</th>
<td>Renvoyer le nombre de mois entre date1 et date2</td>
</tr>
<tr>
<th>add_months(date , n )</th>
<td>Ajouter ou soustraire n mois de date</td>
</tr>
</tbody>
</table>
<p>Il faut savoir que les fonctions round() et trunc() sont aussi utilisables avec les dates. Ils acceptent deux arguments, en premier la date et en second sur quelle partie de la date ils vont se baser pour leur opérations.</p>
<p>Voici quatre petits exemples :</p>
<pre class="brush: sql; title: ; notranslate">SELECT sysdate FROM dual                       ⇒ 08-SEP-12
SELECT last_day(sysdate) FROM dual             ⇒ 30-SEP-12
SELECT trunc(sysdate , 'month') FROM dual ;    ⇒ 01-SEP-12
SELECT round(sysdate , year) FROM dual ;       ⇒01-JAN-13</pre>
<h2 style="text-align: left;"><span style="color: #33cccc;">Conversion de Format</span></h2>
<p>Dans cette partie nous allons voir comment on peut utiliser les deux fonctions de conversion suivantes : to_char() et to_date(). Mais avant de commencer voici un petit tableau qui va nous servir :</p>
<table border="1">
<tbody>
<tr>
<th>YYYY</th>
<td>l’année complet en nombre : exemple 1992</td>
</tr>
<tr>
<th>YEAR</th>
<td>l’année en toute lettre : exemple twenty twelve</td>
</tr>
<tr>
<th>MM</th>
<td>les deux premiers digits du mois : exemple 04</td>
</tr>
<tr>
<th>MONTH</th>
<td>nom complet du mois : exemple april</td>
</tr>
<tr>
<th>DY</th>
<td>les trois premières lettre du jour: exemple MON</td>
</tr>
<tr>
<th>DAY</th>
<td>nom complet du jour : exemple Monday</td>
</tr>
<tr>
<th>HH24</th>
<td>heure sur une base 24</td>
</tr>
<tr>
<th>MI</th>
<td>les minutes</td>
</tr>
<tr>
<th>SS</th>
<td>les secondes</td>
</tr>
</tbody>
</table>
<p>La fonction to_char() va nous permettre entre autre de convertir une date en chaine de caractère :</p>
<pre class="brush: sql; title: ; notranslate">SELECT to_char(sysdate , 'day dd month year' ) FROM dual ;</pre>
<p>⇒ saturday 08 september twenty twelve</p>
<pre class="brush: sql; title: ; notranslate">SELECT to_char(sysdate , 'dd/mm/yyyy hh24:mi:ss' ) FROM dual ;</pre>
<p>⇒ 08/09/yyyy 15:01:30</p>
<p>La fonction to_date() va quand à elle nous permettre de faire l’action inverse, c’est à dire convertir une chaine de caractère en date :</p>
<pre class="brush: sql; title: ; notranslate">SELECT TO_DATE('september 08, 2012, 15:05','month dd, YYYY, HH24:MI') FROM DUAL;</pre>
<p>⇒ 08-SEP-12</p>
<h2 style="text-align: left;"><span style="color: #33cccc;">Conclusion</span></h2>
<p>Nous avons vu dans cet article qu’il existe deux types de fonctions,  les fonctions de lignes que nous venons d’étudier et les fonction de groupe que l’on verra dans le prochain article. Parmi les fonctions de lignes on a vu qu’il existe trois sous types importants de fonctions :  les fonctions sur chaines, numérique et de date.</p>
<p>J’espère avoir été clair dans les explications et dans mes exemples.</p>
<p>Si vous avez des questions ou des remarques sur cet article, laissez un commentaire ☺Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/sgbd/les-fonctions-1ere-partie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>L’instruction SELECT et la clause WHERE</title>
		<link>http://www.lolokai.com/sgbd/linstruction-select-et-la-clause-where/</link>
		<comments>http://www.lolokai.com/sgbd/linstruction-select-et-la-clause-where/#comments</comments>
		<pubDate>Thu, 06 Sep 2012 06:00:25 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[BD]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[SELCT]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WHERE]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=4612</guid>
		<description><![CDATA[Introduction Dans cet article nous allons voir ensemble dans un premier temps l’instruction SELECT, cette instruction va nous permettre de requêter les données de notre base de données. Puis enfin voir la clause « where » cette clause va nous permettre d’extraire une partie de nos données. L’instruction SELECT Cette instruction va nous permettre de... <a class="moretag" href="http://www.lolokai.com/sgbd/linstruction-select-et-la-clause-where/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Dans cet article nous allons voir ensemble dans un premier temps l’instruction SELECT, cette instruction va nous permettre de requêter les données de notre base de données. Puis enfin voir la clause « where » cette clause va nous permettre d’extraire une partie de nos données.</p>
<h2><span style="color: #33cccc;">L’instruction SELECT</span></h2>
<p>Cette instruction va nous permettre de retrouver les données de notre base. L&rsquo;instruction SELECT s’utilise principalement de trois façons :</p>
<ul>
<li>Par projection : on va choisir la ou les colonne(s) qu&rsquo;on veut retourner.</li>
<li>Par selection : on va choisir la ou les lignes qu&rsquo;on veut retourner (voir partie clause WHERE).</li>
<li>Par jointure : retourner des données se trouvant sur deux tables distinctes en spécifiant le lien entres les deux tables (voir l&rsquo;article sur les jointures prochainement).</li>
</ul>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT_SAID_ASSOUMANI_LOLOKAI.png" rel="lightbox[4612]"><img class="size-medium wp-image-4613 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT_SAID_ASSOUMANI_LOLOKAI-300x300.png" alt="" width="300" height="300" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">Structure de l’instruction</span></p>
<pre class="brush: sql; title: ; notranslate">

SELECT * | { [ DISTINCT ] column_name | expression [ alias ], ….} FROM table_name ;

</pre>
<p>Où :</p>
<ul>
<li>* : toutes les colonnes seront retournées</li>
<li>alias : permet d’afficher un alias et non le nom de la colonne</li>
<li>FROM : permet de spécifier la table contenant les colonnes.</li>
</ul>
<p>Exécutez le script suivant dans sqlplus ou un outil de votre choix :</p>
<pre class="brush: sql; title: ; notranslate">

CREATE TABLE C1 ( lastname varchar2(25) , firstname varchar2(25), age number(3) ) ;

INSERT INTO C1 values ('Assoumani' , 'Said', 20) ;

INSERT INTO C1 values ('Fontaine' , 'Loic', 22) ;

INSERT INTO C1 values ('Robert' , 'Cedric' , 20);

INSERT INTO C1 values ('Tartanpion', 'Marc', 68);

</pre>
<p><span style="color: #000000;">Exemple :</span></p>
<p>Retournez toutes les données de la table C1 :</p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 ;</pre>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT2_SAID_ASSOUMANI_LOLOKAI.png" rel="lightbox[4612]"><img class="alignnone size-medium wp-image-4615" src="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT2_SAID_ASSOUMANI_LOLOKAI-300x88.png" alt="" width="300" height="88" /></a></p>
<p><span style="color: #000000;">Exemple :</span></p>
<p>Retournez le nom de famille de la table C1 , en affichant l’alias « Lastname_Alias » à la place du nom de colonne :</p>
<pre class="brush: sql; title: ; notranslate">SELECT lastname Lastname_Alias FROM C1 ;</pre>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT3_SAID_ASSOUMANI_LOLOKAI.png" rel="lightbox[4612]"><img class="alignnone size-medium wp-image-4616" src="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT3_SAID_ASSOUMANI_LOLOKAI-300x92.png" alt="" width="300" height="92" /></a></p>
<p style="text-align: center;"><strong><span style="color: #000000;">Remarque : La requête précédente est un SELECT de type « projection »</span></strong></p>
<h2><span style="color: #33cccc;">La clause WHERE</span></h2>
<p>La clause WHERE est une partie facultative de l’instruction SELECT. Nous avons vu précédemment comment extraire les données d’une table avec l’instruction SELECT. Dans les exemples vus avant, nous avons sélectionné à chaque fois tous les enregistrements (toutes les lignes) qui existent dans notre table.</p>
<p>Si on souhaite extraire que quelques lignes, on doit utiliser la clause WHERE.</p>
<p style="text-align: center;"><strong><span style="color: #000000;">Remarque : Les requêtes suivantes sont des SELECT de type « selection »</span></strong></p>
<p><span style="color: #000000;">Exemple :</span></p>
<p>Retournez le nom , prénom des personnes ayant plus de 20 ans :</p>
<pre class="brush: sql; title: ; notranslate">SELECT lastname , firstname FROM C1 WHERE age &gt; 20 ;</pre>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT1_SAID_ASSOUMANI_LOLOKAI.png" rel="lightbox[4612]"><img class="alignnone size-medium wp-image-4614" src="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT1_SAID_ASSOUMANI_LOLOKAI-300x75.png" alt="" width="300" height="75" /></a></p>
<p><span style="color: #000000;">Exemple :</span></p>
<p>Retournez les informations des personnes , ayant un ‘a’ dans leur nom</p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE lastname LIKE '%a%' ;</pre>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT4_SAID_ASSOUMANI_LOLOKAI.png" rel="lightbox[4612]"><img class="alignnone size-medium wp-image-4617" src="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT4_SAID_ASSOUMANI_LOLOKAI-300x75.png" alt="" width="300" height="75" /></a></p>
<p>Vous l’aurez remarquer la clause WHERE est puissante, on peut extraire des enregistrements en utilisant pas mal de combinaisons.</p>
<p>On peut aussi utiliser les operateurs suivants :</p>
<ul>
<li>= | ! =: égalité | négation</li>
<li>&gt; | &gt;= : plus grand que / plus grand ou égal</li>
<li>&lt; | &gt;= : plus petit que / plus petit ou égal</li>
<li>IN (liste de valeurs) / NOT IN(liste de valeurs) : pour spécifier une liste de valeur à prendre en compte</li>
<li>BETWEEN… AND : pour spécifier un intervalle de valeur à prendre en compte</li>
<li>IS NULL / IS NOT NULL : pour spécifier si une colonnes est null ou pas</li>
<li>LIKE | NOT LIKE : utilisé pour la comparaison avec des chaines de caractères</li>
</ul>
<p>Dans le cadre de la comparaison d’une chaine de caractères :</p>
<ul>
<li>_ : remplace une lettre</li>
<li>% : remplace une voire plusieurs lettre(s).</li>
</ul>
<p><span style="color: #000000;">Voici quelques exemples :</span></p>
<p>&#8211; Retournez les personnes n’ayant pas 68 ans &#8211;</p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE age != 68</pre>
<p>&#8211; Retournez les personnes ayant 20 ou 22 ans &#8211;</p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE age IN (20 , 22);</pre>
<p>&#8211; Retournez les personnes dont le nom de famille contient un ’s’ en deuxième position &#8211;</p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE lastname LIKE '_s%' ;</pre>
<p><span style="text-decoration: underline; color: #3366ff;">Les conditions logiques</span></p>
<p>En plus des operateurs vue précédemment, il existe ce qu’on appelle des conditions logiques.</p>
<ul>
<li>AND : Retourne vraie si les deux conditions sont vraies</li>
<li>OR : Return Vraie si au moins une condition est vraie</li>
<li>NOT : Return Vraie si la condition est fausse.</li>
</ul>
<p>Pour comprendre le coté pratique voyant cela tout de suite avec trois exemples , un pour chaque cas :</p>
<p><span style="color: #000000;">Exemple avec AND :</span></p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE AGE &lt; 68 AND lastname LIKE 'A%' ;</pre>
<p>Ici, la requête va retourner toutes les personnes ayant moins de 68 ans et avec un nom de Famille commençant par un ‘A’ majuscule.</p>
<p><span style="color: #000000;">Exemple avec OR :</span></p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE AGE &lt; 68 OR lastname LIKE 'A%' ;</pre>
<p>Ici, la requête va retourner toutes les personnes ayant moins de 68 ans OU avec un nom de Famille commençant par un ‘A’ majuscule.</p>
<p>Concrètement voilà le résultat que l’on pourrait obtenir de la table C1 :</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT5_SAID_ASSOUMANI_LOLOKAI.png" rel="lightbox[4612]"><img class="alignnone size-medium wp-image-4618" src="http://www.lolokai.com/wp-content/uploads/2012/09/ORACLE-SELECT5_SAID_ASSOUMANI_LOLOKAI-300x70.png" alt="" width="300" height="70" /></a></p>
<p>Remarque : Si la personne à plus de 68 ans et que son nom de Famille commence par un ‘A’ alors il sera aussi dans l’affichage</p>
<p><span style="color: #000000;">Exemple avec NOT :</span></p>
<pre class="brush: sql; title: ; notranslate">SELECT * FROM C1 WHERE age NOT IN (20 , 22);</pre>
<p>Ici , on retourne les personnes n’ayant pas 20 ou 22 ans.</p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Nous avons vu ensemble comment sélectionner les données de notre base , notamment des données se trouvant dans une table. Puis, nous avons vu comment restreindre nos données avec la clause WHERE. J’espère que ce premier article vous est assez claire et simple. Je reste à votre disposition pour les remarques ou questions.</p>
<p>Dans le prochain article nous parlerons de la variable de substitution, de la clause ORDER BY … Le but étant de rester dans une optique de progression.Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/sgbd/linstruction-select-et-la-clause-where/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nouveau projet Oracle</title>
		<link>http://www.lolokai.com/sgbd/oracle/nouveau-projet-oracle/</link>
		<comments>http://www.lolokai.com/sgbd/oracle/nouveau-projet-oracle/#comments</comments>
		<pubDate>Mon, 03 Sep 2012 06:00:49 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[IZ0-OO7]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=4577</guid>
		<description><![CDATA[Apres quelques mois d’absence sur le blog, Saïd ASSOUMANI est de retour (pour vous jouer un mauvais tour :p : ). Plus sérieusement : J’ai décidé avec l’accord du propriétaire du blog (Loïc Fontaine) de créer des articles sur Oracle en guise de fiches pour différentes certifications. Attention je ne dis pas que lire ces articles... <a class="moretag" href="http://www.lolokai.com/sgbd/oracle/nouveau-projet-oracle/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<p>Apres quelques mois d’absence sur le blog, Saïd ASSOUMANI est de retour (pour vous jouer un mauvais tour :p : ). Plus sérieusement :</p>
<p>J’ai décidé avec l’accord du propriétaire du blog (Loïc Fontaine) de créer des articles sur Oracle en guise de fiches pour différentes certifications. Attention je ne dis pas que lire ces articles vous permettra de reussir les certifications, mais c’est un bon début. Je vais commencer par la partie SQL pendant quelques semaines, puis passer à la partie PL/SQL et ensuite à la partie Administration &amp; Architecture. Vous l’aurez sans doute remarqué ce nouveau projet va s’étaler sur plusieurs mois.</p>
<p>Avant de rentrer dans le vif du sujet, je vais faire dans cet article une présentation assez succincte d’ORACLE et d’une base de données relationnelle.</p>
<h2><span style="color: #33cccc;">Introduction à ORACLE et présentation du langage SQL</span></h2>
<p>Lorsque j’ai commencé à m’intéresser à ORACLE, j’ai lu dans un livre une citation qui m’a marqué : « Oracle est aujourd’hui aux entreprises ce que l’électricité est à l’ampoule ».</p>
<p>Oracle Corporation est une multinational américaine crée en 1977 par Larry Ellison (Bob Miner &amp; Ed Oates). Depuis plus de trente ans cette multinational jouit d’un énorme succès, notamment grâce à son produit phare « ORACLE DATABASE ».</p>
<p>Pour faire simple, une base de données est un système de stockage de données organisé. Elle va nous servir à stocker différentes informations. La base de données Oracle est un puissant système de gestion de données relationnelles.</p>
<p>Elle propose un moteur de la base, de nombreux outils à l’utilisateur, au développeur et à l’administrateur.</p>
<p>Le modèle de données relationnel comme son nom l’indique est basé sur la notion de « relation », on aura ainsi grâce à nos contraintes (notion étudiée dans un prochain article) des relations entre les différents objets (tables) de notre base de données.</p>
<p>Grace à des opération d’algèbres relationnelle telles que l’intersection, le produit cartésien, jointure, il y aura moins de données dupliquées dans notre base, a mon sens, c’est le point crucial d’une base de données relationnelle.</p>
<p>Maintenant que nous avons notre base de données, comment allons nous stocker ou interroger nos données ?</p>
<p>Pour cela nous allons utiliser le langage SQL. SQL est un langage de requête, standard pour toutes les bases de données qui suivent le modèle relationnel. Il va nous permettre de faire plusieurs opérations sur nos données.</p>
<p>Avec Oracle, on peut associer au langage SQL , un langage procédural : PL/SQL qui ajoute ainsi de nombreuses possibilités ( Je ne m’étale pas plus sur le sujet , vous aurez l’occasion d’étudier ou du moins de lire des articles plus tard)</p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Apres une présentation d’un de nos nouveaux projet pour le blog et une introduction assez rapide du sujet que l’on va développer dans les prochains articles à savoir le langage SQL , j’ose espérer que cela va plaire à bon nombre de lecteur du blog .</p>
<p>Si vous avez des idées sur le sujet , je reste à votre disposition.Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/sgbd/oracle/nouveau-projet-oracle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sauvegarde avec RMAN (Recovery Manager)</title>
		<link>http://www.lolokai.com/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/</link>
		<comments>http://www.lolokai.com/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 09:42:47 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Oracle 11G]]></category>
		<category><![CDATA[Oracle Backup]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle Restore]]></category>
		<category><![CDATA[Recovery Managaer]]></category>
		<category><![CDATA[Recovery Manager]]></category>
		<category><![CDATA[restauration]]></category>
		<category><![CDATA[RMAN]]></category>
		<category><![CDATA[sauvegarde]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3502</guid>
		<description><![CDATA[Introduction Après deux articles sur un logiciel de sauvegarde/restauration à savoir Bacula , je me suis dis pourquoi ne pas continuer sur ce  thème mais dans le cadre des technologies Oracle. Cet article n’est pas forcément destiné au novice dans le sens où il faut déjà avoir une connaissance minimum sur l’architecture Oracle. Je tiens à... <a class="moretag" href="http://www.lolokai.com/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Après deux articles sur un logiciel de sauvegarde/restauration à savoir Bacula , je me suis dis pourquoi ne pas continuer sur ce  thème mais dans le cadre des technologies Oracle.</p>
<p>Cet article n’est pas forcément destiné au novice dans le sens où il faut déjà avoir une connaissance minimum sur l’architecture Oracle. Je tiens à dire avant de commencer que nous n&rsquo;allons pas traiter tous les cas possibles (il faudrait en effet plus d’un article pour y arriver).</p>
<p>Tout au long de ce billet , je vais dans un premier temps vous faire une présentation rapide de RMAN , puis dans un deuxième temps nous allons passer à la partie pratique , alors par pratique j’entends le fait de créer notre environnement de sauvegarde et de lancer une sauvegarde complète de notre base de données , puis en dernier lieu nous verrons assez rapidement quelques types de sauvegardes possible avec RMAN , des solutions sur un ou deux problèmes que j’ai moi même rencontré lors de mon test.</p>
<h2><span style="color: #33cccc;">Présentation de RMAN</span></h2>
<p>Recovery Manager plus communément abrégé en RMAN est un programme standard de la base de données Oracle depuis la version 8i. Nous utiliserons dans ce chapitre les lignes de commande mais il est bon de savoir que RMAN peut être utilisé avec une interface web via OEM.</p>
<p>RMAN compte un certains nombres de composants tels que la base de données à sauvegarder (base cible) , le catalogue de récupération , la zone de récupération flash….</p>
<p>Bon  à savoir :</p>
<p>Il faut savoir que le catalogue de récupération est un composant optionnel de RMAN , cependant je vous conseille de l’utiliser car non seulement il stocke les informations relatives aux différents sauvegardes mais il peut aussi stocker des scripts et conserver une copie du fichier de contrôle d’une base cible.</p>
<p>La zone de récupération simplifie les opérations de sauvegardes et restaurations sur disque. Une fois la stratégie de conversation définie (window/ redundancy ), RMAN se charge automatiquement de supprimer les sauvegardes obsolètes (plus d’informations dans la deuxième partie).</p>
<h2><span style="color: #33cccc;">Rman en pratique : Sauvegarde complète de la notre base de données ORCL</span></h2>
<p>Ici toutes les commandes  sont faites par l’utilisateur « oracle » , notre base de données cible à pour SID « ORCL ».</p>
<p><span style="text-decoration: underline; color: #3366ff;">Nous allons dans un premier temps créer notre catalogue</span></p>
<ul>
<li>Créer notre tablespace et un utilisateur avec les droits</li>
</ul>
<blockquote><p>$ sqlplus /nolog</p>
<p>$ connect /as sysdba</p>
<p>SQL&gt; create tablespace rman</p>
<p>2  datafile &lsquo;/u01/app/oracle/oradata/ORCL/rman01.dbf&rsquo;</p>
<p>3   size 10m autoextend on next 5m ;</p>
<p><em>Tablespace created.</em></p>
<p>SQL&gt; create user rman identified by rmanpwd  default tablespace rman ;</p>
<p><em>User created  </em></p>
<p>SQL&gt; grant connect , resource , recovery_catalog_owner to rman ;</p>
<p><em>Grant succeded.</em></p></blockquote>
<ul>
<li>Maintenant que le tablespace et l’utilisateur sont créés, nous allons créer le catalogue.</li>
<li>On se connecte au catalogue « vierge »</li>
</ul>
<blockquote><p>$ rman catalog rman/rmanpwd@orcl</p>
<p><em>connected to recovery catalog database</em></p>
<p><em></em><em>recovery catalog is not installed</em></p>
<p>RMAN&gt; create catalog ;</p>
<p><em>Recovery catalog created.</em></p></blockquote>
<ul>
<li>Nous allons maintenant enregistrer notre base de données ORCL dans le référentiel (rman target / catalog UtilisateurRman@SidBaseCible)</li>
</ul>
<blockquote><p>$ rman target / catalog rman@orcl</p>
<p>#(un mot de passe vous sera demandé , c’est le mot de passe de l’utilisateur rman dans notre cas rmanpwd)</p>
<p>RMAN&gt; register database ;</p>
<p><em>database registered in recovery catalog</em></p>
<p><em>starting full resync of recovery catalog</em></p>
<p><em>full resync complete</em></p></blockquote>
<p><em></em>Maintenant que tout cela est fait , il nous faut configurer certains paramètres RMAN (dont les fameux window et redundancy vu à l’introduction)</p>
<ul>
<li>Dans un premier temps , allons lister tous les paramètres avec la commande show all:</li>
</ul>
<blockquote><p>RMAN&gt; show all ;</p>
<p>======================================================================</p>
<p>RMAN configuration parameters for database with db_unique_name ORCL are:</p>
<p>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS;</p>
<p>CONFIGURE BACKUP OPTIMIZATION OFF; # default</p>
<p>CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default</p>
<p>CONFIGURE CONTROLFILE AUTOBACKUP ON;</p>
<p>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO &lsquo;%F&rsquo;;</p>
<p>CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;</p>
<p>CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default</p>
<p>CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default</p>
<p>CONFIGURE MAXSETSIZE TO UNLIMITED; # default</p>
<p>CONFIGURE ENCRYPTION FOR DATABASE OFF; # default</p>
<p>CONFIGURE ENCRYPTION ALGORITHM &lsquo;AES128&prime;; # default</p>
<p>CONFIGURE COMPRESSION ALGORITHM &lsquo;BASIC&rsquo; AS OF RELEASE &lsquo;DEFAULT&rsquo; OPTIMIZE FOR LOAD TRUE ; # default</p>
<p>CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default</p>
<p>CONFIGURE SNAPSHOT CONTROLFILE NAME TO &lsquo;/u01/app/oracle/home/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f&rsquo;; # default</p>
<p>======================================================================</p></blockquote>
<ul>
<li>Configuration stratégie de conservation :</li>
</ul>
<p>On a deux méthodes pour la conservation des sauvegardes, d’une part on a la méthode dit « fenêtre de récupération » ou « window » cela permet de régler le délais d’expiration des sauvegardes en nombre de jours .(methode utilisée dans notre cas)</p>
<blockquote><p>RMAN&gt; configure retention policy to recovery windows of 7 days ;</p></blockquote>
<p>Dans notre cas , les sauvegardes datant de plus de 7 jours seront marquées comme obsolètes et supprimer par RMAN si besoin d’espace est.</p>
<p>La deuxième méthode dit « redondance » ou « redundancy » se base pas sur le temps mais sur le nombre de jeux de sauvegardes.</p>
<blockquote><p>RMAN&gt; configure retention policy to redundancy = 3 ;</p></blockquote>
<p>Dans ce cas là , tous les jeux de sauvegardes (fichiers identiques…) seront obsolètes sauf les 3 jeux de sauvegardes les plus récents.</p>
<ul>
<li>Sauvegarde du fichier de contrôle:</li>
</ul>
<p>En raison de l’importance du fichier de contrôle , il serait judicieux de le sauvegarder lors de chaque backup  et de le mettre pourquoi pas dans un dossier spécifique. Pour ce faire dans un premier temps nous allons créer le dossier qui recevra le fichier de contrôle avec l’utilisateur root et donner tous les droits à l’utilisateur oracle puis nous allons configurer au niveau de RMAN.</p>
<blockquote><p>#mkdir  -p /save/rman</p>
<p>#chown –R oracle /save/rman</p>
<p>#chgrp –R dba /save/rman</p>
<p>$ rman target / catalog rman/rmanpwd@orcl</p>
<p>RMAN&gt; configure controlfile autobackup on ;</p>
<p>RMAN&gt; configure controlfile autobackup format for device type disk to ‘/save/rman/cf%F’ ;</p></blockquote>
<ul>
<li>Allons faire en sorte de compresser nos sauvegardes.</li>
</ul>
<p>Lors d’une opération de restauration ou de récupération les fichiers seront automatiquement décompressés.</p>
<blockquote><p>RMAN&gt; configure device type disk backup type to compressed backupset ;</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Les Sauvegardes &lt;==</span></p>
<ul>
<li>Sauvegarde complète de notre base de données : ORCL</li>
</ul>
<p>Dans notre sauvegarde nous allons copier tous les fichiers de la base y compris le SPFILE vers la zone de récupération flash ( je vais vous montrer par la suite un moyen de savoir où se trouve la zone en question)</p>
<blockquote><p>RMAN&gt; backup as backupset database spfile ;</p></blockquote>
<p>après quelques temps vous aurez deux lignes du genre « Finished backup at … » et « Finished Control File and SPFILE Autobackup at … »</p>
<p>Maintenant il faut qu’on assure la présence d’archives redo pour les transactions notamment ceux survenus lors de l’opération de sauvegarde, cela nous garanti la récupération de média après la restauration de cette sauvegarde.</p>
<blockquote><p>RMAN&gt; sql &lsquo;alter system archive log current&rsquo; ;</p></blockquote>
<p>Voir où se trouve la zone de récupération flash, lancez la commande avec l’utilisateur system :</p>
<blockquote><p>SQL &gt; show parameter db_recovery_file_dest</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/04/Capture-decran-2012-04-23-a-23.33.42.png" rel="lightbox[3502]"><img class="size-medium wp-image-3611 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/04/Capture-decran-2012-04-23-a-23.33.42-300x175.png" alt="" width="300" height="175" /></a></p>
<p>Ici on voit que le dossier est : /u01/app/oracle/flash_recovery_area</p>
<p>Regardons un peu dans le dossier</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/04/2.png" rel="lightbox[3502]"><img class="size-medium wp-image-3513 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/04/2-300x192.png" alt="" width="300" height="192" /></a></p>
<h2><span style="color: #33cccc;">D’autres fonctionnalités avec RMAN</span></h2>
<p>Il faut savoir qu’il existe plusieurs types de sauvegardes. Je vais vous parler de quelques-uns avec les commandes adéquates sans pour autant rentrer dans le vif du sujet.</p>
<p>Sauvegarde de tablespace</p>
<p>voir tous les tablespaces disponibles</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/04/3.png" rel="lightbox[3502]"><img class="size-medium wp-image-3514 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/04/3-300x235.png" alt="" width="300" height="235" /></a></p>
<p>Sauvegarder:</p>
<blockquote><p>RMAN&gt; backup as backupset tablespace rman ;</p></blockquote>
<p>Sauvegarde de fichiers de données :</p>
<p>voir les fichiers de données</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/04/4.png" rel="lightbox[3502]"><img class="size-medium wp-image-3515 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/04/4-300x209.png" alt="" width="300" height="209" /></a></p>
<p>Sauvegarder:</p>
<blockquote><p>RMAN&gt; backup as backupset datafile &lsquo;/u01/app/oracle/oradata/orcl/users01.dbf &lsquo;</p></blockquote>
<ul>
<li>Sauvegarder tous les fichiers redo archivés</li>
</ul>
<blockquote><p>RMAN&gt; backup archivelog all ;</p></blockquote>
<ul>
<li>Sauvegarde incrémentale</li>
</ul>
<p>Au lieu de faire des sauvegardes compléte , on peut faire des sauvegardes incrémentales. La première sauvegarde incrémentale doit être de niveau zero , il faut la voir comme une sauvegarde complète puis par la suite on aura des sauvegardes de niveau 1 qui seront soit différentielle par défaut ou cumulatives. La différence c’est que la différentielle agit selon la dernière sauvegarde incrémentale alors que la cumulative agit selon la sauvegarde incrémentale initiale (celle du niveau 0)</p>
<ul>
<li>Sauvegarde incrémentale de niveau 0 + compression :</li>
</ul>
<blockquote><p>RMAN&gt; backup incremental level 0   as compressed backupset datanase ;</p></blockquote>
<ul>
<li>Sauvegarde incrémentale de niveau 1+ compression (par défaut différentielle):</li>
</ul>
<blockquote><p>RMAN&gt; backup as compressed backupset  incremental level 1 datanase ;</p></blockquote>
<ul>
<li>Sauvegarde incrémentale de niveau 1 cumulative + compression :</li>
</ul>
<blockquote><p>RMAN&gt; backup as compressed backupset  incremental level 1 cumulative datanase ;</p></blockquote>
<ul>
<li>Valider nos sauvegardes</li>
</ul>
<p>Il serait bien de vérifier que nos sauvegardes ne présentent pas d’altérations, pour se faire voici quelques exemples de vérifications.</p>
<ul>
<li>Validation de la base entière et les fichier redo archivés</li>
</ul>
<blockquote><p>RMAN&gt; backup validate database archivelog all ;</p></blockquote>
<ul>
<li>Vérifier qu’une restauration sera fait sans problèmes</li>
</ul>
<blockquote><p>RMAN&gt; restore validate database ;</p></blockquote>
<ul>
<li>Erreurs rencontrées</li>
</ul>
<p>Je ne vais pas vous cacher que j’ai appris seul l’utilisation de l’utilitaire RMAN, donc j’ai rencontré quelques problèmes lorsque j’ai dû pratiquer. L’une des erreurs  rencontrées est l’erreur :</p>
<blockquote><p>ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode</p></blockquote>
<p>Pour résoudre :</p>
<ol>
<li>Se connecter à sqlPlus et faire  un shutdown immediate</li>
<li>Monter la base de données</li>
<li>Mettre la base en mode archivelog</li>
<li>Ouvrir la base de données</li>
</ol>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/04/5.png" rel="lightbox[3502]"><img class="size-medium wp-image-3516 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/04/5-300x266.png" alt="" width="300" height="266" /></a></p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Nous venons de voir à travers cet article  ce qu’est l’utilitaire RMAN , nous avons fait ensemble une sauvegarde complète  , vu quelques astuces…</p>
<p>Comme je l’ai dit dans l’introduction, en aucun cas cet article a traité TOUS les aspects et options fournis par RMAN mais au niveau sauvegarde j’ai essayer d’être le plus complet possible. Il faut savoir qu’oracle fourni un autre utilitaire pour les sauvegardes/restaurations,  le Data Pump Export And Import qui fera peut-être l’objet d’un article futur.</p>
<p>En tant qu’administrateur ou autre avez vous déjà utilisé RMAN ? Dans quel cas ?</p>
<p>Quelles options ou méthodes préférez-vous?Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle NET: Connexion à notre base de données depuis un client</title>
		<link>http://www.lolokai.com/systemes/linux/oracle-net-connexion-a-notre-base-de-donnees-depuis-un-client/</link>
		<comments>http://www.lolokai.com/systemes/linux/oracle-net-connexion-a-notre-base-de-donnees-depuis-un-client/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 03:00:04 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Client Oracle]]></category>
		<category><![CDATA[Configurer]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Listener]]></category>
		<category><![CDATA[netmgr]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[Oracle Net]]></category>
		<category><![CDATA[Oracle Networking]]></category>
		<category><![CDATA[réseau]]></category>
		<category><![CDATA[Server Oracle]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=2614</guid>
		<description><![CDATA[Introduction &#171;&#160;Chose promise, chose due.&#160;&#187; Il y a quelques semaines je vous avais promis un article sur Oracle net , le temps est venu . Qu’est ce que Oracle Net : Oracle Net va permettre à des services , produits Oracle situés sur des machines différentes de communiquer entre eux. Ainsi on pourra établir des communications,... <a class="moretag" href="http://www.lolokai.com/systemes/linux/oracle-net-connexion-a-notre-base-de-donnees-depuis-un-client/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p><span style="text-decoration: underline; color: #3366ff;">&laquo;&nbsp;Chose promise, chose due.&nbsp;&raquo;</span></p>
<p>Il y a quelques semaines je vous avais promis un article sur Oracle net , le temps est venu <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p><span style="text-decoration: underline; color: #3366ff;"><span style="text-decoration: underline;">Qu’est ce que Oracle Net :</span></span></p>
<p>Oracle Net va permettre à des services , produits Oracle situés sur des machines différentes de communiquer entre eux. Ainsi on pourra établir des communications, des transferts de données en réseaux entre des machines distinctes (Client &lt;-&gt; Serveur …).</p>
<p>En fait à mon sens le rôle principale d’Oracle net où du moins son avantage premier est le fait de simplifier la vie pour les utilisateurs (clients), en effet les applications n’auront pas besoin de savoir où se trouve le serveur , quel protocole est utilisé pour se connecter….Ils auront juste besoin d’un nom de service réseau et le tour est joué.</p>
<p><span style="text-decoration: underline; color: #3366ff;">== Schéma ==</span></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-09.25.12.png" rel="lightbox[2614]"><img class="size-medium wp-image-2616 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-09.25.12-300x300.png" alt="" width="300" height="300" /></a></p>
<ol>
<li>Clientoracle  veut se connecter à un service en réseaux</li>
<li>Le nom de service est résolu par une certaine méthode(voir configuration)</li>
<li>La demande de connexion est envoyée au Serveuroracle</li>
<li>Serveuroracle à un LISTENER qui renvoie la demande à un service particulier</li>
<li>Ce service particulier va ensuite établir la connexion</li>
</ol>
<h2><span style="color: #33cccc;">Configuration Oracle Net côté serveur</span></h2>
<p>Ici on va configurer le processus d ‘écoute LISTENER. Le but c’est de dire pour quelles bases et comment il « écoute ». Lancer Oracle net Manager(avec l’utilisateur Oracle) :</p>
<blockquote><p>$ORACLE_HOME/bin/netmgr</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">==&gt;Oracle Net Configuration ==&gt;Local ==&gt;Processus d’écoute==&gt; LISTENER</span></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.46.09.png" rel="lightbox[2614]"><img class="size-medium wp-image-2620 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.46.09-300x251.png" alt="" width="300" height="251" /></a></p>
<p>Paramètres généraux :</p>
<p>Journalisation et trace : permet d’activer ou pas la journalisation et la trace. La journalisation enregistre des informations sur le démarrage du LISTENER et des demandes de connexions.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.46.40.png" rel="lightbox[2614]"><img class="size-medium wp-image-2621 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.46.40-300x253.png" alt="" width="300" height="253" /></a></p>
<p>Emplacements d’écoute :</p>
<p>Ici on a mis un LISTENER sur le port 1521 de notre Serveuroracle(localhost) .</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.47.20.png" rel="lightbox[2614]"><img class="size-medium wp-image-2622 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.47.20-300x250.png" alt="" width="300" height="250" /></a></p>
<p>Services de base de données :</p>
<p>Ici on va définir les bases de donnés (dans notre cas ORCL) pour lesquelles le LISTENER accepte les demandes de connexion.</p>
<p>On en a fini avec la configuration Oracle net coté Serveur, il nous faut juste redémarer le LISTENER. Pour ce faire on rentre les commandes suivantes (user oracle)</p>
<blockquote><p>lsnrctl</p></blockquote>
<p>(l’utilitaire se lance et affiche une invite de commande , on va stopper puis redémarrer le LISTENER)</p>
<blockquote><p>LSNRCTL&gt; stop<br />
LSNRCTL&gt; start</p></blockquote>
<h2><span style="color: #33cccc;">Configuration Oracle Net côté client</span></h2>
<p>Ici on va faire deux choses importantes. On va sélectionner les méthodes de résolution de noms et par la suite les configurer. Lancer Oracle net Manager(avec l’utilisateur Oracle) :</p>
<blockquote><p>$ORACLE_HOME/bin/netmgr</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">==&gt;Profil==&gt;Affectation de noms</span></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.12.40.png" rel="lightbox[2614]"><img class="size-medium wp-image-2617 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.12.40-300x249.png" alt="" width="300" height="249" /></a></p>
<p>On a choisit 3 méthodes de résolutions de noms (la methodes Easy Connect , TNSNAMES et Hostname)</p>
<p><span style="text-decoration: underline; color: #3366ff;">==&gt;Résolution de noms de service (il faut en créer  un)</span></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.47.42.png" rel="lightbox[2614]"><img class="size-medium wp-image-2623 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.47.42-300x246.png" alt="" width="300" height="246" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.47.54.png" rel="lightbox[2614]"><img class="size-medium wp-image-2624 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.47.54-300x242.png" alt="" width="300" height="242" /></a></p>
<p>On a choisit le protocole réseau TCP/IP.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.07.png" rel="lightbox[2614]"><img class="size-medium wp-image-2625 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.07-300x252.png" alt="" width="300" height="252" /></a></p>
<p>On donne le nom d’hôte de notre serveur (Serveuroracle) , on aurait pu aussi donner son IP, et le port de communication.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.18.png" rel="lightbox[2614]"><img class="size-medium wp-image-2626 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.18-300x241.png" alt="" width="300" height="241" /></a></p>
<p>On donne le nom complet du service auquel on veut accéder (orcl.localdomain)</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.32.png" rel="lightbox[2614]"><img class="size-medium wp-image-2627 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.32-300x223.png" alt="" width="300" height="223" /></a></p>
<p>On a la possibilité de faire un test de connexion avant de tout enregistrer, on va faire un test avec l’utilisateur oracle (pour cette article le mot de passe de l’utilisateur oracle c’est tout simplement oracle)</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.51.png" rel="lightbox[2614]"><img class="size-medium wp-image-2628 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.48.51-300x229.png" alt="" width="300" height="229" /></a></p>
<p>Voilà on a fini la configuration coté client.</p>
<h2><span style="color: #33cccc;">Connexion à la base de donnée depuis SQLPLUS</span></h2>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.40.55.png" rel="lightbox[2614]"><img class="size-medium wp-image-2619 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/03/Capture-decran-2012-03-31-a-10.40.55-300x205.png" alt="" width="300" height="205" /></a></p>
<p>Voilà , on se rend compte que tout fonctionne bien <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2><span style="color: #33cccc;">Conclusion :</span></h2>
<p>On a vu a travers cet article l’utilité de ORACLE NET , comment configurer ce dernier coté serveur et coté client. Pour ma part ce fut une découverte intéressante, en effet jusqu&rsquo;à il y a quelques semaines je travaillais directement sur le serveur que j’ai installé chez moi , et depuis je peux travailler sur mon ordinateur portable directement c’est vraiment intéressant.</p>
<p>Maintenant place aux commentaires, comme je le dis souvent : La parole est a vous :p</p>
<p>Comment avez-vous trouvé cet article ? En tant que DBA ou informaticien tout simplement utilisez-vous Oracle net ?<br />
Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/systemes/linux/oracle-net-connexion-a-notre-base-de-donnees-depuis-un-client/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle Entreprise Manager (OEM)</title>
		<link>http://www.lolokai.com/systemes/linux/oracle-entreprise-manager-oem/</link>
		<comments>http://www.lolokai.com/systemes/linux/oracle-entreprise-manager-oem/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 03:00:07 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[BD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[automatique]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[de]]></category>
		<category><![CDATA[demarage]]></category>
		<category><![CDATA[données]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[plateforme]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=2052</guid>
		<description><![CDATA[Problèmatique Au vu de mon dernier article , on m&#8217;a demandé s&#8217;il était aussi possible de démarrer OEM automatiquement , et si oui comment le faire ? Introduction Pour ceux ou celles qui se demande ce qu’est OEM(Oracle Entreprise Manager). En fait Oracle Entreprise Manager est un outil d’administration graphique qui nous permet de gérer nos bases... <a class="moretag" href="http://www.lolokai.com/systemes/linux/oracle-entreprise-manager-oem/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<h2><span style="color: #33cccc;"> Problèmatique</span></h2>
<p>Au vu de mon dernier article , on m&rsquo;a demandé s&rsquo;il était aussi possible de démarrer OEM automatiquement , et si oui comment le faire ?</p>
<h2><span style="color: #33cccc;"> Introduction</span></h2>
<p>Pour ceux ou celles qui se demande ce qu’est OEM(Oracle Entreprise Manager).<br />
En fait Oracle Entreprise Manager est un outil d’administration graphique qui nous permet de gérer nos bases de données Oracle (sauvegarde avec RMAN , supervision …)<br />
OEM est « apparut » depuis la version 9i d’ORACLE (client java) et non 10g (accessible par navigateur web) comme la plupart le croient. (Il y aura prochainement des articles exclusivement sur cet outil <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>Pour ce qui en est du script de démarrage de OEM , il ne diffère pas trop de celui qu’on a pu voir dans l’article concernant le démarrage de notre base de donnée.</p>
<h2><span style="color: #33cccc;"> Création du script</span></h2>
<p>Dans le répertoire /etc/init.d/ , créer en tant qu&rsquo;utilisateur root un fichier oraemctl qui contiendra notre script.</p>
<blockquote><p>vim /etc/init.d/oraemctl</p></blockquote>
<p>Contenu de ce fichier :</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash
#
# chkconfig: 35 99 01
# Description : Demarrage et arret automatique d’Oracle Entreprise Manager
# Sur Oracle 11g (et 10g)
#

ORA_OWNER=oracle
ORA_HOME=/u01/app/oracle/product/11.2.0/db_1

case &quot;$1&quot; in

'start')
# Dans le cas ou notre argument est start (/etc/init.d/oramectl start):
# On execute ces commandes:
echo  &quot;Demarrage Oracle Entreprise Manager&quot;
su - $ORA_OWNER -c &quot;$ORA_HOME/bin/emctl start dbconsole&quot;
echo &quot;*** Demarrage OEM Reussi !!***&quot;
;;

'stop')
# Dans le cas ou notre argument est stop (/etc/init.d/oramectl stop):
# On execute ces commandes:
echo &quot;Arret de  Oracle Entreprise Manager &quot;
su - $ORA_OWNER -c &quot;$ORA_HOME/bin/emctl stop dbconsole&quot;
echo &quot;*** Arret  OEM Reussi ! ***&quot;
;;

*)
echo &quot;{start|stop} sont les seules options&quot;
esac
</pre>
<p>Apres la création de notre script on doit changer le groupe du fichier et le rendre exécutable (en root):</p>
<blockquote><p>chgrp dba /etc/init.d/oraemctl<br />
chmod 750 etc/init.d/oraemctl</p></blockquote>
<p>Pour finir on entre la commande suivante :</p>
<blockquote><p>chkconfig &#8211;add dbora</p></blockquote>
<h2><span style="color: #33cccc;"> Conclusion</span></h2>
<p>Maintenant après redémarrage de notre serveur nous avons l’outil Oracle Entreprise Manager qui démarre automatiquement.<br />
Comme je l’ai dit plus haut , nous aurons l’occasion de revoir  cet outil avec plus amples d’informations et de détails dans d’autres billets et croyez-moi, il nous réserve pleins de bonnes choses ^^</p>
<p>Avez vous des questions, des remarques sur cet article ? Utilisez vous cet outil? Si oui a quelle fin ?Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/systemes/linux/oracle-entreprise-manager-oem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Demarrage automatique de notre serveur Oracle sur Linux</title>
		<link>http://www.lolokai.com/systemes/linux/demarrage-automatique-de-notre-serveur-oracle-sur-linux/</link>
		<comments>http://www.lolokai.com/systemes/linux/demarrage-automatique-de-notre-serveur-oracle-sur-linux/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 01:30:23 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[BD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[automatique]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[de]]></category>
		<category><![CDATA[demarage]]></category>
		<category><![CDATA[données]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[plateforme]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=1605</guid>
		<description><![CDATA[Cet article est la suite logique de celui-ci : Installation Server Oracle Rencontrez vous des difficultés lors du premier redemarage de votre Server Oracle sur un Unix ? Si la réponse est oui, cet article est pour vous ! La Problématique En fait sur plate-forme Unix , on a pas contrairement aux plate-formes Windows la création automatique de... <a class="moretag" href="http://www.lolokai.com/systemes/linux/demarrage-automatique-de-notre-serveur-oracle-sur-linux/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<p>Cet article est la suite logique de celui-ci : <a href="http://www.lolokai.com/2012/02/20/systemes/linux/installation-doracle-11g-sur-une-plateforme-redhat/">Installation Server Oracle</a></p>
<p>Rencontrez vous des difficultés lors du premier redemarage de votre Server Oracle sur un Unix ? Si la réponse est oui, cet article est pour vous !</p>
<h2><span style="color: #33cccc;">La </span><span><span style="color: #33cccc;">Problématique</span></span></h2>
<p>En fait sur plate-forme Unix , on a pas contrairement aux plate-formes Windows la création automatique de services qui permettent le démarrage et l’arret automatique des differents composant Oracle (le listenner , la base de donnée , la console OEM…). On se doit alors de créer notre propre script.</p>
<h2><span style="color: #33cccc;">Les pré-requis</span></h2>
<p>Tout d&rsquo;abord, nous devons  changer notre fichier / etc / oratab.</p>
<p><span style="text-decoration: underline;">Pourquoi allons-nous le modifier?</span></p>
<p>Il faut savoir que le fichier oratab est créé par le script root.sh (cf installation Oracle 11G on linux ).<br />
Après avoir installé une nouvelle base de données (dans notre cas orcl), nous devrons modifier notre fichier oratab:</p>
<blockquote><p>vim /etc/oratab</p></blockquote>
<p>Normalement vous avez cette ligne :</p>
<blockquote><p>orcl:/ u01/app/oracle/product/10.2.0/db_1: N</p></blockquote>
<p>Le premier champ est le nom de ma base de données (orcl), le second est le répertoire oracle  (/ u01/app/oracle/product/10.1.0/db_1) et le troisième indique à l&rsquo;utilitaire dbstart si la base de données devrait, ou ne pas être mise en place lors du démarrage du système avec respectivement les paramètres &laquo;&nbsp;Y&nbsp;&raquo; ou &laquo;&nbsp;N&nbsp;&raquo; .</p>
<p>En tant qu&rsquo;utilisateur root, nous devons changer le dernier champ de cette ligne de &laquo;&nbsp;N&nbsp;&raquo; à &laquo;&nbsp;Y&nbsp;&raquo; pour permettre à l&rsquo;utilitaire dbstart de lancer la base de données lors de l&rsquo;exécution du script.</p>
<h2><span style="color: #33cccc;">Création du Script</span></h2>
<p>Dans cette étape, nous allons créer un fichier avec comme nom  dbora (j’aime bien c’est le prénom de ma copine ^^) et écrire un petit script à exécuter lors du démarrage et arrêt de notre système.</p>
<p>Nous allons deja créer note script dans le repertoire etc/init.d/ en tant que root :</p>
<blockquote><p>touch /etc/init.d/dbora vim /etc/init.d/dbora</p></blockquote>
<p>Qui contiendra :</p>
<pre class="brush: bash; title: ; notranslate">

#!/bin/sh

#
# chkconfig: 35 99 01
# description: Demarage et arret automatique des services oracle.
#
# Les variables d'environnement:
#
# - $ORA_HOME : chemin vers le reepertoire Oracle ou l'on executera

# nos dbstart et dbshut
#
# - $ORA_HOME_LISTENER = $ORA_HOME (depuis la version 11g)
#
# - $ORA_OWNER : nom de notre compte Oracle
#
#Initialisation des variable
ORA_HOME=/u01/app/oracle/product/11.2.0/db_1

ORA_OWNER=oracle

if [ ! -f  $ORA_HOME/bin/dbstart ]then

echo &quot;Oracle startup: cannot start&quot;
exit
fi
case &quot;$1&quot; in

'start')
# Dans le cas ou notre argument est start (/etc/init.d/dbora start): # On execute cette commande:
su - $ORA_OWNER -c &quot;$ORA_HOME/bin/dbstart $ORA_HOME&quot;
#puis nous creons dans la volée un fichier qui montre que la BD est démarré
touch /var/lock/subsys/dbora
echo &quot;*** Base de donnée Demarer ! ***&quot;

;;

'stop')
# Dans le cas ou notre argument est stop (/etc/init.d/dbora start): # On execute cette commande:
su - $ORA_OWNER -c &quot;$ORA_HOME/bin/dbshut $ORA_HOME&quot;
# on supprime le fichier ,on sera de cette facon que la base n'est pas démarré
rm -f /var/lock/subsys/dbora
echo &quot;*** Base de donnée arreter ! ***&quot;
;;

esac
</pre>
<p>Remarque : Depuis la version 11g , le démarrage et l’arrêt des processus d’ecoute (les listeners) sont fait automatiquement lors du démarrage et de l&rsquo;arrêt de la base de donnée.<br />
Apres la création de notre script on doit changer le groupe du fichier et le rendre exécutable, pour ce faire on exécute les commandes suivantes (en root):</p>
<blockquote><p>chgrp dba /etc/init.d/dbora<br />
chmod 750 etc/init.d/dbora</p></blockquote>
<p>Pour finir on rentre la commande suivante :</p>
<blockquote><p>chkconfig &#8211;add dbora</p></blockquote>
<p>(Pour information, cette commande va prendre en compte la première ligne de commentaire dans notre script, et va créer des liens symboliques vers le script dans les répertoires d’autre niveau d’exécution… je ne vais pas rentrer dans les détails … sinon je sent que je vais perdre des lecteurs :p )</p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Maintenant notre serveur est opérationnel, après le redémarrage de notre serveur nous n’aurons plus les différentes erreurs que l’on a pu rencontrer. Notre base de donnée démarre automatiquement lors du démarrage du système et s’arrête lors de l’arrêt de ce dernier.</p>
<p>C’est un véritable bonheur <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Après l’installation de notre serveur, de la gestion du démarrage , nous verrons dans les prochains articles comment installer un client et ce qu’est l’utilitaire Oracle Net… Donc n’hésité pas à revenir  ^^</p>
<p>Que pensez-vous de ce billet?  Avez-vous d’autres solutions ou remarque à soumettre ? La parole est à vous <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/systemes/linux/demarrage-automatique-de-notre-serveur-oracle-sur-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation d&#8217;Oracle 11G sur une plateforme RedHat</title>
		<link>http://www.lolokai.com/systemes/linux/installation-doracle-11g-sur-une-plateforme-redhat/</link>
		<comments>http://www.lolokai.com/systemes/linux/installation-doracle-11g-sur-une-plateforme-redhat/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 16:07:50 +0000</pubDate>
		<dc:creator>Said ASSOUMANI</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Planet-Libre]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[de]]></category>
		<category><![CDATA[données]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[plateforme]]></category>
		<category><![CDATA[redhat]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=1368</guid>
		<description><![CDATA[Ici je pars du principe que vous avez deja installé votre plateforme unix (dans ce billet , nous utiliserons une plate-forme Red-Hat [Oracle Entreprise Linux 5], l’installation sur les autres plateformes Linux est similaire). Sauf précisions, toutes les manipulations sont effectuées avec l&#8217;utilisateur root. Pré-requis Exigences matérielles 1 Go de memoire physique minimum  L’espace swap... <a class="moretag" href="http://www.lolokai.com/systemes/linux/installation-doracle-11g-sur-une-plateforme-redhat/"> Lire la suite &#187; </a>]]></description>
				<content:encoded><![CDATA[<p>Ici je pars du principe que vous avez deja installé votre plateforme unix (dans ce billet , nous utiliserons une plate-forme Red-Hat [Oracle Entreprise Linux 5], l’installation sur les autres plateformes Linux est similaire). Sauf précisions, toutes les manipulations sont effectuées avec l&rsquo;utilisateur root.</p>
<h2><span style="color: #33cccc;">Pré-requis</span></h2>
<p><span style="text-decoration: underline; color: #3366ff;">Exigences matérielles</span></p>
<ul>
<li>1 Go de memoire physique minimum</li>
<li> L’espace swap doit être egal à 1.5 * memoire_physique (si &lt; 2Go)</li>
<li> 400 Mo d’espace temporaire minimum (/tmp)</li>
</ul>
<h2><span style="color: #33cccc;">Configuration</span></h2>
<p><span style="text-decoration: underline; color: #3366ff;">Le noyau</span></p>
<p>Ouvrez votre terminal, puis entrez la commande suivante :</p>
<blockquote><p>vim /etc/sysctl.conf</p></blockquote>
<p>Rajouter ces lignes à la fin :</p>
<blockquote><p>kernel.shmmni = 4096<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 6815744<br />
fs.aio-max-nr = 1048576<br />
net.ipv4.ip_local_port_range = 9000 65500<br />
net.core.rmem_default = 1048576<br />
net.core.rmem_max = 4194304<br />
net.core.wmem_default = 262144<br />
net.core.wmem_max = 1048576</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">PAM</span></p>
<p>Maintenant on va modifier notre fichier /etc/pam.d/login , on y rajoutant une ligne :</p>
<blockquote><p><strong>echo  &laquo;&nbsp;session    required     pam_limits.so &nbsp;&raquo; &gt;&gt; /etc/pam.d/login</strong></p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Le shell pour le compte oracle</span></p>
<p>On va ajouter certaines lignes dans notre fichier /etc/security/limits.conf. Le but ici est d’améliorer les performances du logiciel, en augmentant les limites pour notre futur compte oracle.</p>
<blockquote><p>vim /etc/security/limits.conf</p></blockquote>
<p>Rajouter ces lignes à la fin :</p>
<blockquote><p>oracle              soft    nproc   2047<br />
oracle              hard    nproc   16384<br />
oracle              soft    nofile  1024<br />
oracle              hard    nofile  65536</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Création des utilisateurs et des groupes</span></p>
<blockquote><p><strong>groupadd oinstall<br />
</strong><strong>groupadd dba<br />
</strong><strong>useradd  -m –g oinstall –G dba –d /home/oracle –s /bin/bash  oracle<br />
</strong><strong>passwd oracle<br />
</strong><strong>mkdir –p /u01/home/oracle/product/11.2.0/db_1<br />
</strong><strong>chown –R oracle :oinstall /u01</strong>
</p></blockquote>
<p>Ici on crée deux groupes (oinstall et dba) et un compte utilisateur &lsquo;oracle&rsquo; ayant pour groupe principal oinstall et groupe secondaire dba .<br />
On définit au passage son répertoire home et son shell par défaut. Dans la suite de cet article ce compte nous sera utilise pour l’installation.<br />
<span style="text-decoration: underline; color: #3366ff;">L’environnement du compte oracle</span></p>
<blockquote><p><strong>cd /home/oracle<br />
</strong><strong>vim .bash_profile</strong></p></blockquote>
<p>Rajoutez ces lignes à la fin :</p>
<blockquote><p>umask 022<br />
export ORACLE_HOME=/u01/home/oracle/product/11.2.0/db_1<br />
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib<br />
export PATH=$ORACLE_HOME/bin:$PATH</p></blockquote>
<p>Ici  dans un premier temps on défini les droits d’accès par défaut des nouveaux fichiers , et dans un deuxième temps on défini de manière permanente notre variable PATH.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Dossier Oracle 11g</span></p>
<p>Si tout comme moi vous avez téléchargé l’installation depuis le site <a href="http://www.oracle.com">www.oracle.com</a>, l’installation est séparée en deux fichier zip : <strong>linux.x64_11gR2_database_1of2.zip</strong>  et <strong>linux.x64_11gR2_database_2of2.zip</strong></p>
<p>Après décompression nous avons deux dossiers : database et database 2. Maintenant rendez-vous dans le dossier : database 2 -&gt; stage -&gt; Components. Puis, copiez tout dans : databse -&gt;stage -&gt; Components. Maintenant copier le dossier database dans : /tmp</p>
<p>Et enfin faire :</p>
<blockquote><p><strong>chown –R oracle :oinstall /tmp/database</strong></p></blockquote>
<p><span style="text-decoration: underline;">Redémarrez votre machine et logguez-vous avec le compte oracle</span></p>
<h2><span style="color: #33cccc;">Installation</span></h2>
<p>Lancez l&rsquo;installation :</p>
<blockquote><p><strong>Oracle$ cd /tmp/databse<br />
</strong><strong>Oracle$ cd ./runInstaller</strong></p></blockquote>
<p>Maintenant, suivez l&rsquo;installation au travers des captures ci-dessous :<br />
<a href="http://www.lolokai.com/wp-content/uploads/2012/02/image008.png" rel="lightbox[install11g]"><img class="alignnone size-medium" src="http://www.lolokai.com/wp-content/uploads/2012/02/image008-300x226.png" alt="" width="300" height="226" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image010.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1347" src="http://www.lolokai.com/wp-content/uploads/2012/02/image010-300x222.png" alt="" width="300" height="222" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image012.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1348" src="http://www.lolokai.com/wp-content/uploads/2012/02/image012-300x227.png" alt="" width="300" height="227" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image014.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1349" src="http://www.lolokai.com/wp-content/uploads/2012/02/image014-300x246.png" alt="" width="300" height="246" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image016.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1350" src="http://www.lolokai.com/wp-content/uploads/2012/02/image016-300x217.png" alt="" width="300" height="217" /></a></p>
<p><em>Ici j’ai  fait exprès de montrer les erreurs qui pourraient vous arriver , en effet il se peut qu’il vous manque des packages (il suffit juste de les installer et re-verifier :p )<br />
</em><em>Pour ce qui  utilise la même distribution que moi, il vous faut monter le DVD puis :</em></p>
<blockquote><p><strong>cd /media/Entrepris…./Server</strong></p></blockquote>
<p><em>Vous trouverez tous les packages nécessaires dans ce dossier.</em></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image018.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1351" src="http://www.lolokai.com/wp-content/uploads/2012/02/image018-300x199.png" alt="" width="300" height="199" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image020.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1352" src="http://www.lolokai.com/wp-content/uploads/2012/02/image020-300x174.png" alt="" width="300" height="174" /></a></p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/02/image022.png" rel="lightbox[install11g]"><img class="alignnone size-medium wp-image-1353" src="http://www.lolokai.com/wp-content/uploads/2012/02/image022-300x171.png" alt="" width="300" height="171" /></a></p>
<blockquote><p><strong>cd /u01/app/oraInventory/<br />
</strong><strong>./orainstRoot.sh<br />
</strong><strong>cd /u01/home/oracle/product/11.2.0/db_1<br />
</strong><strong>./root.sh</strong></p></blockquote>
<p>Maintenant, appuyez sur &laquo;&nbsp;OK&nbsp;&raquo;</p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Félicitations &#8230; <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Nous avons finalement finit notre première installation du serveur Oracle 11G sur Linux . Cependant nous nous devons de ne pas nous arrêter en si bon chemin, nous devrons configurer notre serveur, installer nos clients&#8230; mais ceci est un autre histoire (restez-donc à l’affût des prochains articles :p ).</p>
<p>Avez vous des questions ? Que pensez-vous de cette installation ? L&rsquo;avez-vous déjà installé sur une autre plateforme.Said ASSOUMANI</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/systemes/linux/installation-doracle-11g-sur-une-plateforme-redhat/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

 Served from: lolokai.com @ 2013-06-18 10:11:29 by W3 Total Cache -->