<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2frenchfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blog de Lolokai</title>
	
	<link>http://www.lolokai.com</link>
	<description>L'informatique sous tout ses angles</description>
	<lastBuildDate>Sat, 26 May 2012 13:35:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Lolokai" /><feedburner:info uri="lolokai" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=fr&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/bn/intatm_fr_1.gif">Subscribe with Mon Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Lolokai" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FLolokai" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Connaitre la santé de son serveur de virtualisation VMware</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/GDFzfinecp4/</link>
		<comments>http://www.lolokai.com/2012/05/25/virtualisation/vmware-virtualisation/connaitre-la-sante-de-son-serveur-de-virtualisation-vmware/#comments</comments>
		<pubDate>Fri, 25 May 2012 05:00:30 +0000</pubDate>
		<dc:creator>Lolok@!</dc:creator>
				<category><![CDATA[VMware]]></category>
		<category><![CDATA[état]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[connaitre]]></category>
		<category><![CDATA[esxi]]></category>
		<category><![CDATA[santé]]></category>
		<category><![CDATA[superviser]]></category>
		<category><![CDATA[supervision]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vsphere]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3240</guid>
		<description><![CDATA[Introduction La virtualisation permet de s&#8217;affranchir de la gestion du matériel pour les machines virtuelle. Cependant, afin d&#8217;éviter une interruption de service il est préférable de vérifier l&#8217;état physique de votre hyperviseur. Pour connaitre l’état de votre hyperviseur VMware (ESXi), lancez vSphere Client sur le poste de votre choix et logguez-vous sur votre serveur ESXi avec un utilisateur ayant suffisamment de droits. Une fois que la fenêtre de la console, choisissez en haut « Page d’accueil » ==&#62; « Inventaire » ==&#62;« Inventaire ». [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>La virtualisation permet de s&#8217;affranchir de la gestion du matériel pour les machines virtuelle. Cependant, afin d&#8217;éviter une interruption de service il est préférable de vérifier l&#8217;état physique de votre hyperviseur. Pour connaitre l’état de votre hyperviseur VMware (ESXi), lancez vSphere Client sur le poste de votre choix et logguez-vous sur votre serveur ESXi avec un utilisateur ayant suffisamment de droits.</p>
<p>Une fois que la fenêtre de la console, choisissez en haut « Page d’accueil » ==&gt; « Inventaire » ==&gt;« Inventaire ».<br />
Cliquez l’adresse IP de votre serveur à gauche, puis rendez-vous dans l’onglet « Configuration », puis vérifiez que vous êtes bien dans la catégorie &laquo;&nbsp;Matériel&nbsp;&raquo; ==&gt; &laquo;&nbsp;Etat de santé&nbsp;&raquo;.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/santé-VMWARE.png" rel="lightbox[3240]"><img class="aligncenter size-medium wp-image-4114" title="santé VMWARE" src="http://www.lolokai.com/wp-content/uploads/2012/05/santé-VMWARE-300x167.png" alt="" width="300" height="167" /></a></p>
<p style="text-align: left;">Maintenant, si le statut du serveur est définit à :</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/statut-VMWARE.png" rel="lightbox[3240]"><img class="aligncenter size-full wp-image-4115" title="statut VMWARE" src="http://www.lolokai.com/wp-content/uploads/2012/05/statut-VMWARE.png" alt="" width="199" height="68" /></a></p>
<p style="text-align: left;">Cela signifie que votre serveur ne rencontre aucun problèmes de santé. Cliquez sur le « plus » pour avoir plus d’informations sur l’état de votre serveur.</p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p style="text-align: left;">Nous avons vu dans cet article comment vérifier l&#8217;état physique d&#8217;un serveur ESXi via vSphere Client. Cependant, il est aussi possible de superviser cet état via un serveur de supervision : <a href="http://www.lolokai.com/2011/06/10/virtualisation/configurer-nagios-pour-superviser-un-environnement-vsphere-4-esxi-vcenter-centos/">voir ici</a>.</p>
<p style="text-align: left;">Utilisez-vous une autre méthode pour vérifier l&#8217;état de santé de votre serveur de virtualisation ?</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/GDFzfinecp4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/25/virtualisation/vmware-virtualisation/connaitre-la-sante-de-son-serveur-de-virtualisation-vmware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/25/virtualisation/vmware-virtualisation/connaitre-la-sante-de-son-serveur-de-virtualisation-vmware/</feedburner:origLink></item>
		<item>
		<title>Terminal Services sous Windows serveur 2008 R2</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/XnumGFr_CZk/</link>
		<comments>http://www.lolokai.com/2012/05/24/systemes/microsoft-3/terminal-services-sous-windows-serveur-2008-r2/#comments</comments>
		<pubDate>Thu, 24 May 2012 03:00:42 +0000</pubDate>
		<dc:creator>taochy.samuel</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Bureau à distance]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[Remote Desktop]]></category>
		<category><![CDATA[Terminal Server]]></category>
		<category><![CDATA[terminal services]]></category>
		<category><![CDATA[TS]]></category>
		<category><![CDATA[tse]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=4034</guid>
		<description><![CDATA[Introduction La majorité d&#8217;entre vous pour ne pas dire tous, connait la fonctionnalité &#171;&#160;Bureau à distance&#160;&#187; disponible sous XP, Vista et Windows 7 (côté client). Cette fonctionnalité permettant d’accéder à distance à une machine où est activée l&#8217;option &#171;&#160;Bureau à distance&#160;&#187; et en renseignant son IP dans l&#8217;utilitaire &#171;&#160;Connexion Bureau à Distance&#160;&#187;. Cet outil très utile côté client mais &#171;&#160;Bureau à distance&#160;&#187; ne permet que l&#8217;ouverture d&#8217;une session à la fois ce qui peut être problématique dans [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>La majorité d&#8217;entre vous pour ne pas dire tous, connait la fonctionnalité &laquo;&nbsp;Bureau à distance&nbsp;&raquo; disponible sous XP, Vista et Windows 7 (côté client). Cette fonctionnalité permettant d’accéder à distance à une machine où est activée l&#8217;option &laquo;&nbsp;Bureau à distance&nbsp;&raquo; et en renseignant son IP dans l&#8217;utilitaire &laquo;&nbsp;Connexion Bureau à Distance&nbsp;&raquo;. Cet outil très utile côté client mais &laquo;&nbsp;Bureau à distance&nbsp;&raquo; ne permet que l&#8217;ouverture d&#8217;une session à la fois ce qui peut être problématique dans le cas d&#8217;un serveur.</p>
<p>C&#8217;est pour cela que Windows Server propose une alternative avec le rôle &laquo;&nbsp;Terminal Server&nbsp;&raquo;. Ce rôle contrairement à &laquo;&nbsp;Bureau à Distance&nbsp;&raquo; permet d&#8217;avoir des sessions multi-utilisateurs à distance. Grâce à ce rôle on peut rendre le serveur, tout comme des applications (propre à l&#8217;entreprise) accessibles à distance. Nous allons donc voir ensemble comment installer et configurer un terminal server pour utiliser à distance son serveur Windows 2008 R2.</p>
<h2><span style="color: #33cccc;">Installation</span></h2>
<p>Maintenant passons à l&#8217;installation du rôle &laquo;&nbsp;Terminal Server&nbsp;&raquo;. Comme indiqué il faut installer le rôle, donc <strong>Server Manager -&gt; Ajouter des rôles</strong> et choisissez le rôle &laquo;&nbsp;Service Bureau à distance&nbsp;&raquo;.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/Ajout-de-role1.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4050" src="http://www.lolokai.com/wp-content/uploads/2012/05/Ajout-de-role1-300x220.jpg" alt="" width="300" height="220" /></a></p>
<p>Dans mon exemple, j&#8217;installe le &laquo;&nbsp;Hôte de session de bureau à distance&nbsp;&raquo; pour permettre aux utilisateurs de se connecter. Et je rajoute l&#8217;Accès de Bureau à distance par le web, nouveauté de 2008, qui permet d&#8217;accéder à des applications via une plateforme Web. Ce dernier service installera le serveur web IIS si ce n&#8217;est déjà fait.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/Ajout-de-role.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4037" src="http://www.lolokai.com/wp-content/uploads/2012/05/Ajout-de-role-300x217.jpg" alt="" width="300" height="217" /></a></p>
<p>Avant d&#8217;installer  tout cela, l&#8217;assistant vous affiche un avertissement disant qu&#8217;il vaut mieux installer le rôle avant toutes applications que l&#8217;ont veut rendre accessibles. Essayons de comprendre&#8230; Quand vous exécuter un logiciel sur une machine il écrit dans sa base de registre machine. Le souci est que dans un environnement multi-utilisateur, il est necessaire qu&#8217;un utilisateur ait dans l&#8217;application son propre &laquo;&nbsp;Workspace&nbsp;&raquo;. Il faut donc que le logiciel n&#8217;écrive pas dans le registre machine, mais dans le registre utilisateur, pour que chaque utilisateur ait son environnement applicatif propre à lui. C&#8217;est pour cela qu&#8217;il est necessaire d&#8217;installer les applications après le rôle, car après le rôle les logiciels seront installés de façon à gérer ces problèmes.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/avertissement.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4038" src="http://www.lolokai.com/wp-content/uploads/2012/05/avertissement-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p>Ensuite il nous ai demandé de choisir la méthode d&#8217;authentification. Il existe deux méthodes l&#8217;une &laquo;&nbsp;Exiger l&#8217;authentification au niveau du réseau&nbsp;&raquo; utilise le NLA mais pas toute les versions de &laquo;&nbsp;Bureau à distance&nbsp;&raquo; le prend en charge. Cette technique est plus sécurisée et demande en plus d&#8217;entrer l&#8217;IP de la machine distante un nom d&#8217;utilisateur et le mot de passe. L&#8217;autre n&#8217;utilise pas NLA et permet aux anciennes versions de &laquo;&nbsp;Bureau à distance&nbsp;&raquo; de s&#8217;y connecter. Il suffit uniquement de l&#8217;IP et l&#8217;authentification se fait une fois connecté. Pour permettre aux anciennes versions de &laquo;&nbsp;Bureau à distance&nbsp;&raquo; de se connecter on sélectionnera &nbsp;&raquo;Ne nécessite pas l&#8217;authentification au niveau du réseau&nbsp;&raquo;.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/authentification.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4040" src="http://www.lolokai.com/wp-content/uploads/2012/05/authentification-300x226.jpg" alt="" width="300" height="226" /></a></p>
<p>Pour le choix de mode de license c&#8217;est à vous de choisir selon les recommandations de l&#8217;entreprise. Moi pour cet exemple j&#8217;ai choisi de configurer ultérieurement car je n&#8217;ai pas de license terminal server. Mais d&#8217;après vos stratégies d&#8217;entreprise choisissez de délivrer une license terminal server à un utilisateur ou à une machine.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/mode-licence.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4041" src="http://www.lolokai.com/wp-content/uploads/2012/05/mode-licence-300x221.jpg" alt="" width="300" height="221" /></a></p>
<p>Maintenant l&#8217;assistant vous demande à quels groupes d&#8217;utilisateurs permettez vous l&#8217;accès distant. Vous pouvez ajouter des groupes mais vous ne pouvez pas supprimer le groupe Administrateur.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/grp.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4042" src="http://www.lolokai.com/wp-content/uploads/2012/05/grp-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p>Ensuite il vous ai demandé si vous voulez autoriser à vos utilisateur à distance de béneficier d&#8217;Aero, de la lecture de musique ou de film ou d&#8217;utiliser l&#8217;enregistrement audio. Personnellement je n&#8217;autorise rien car pour moi, dans un environnement de travail mes clients distant n&#8217;ont pas besoin de tout cela.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/experience-client.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4043" src="http://www.lolokai.com/wp-content/uploads/2012/05/experience-client-300x219.jpg" alt="" width="300" height="219" /></a></p>
<p>Après confirmation, les composants sont installés et il faudra redémarrer l&#8217;ordinateur.</p>
<p>Ensuite, après avoir vérifier que dans l&#8217;accès du &laquo;&nbsp;bureau à distance&nbsp;&raquo; l&#8217;option &laquo;&nbsp;autoriser les connexions avec toutes les versions de Bureau à distance&nbsp;&raquo; soit cochée,vous pouvez essayer de vous connecter à distance, munissez-vous de l&#8217;IP du serveur et d&#8217;un compte utilisateur.</p>
<p>Dans mon exemple j&#8217;ai utilisé l&#8217;utilitaire bureau à distance pour mac. <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/co-via-mac.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4044" src="http://www.lolokai.com/wp-content/uploads/2012/05/co-via-mac-300x249.jpg" alt="" width="300" height="249" /></a></p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/co-mac-2.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4045" src="http://www.lolokai.com/wp-content/uploads/2012/05/co-mac-2-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p>Je vous propose maintenant de tester l&#8217;accès via le Web. Pour cela il faut d&#8217;abord ajouter des applications à partager. Pour cela <strong>Outils d&#8217;administration -&gt; Service Bureau à Distance -&gt; Gestionnaire RemoteApp</strong> et dans la fenêtre menu de droite cliquer sur &laquo;&nbsp;Ajouter des programmes RemoteApp&nbsp;&raquo;. Pour l&#8217;exemple j&#8217;ai ajouté Wordpad et Paint.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/app-remote-app.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4046" src="http://www.lolokai.com/wp-content/uploads/2012/05/app-remote-app-300x227.jpg" alt="" width="300" height="227" /></a></p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/paint-wordpad.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4047" src="http://www.lolokai.com/wp-content/uploads/2012/05/paint-wordpad-300x293.jpg" alt="" width="300" height="293" /></a></p>
<p>Une fois ajouté il vous suffit de vous connecter sur votre client. Pour cela ouvrez une page web tapez l&#8217;adresse &laquo;&nbsp;https://IP_de_votre_machine/RDWeb&nbsp;&raquo; et vous allez arriver sur la page d&#8217;accueil de remoteApp.</p>
<p style="text-align: center;"><strong><span style="color: red;">/!\ RemoteApp est compatible  uniquement avec Windows Server 2008, Windows Vista, Seven et XP SP3 /!\</span></strong></p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/RD-Web.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4048" src="http://www.lolokai.com/wp-content/uploads/2012/05/RD-Web-300x208.jpg" alt="" width="300" height="208" /></a></p>
<p>Une fois logué, vous arrivez sur la page RemoteApp. Comme vous pouvez le voir il y a trois onglets, un pour les programmes un pour vous connecter à votre bureau à distance et l&#8217;onglet configuration accessible uniquement par les administrateurs. Il vous suffit de lancer l&#8217;application pour qu&#8217;elle s&#8217;exécute.</p>
<p style="text-align: center;"> <a href="http://www.lolokai.com/wp-content/uploads/2012/05/accueil-RDWEB.jpg" rel="lightbox[4034]"><img class="alignnone size-medium wp-image-4049" src="http://www.lolokai.com/wp-content/uploads/2012/05/accueil-RDWEB-300x139.jpg" alt="" width="300" height="139" /></a></p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Dans ce billet, nous avons vu comment utiliser à distance notre Server 2008 R2. Pour permettre une réelle utilisation nous avons vu le terminal server et sa configuration. Nous avons également vu la nouveauté de 2008 qu&#8217;est RemoteApp la plateforme Web permettant d&#8217;utiliser une page Web pour accéder aux applications Terminal Server.</p>
<p>Avez-vous déjà mis en place une telle technologie en entreprise et pouvez-vous nous partager votre expérience ?</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/XnumGFr_CZk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/24/systemes/microsoft-3/terminal-services-sous-windows-serveur-2008-r2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/24/systemes/microsoft-3/terminal-services-sous-windows-serveur-2008-r2/</feedburner:origLink></item>
		<item>
		<title>L’outil SQL *PLUS</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/ACPqNcswHJk/</link>
		<comments>http://www.lolokai.com/2012/05/22/sgbd/oracle/loutil-sql-plus/#comments</comments>
		<pubDate>Tue, 22 May 2012 03:00:53 +0000</pubDate>
		<dc:creator>OracleBoy</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Buffer SQL *PLUS...]]></category>
		<category><![CDATA[iSQL *PLUS]]></category>
		<category><![CDATA[Mise en Forme]]></category>
		<category><![CDATA[ORACLE 10g]]></category>
		<category><![CDATA[Oracle 11G]]></category>
		<category><![CDATA[Requete]]></category>
		<category><![CDATA[SQL *PLUS]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3999</guid>
		<description><![CDATA[Introduction Un des outils principal pour l’utilisation du SQL voire PL/SQL est l’interface SQL *PLUS. En effet cet outil va nous permettre de manipuler et d’exécuter des commandes SQL et PL/SQL, de mettre en forme les résultats de nos requêtes… Pour ce qui, comme moi on connu l’interface web de SQL *PLUS à savoir iSQL *PLUS et l’application graphique Windows (sqlplusw.exe) , il faut savoir que depuis la Version 11G ils n’existent plus , il reste [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Un des outils principal pour l’utilisation du SQL voire PL/SQL est l’interface SQL *PLUS. En effet cet outil va nous permettre de manipuler et d’exécuter des commandes SQL et PL/SQL, de mettre en forme les résultats de nos requêtes… Pour ce qui, comme moi on connu l’interface web de SQL *PLUS à savoir iSQL *PLUS et l’application graphique Windows (sqlplusw.exe) , il faut savoir que depuis la Version 11G ils n’existent plus , il reste juste la version en ligne de commande.</p>
<h2><span style="color: #33cccc;">Quelques commandes SQL *PLUS</span></h2>
<p>Ici les commandes que nous verrons sont loin d’être exhaustives.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Connexion Base de Données</span></p>
<blockquote><p>sqlplus [nom_utilisateur[/mot_de_passe]][@sid_base_donne]]</p>
<p>$sqlplus OracleBoy/myPwd</p>
<p>SQL&gt;</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Pour se déconnecter, on tape :</span></p>
<blockquote><p>DISCONNECT</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Requête</span></p>
<p>Pour effectuer une requête rien d’extraordinaire :</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.35.25.png" rel="lightbox[3999]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.35.25-300x160.png" alt="" width="300" height="160" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">List </span></p>
<p>Cette commande va nous permettre de voir ce qu’il y a un niveau du buffer , notamment notre dernière instruction SQL</p>
<blockquote><p>LIST [ x | x y | LAST | *]</p></blockquote>
<p>Avec comme arguments :</p>
<ul>
<li>* : ligne courante</li>
<li>LAST : dernière ligne</li>
<li>x,y : numéro de ligne</li>
</ul>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.36.25.png" rel="lightbox[3999]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.36.25-300x131.png" alt="" width="300" height="131" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">Input</span></p>
<p>Cette commande va nous permettre d’ajouter une ligne au buffer après la ligne courante.</p>
<blockquote><p>INPUT [suite_requete]</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.46.43.png" rel="lightbox[3999]"><img class="alignnone size-medium wp-image-4004" src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.46.43-260x300.png" alt="" width="260" height="300" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">CHANGE et RUN</span></p>
<p>La commande CHANGE va nous permettre de changer un mot par un autre et RUN d’executer l’instruction dans le BUFFER :</p>
<p>Dans l’exemple, je me suis trompé au niveau du nom de la table , je vais alors changer employees par departments puis exécuter l’instruction se trouvant dans le buffer.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.59.43.png" rel="lightbox[3999]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-11.59.43-300x291.png" alt="" width="300" height="291" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">DEL</span></p>
<p>Cette commande va nous permettre de supprimer une ou plusieurs lignes du buffer.</p>
<blockquote><p>DEL[ x | x y | LAST | *]</p></blockquote>
<p>Avec pour arguments :</p>
<ul>
<li>* : ligne courante</li>
<li>LAST : dernière ligne</li>
<li>x,y : numero de ligne</li>
</ul>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-12.05.52.png" rel="lightbox[3999]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-12.05.52-300x217.png" alt="" width="300" height="217" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">SAVE et GET</span></p>
<p>La commande SAVE va nous permettre de sauvegarder ce qu’il y a dans le buffer dans un fichier :</p>
<blockquote><p>SAVE nom_fichier [{CREATE|REPLACE|APPEND}]</p></blockquote>
<p>Avec pour arguments :</p>
<ul>
<li>CREATE :par defaut , crée un nouveau fichier</li>
<li>REPLACE : remplace ce qu’il y a dans le fichier</li>
<li>APPEND : ajoute le buffer a la fin du fichier</li>
</ul>
<div>La commande GET de récupérer ce qu’il y a dans le fichier :</div>
<blockquote><p>GET nom_fichier</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-12.15.11.png" rel="lightbox[3999]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-12.15.11-300x187.png" alt="" width="300" height="187" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">START, @ , @@</span></p>
<p>Ces trois commande nous permettent d&#8217;éxecuter les instructions se trouvant dans un fichier :</p>
<blockquote><p>START mon_fichier | @mon_fichier | @@mon_fichier</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-12.18.03.png" rel="lightbox[3999]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-13-à-12.18.03-300x151.png" alt="" width="300" height="151" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">CLEAR</span></p>
<p>Il est souvent nécessaire d’effacer ce qu’il y a sur l’écran ou du moins sur notre interface : pour cela vous devez taper :</p>
<blockquote><p>CLEAR SCREEN</p></blockquote>
<p>Pour effacer le buffer :</p>
<blockquote><p>CLEAR BUFFER</p></blockquote>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Voilà, nous avons vu dans cet article quelques commandes bien utiles pour un développeur sous SQL *PLUS. Comme dit au début, ces commandes là sont loin d’être exhaustives … Pour ceux qui veulent aller plus loin, voici un lien officiel :<a href=" http://docs.oracle.com/cd/B10501_01/server.920/a90842/ch13.htm"> http://docs.oracle.com/cd/B10501_01/server.920/a90842/ch13.htm</a>.</p>
<p>Si vous avez des questions à propos de l’article , je me ferais un plaisir de vous répondre ☺</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/ACPqNcswHJk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/22/sgbd/oracle/loutil-sql-plus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/22/sgbd/oracle/loutil-sql-plus/</feedburner:origLink></item>
		<item>
		<title>Gérer des vues en MySQL</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/YbnKRx6n1nI/</link>
		<comments>http://www.lolokai.com/2012/05/21/sgbd/mysql/gerer-des-vues-en-mysql/#comments</comments>
		<pubDate>Mon, 21 May 2012 06:00:05 +0000</pubDate>
		<dc:creator>olivier.cadet</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[ajouter]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[gestion]]></category>
		<category><![CDATA[modifier]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[supprimer]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[views]]></category>
		<category><![CDATA[vue]]></category>
		<category><![CDATA[vues]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=4063</guid>
		<description><![CDATA[Introduction Vous voulez restreindre l&#8217;accès à certains de vos objets ? Vous voulez interroger de façons complexes vos objets mais vous ne vous sentez pas l&#8217;âme de ré-écrire plusieurs fois une même requête ? Vous avez donc la possibilité d&#8217;utiliser un système de vues. Cet article va vous permettre de l&#8217;appréhender au mieux. Les vues : Quésako ? Attention, une vue n&#8217;est pas une table mais elle a la particularité de se comporter tout comme [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Vous voulez restreindre l&#8217;accès à certains de vos objets ? Vous voulez interroger de façons complexes vos objets mais vous ne vous sentez pas l&#8217;âme de ré-écrire plusieurs fois une même requête ?</p>
<p>Vous avez donc la possibilité d&#8217;utiliser un système de vues. Cet article va vous permettre de l&#8217;appréhender au mieux.</p>
<h2><span style="color: #33cccc;">Les vues : Quésako ?</span></h2>
<p><span style="color: red;"><strong>Attention</strong></span>, une vue n&#8217;est pas une table mais elle a la particularité de se comporter tout comme si elle en était une. Une vue est un objet permanent qui est, le plus souvent, uniquement accessible en lecture seule. Elle possède plusieurs fonctions qui peuvent se montrer très pratiques. En effet, une Vue permet :</p>
<ul>
<li>De restreindre l&#8217;accès à notre Base de Données,</li>
<li>De rendre l&#8217;utilisation de requêtes complexes plus simple,</li>
<li>De présenter une même donnée de plusieurs façons.</li>
</ul>
<p>Il existe deux types principaux de vues : les <strong>vues Simples</strong> et les <strong>vues Complexes</strong>.</p>
<p>Les premières ne permettent d&#8217;accéder qu&#8217;à une seule table en même temps, ne peuvent contenir de fonctions mais sont compatibles avec les opérations DML (INSERT, UPDATE et DELETE). Quant aux autres, elles ont accès à plusieurs tables, peuvent contenir des fonctions de groupes mais ne permettent pas tout le temps l&#8217;utilisation d&#8217;opérations DML.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Création d&#8217;une vue Simple</span></p>
<p>La syntaxe pour créer une vue comprends plusieurs parties importantes. Tout d&#8217;abord, nous devons utiliser la clause <strong>CREATE OR REPLACE VIEW</strong>. Cette clause prend en paramètre le nom que vous voulais donner à votre vue. Si la vue existe déjà, elle sera tout simplement remplacée par la nouvelle vue que vous êtes en train de créer. Dans le cas contraire, la vue sera créée normalement.</p>
<p>Le reste de la syntaxe contiendra la requête principale qui caractérisera la vue.</p>
<p>Voila donc la syntaxe pour la création d&#8217;une vue :</p>
<blockquote><p>CREATE OR REPLACE VIEW nom_de_la_vue AS</p>
<p>requête_qui_caractérise_la_vue</p>
<p>[WITH CHECK OPTION [CONSTRAINT nom_de_la_contrainte]]</p>
<p>[WITH READ ONLY [CONSTRAINT nom_de_la_contrainte]];</p></blockquote>
<p>L&#8217;option <strong>WITH CHECK OPTION [CONSTRAINT nom_de_la_contrainte]]</strong> permet de vérifier si une contrainte a été spécifié lors de la modification des données. Quant à l&#8217;option <strong>[WITH READ ONLY [CONSTRAINT nom_de_la_contrainte]]</strong>, elle permet de spécifier le fait que les opérations DML soient autorisées ou pas sur la vue.</p>
<p>Par exemple, nous possédons une table <strong>EMPLOYEES</strong> avec différentes colonnes dont les colonnes <strong>ID</strong> et <strong>MONTH_SALARY</strong>. Nous allons créer une vue <strong>BASIC_INFO</strong> qui permettra d&#8217;afficher l&#8217;<strong>ID</strong> et le <strong>Salaire Annuel</strong> d&#8217;un employé. Voici la syntaxe a utilisée :</p>
<blockquote><p>CREATE OR REPLACE VIEW BASIC_INFO AS</p>
<p>SELECT ID, MONTH_SALARY*12 AS Salaire_Annuel</p>
<p>FROM EMPLOYEES;</p></blockquote>
<p>Si maintenant, nous voulons récupérer toutes les lignes de cette vues, voila la syntaxe adéquate :</p>
<blockquote><p>SELECT *</p>
<p>FROM BASIC_INFO;</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Création d&#8217;une vue Complexe</span></p>
<p>La syntaxe de création d&#8217;une vue Complexe ne diffère pas de celle de la création d&#8217;une vue Simple. C&#8217;est pour cela que nous allons passer directement à l&#8217;exemple.</p>
<p>Imaginons que nous voudrions créer une vue &laquo;&nbsp;SALAIRE_EMPLOYE&nbsp;&raquo; de quatre colonnes (name pour le nom, minsal pour le salaire minimum, maxsal pour le salaire maximum et avgsal pour la moyenne de tous les salaires) et qui requête dans deux tables bien différentes (la table departments et la table EMPLOYEES).</p>
<p>Voila la syntaxe qui nous intéresse :</p>
<blockquote><p>CREATE OR REPLACE VIEW SALAIRE_EMPLOYE</p>
<p>(name, minsal, maxsal, avgsal) AS</p>
<p>SELECT d.department_name, MIN(e.salary),</p>
<p>MAX(e.salary),AVG(e.salary)</p>
<p>FROM EMPLOYEES e JOIN departments d</p>
<p>ON (e.department_id = d.department_id)</p>
<p>GROUP BY d.department_name;</p></blockquote>
<p>Vu que la colonne <strong>department_id</strong> existe dans les deux tables, nous devons bien préciser la table que nous voulons utiliser. Lorsque que nous utilisons des colonnes de la table EMPLOYEES, nous utilisons le préfixe <strong>e.</strong> alors que lorsque nous utilisons la table departments, c&#8217;est le préfixe <strong>d.</strong> qui est présent.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Modifier une vue</span></p>
<p>Dans le cas où vous voudriez modifier une vue, la syntaxe est la même que pour la création d&#8217;une vue. En effet, comme nous l&#8217;avons vu plus haut, la clause <strong>CREATE OR REPLACE VIEW</strong> remplacera la vue si elle existait déjà auparavant ou la créera dans le cas contraire. Donc dans le cas où nous voudrions, par exemple, afficher le salaire d&#8217;un employé par semestre, et non plus par an, voila la syntaxe a utilisée :</p>
<blockquote><p>CREATE OR REPLACE VIEW BASIC_INFO AS</p>
<p>SELECT ID, MONTH_SALARY*6 AS Salaire_Semestre</p>
<p>FROM EMPLOYEES;</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Connaître la syntaxe de création d&#8217;une vue</span></p>
<p>Il peut vous arriver qu&#8217;au bout d&#8217;un certain temps, vous n&#8217;avez plus le souvenir de la commande qui a été utilisée pour la création d&#8217;une vue en particulier. Pour palier à ce problème, il existe la clause <strong>SHOW CREATE VIEW</strong> dont la syntaxe est :</p>
<blockquote><p>SHOW CREATE VIEW nom_de_la_vue;</p></blockquote>
<p>Donc, dans le cas où j&#8217;utiliserai cette clause sur notre Vue <strong>BASIC_INFO</strong>, j&#8217;aurai la dernière syntaxe utilisée pour créer ou modifier cette vue.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Supprimer une vue</span></p>
<p>Il est important de savoir que lorsque vous supprimez une vue, les données contenues dans celle-ci ne sont en aucun cas supprimées. En effet, une vue n&#8217;est pas une table : c&#8217;est juste un moyen d&#8217;accéder plus rapidement ou de restreindre l’accès à des données.</p>
<p>La syntaxe pour supprimer une vue est très simple, il vous suffit d&#8217;utiliser la clause <strong>DROP VIEW</strong> :</p>
<blockquote><p>DROP VIEW [IF EXISTS] nom_de_la_vue;</p></blockquote>
<p>L&#8217;option <strong>[IF EXISTS]</strong> permet d&#8217;éviter l&#8217;affichage d&#8217;un message d&#8217;erreur si l&#8217;on essaie de supprimer une Vue qui n&#8217;existe pas.</p>
<p>Reprenons notre vue <strong>BASIC_INFO</strong> créée pour les besoins de cet article, si nous souhaitons la supprimer :</p>
<blockquote><p>DROP VIEW IF EXISTS BASIC_INFO;</p></blockquote>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Voila, ce billet arrive maintenant à son terme. Dans celui-ci, nous avons appris à gérer (Créer/Modifier/Supprimer) une vue et nous avons compris la façon de les utiliser.</p>
<p>Si vous avez la moindre question ou remarque, n’hésiter pas. Je serai ravi d’y répondre.</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/YbnKRx6n1nI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/21/sgbd/mysql/gerer-des-vues-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/21/sgbd/mysql/gerer-des-vues-en-mysql/</feedburner:origLink></item>
		<item>
		<title>Le routage inter-vlan sur nos équipements Cisco</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/VkbPShNHJPI/</link>
		<comments>http://www.lolokai.com/2012/05/16/reseaux-2/le-routage-inter-vlan-sur-nos-equipements-cisco/#comments</comments>
		<pubDate>Wed, 16 May 2012 03:00:28 +0000</pubDate>
		<dc:creator>cedric.robert</dc:creator>
				<category><![CDATA[Réseaux]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[cofniguration]]></category>
		<category><![CDATA[itner-vlan]]></category>
		<category><![CDATA[mis en place]]></category>
		<category><![CDATA[routage]]></category>
		<category><![CDATA[router on a stick]]></category>
		<category><![CDATA[routeur]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[VLAN]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3927</guid>
		<description><![CDATA[Cet article est la suite de mon article sur la configuration des VLAN. Dans cet article nous allons voir comment permettre à deux membres de VLAN diffèrents de communiquer. Prérequis Connaitre le fonctionnement et les différents modes d’IOS. Avoir des bases en réseau (IP, masque de sous réseau…). Savoir configurer un VLAN. Introduction au routage Inter-VLAN Dans l’article précèdent nous avons vue comment configurer nos VLANs ce qui nous amenait à avoir une infrastructure similaire [...]]]></description>
			<content:encoded><![CDATA[<p>Cet article est la suite de mon article sur la <a href="http://www.lolokai.com/2012/04/24/reseaux-2/configurer-des-vlan-sur-nos-equipements-cisco/">configuration des VLAN</a>. Dans cet article nous allons voir comment permettre à deux membres de VLAN diffèrents de communiquer.</p>
<h2><span style="color: #33cccc;">Prérequis </span></h2>
<ul>
<li>Connaitre le fonctionnement et les différents modes d’IOS.</li>
<li>Avoir des bases en réseau (IP, masque de sous réseau…).</li>
<li>Savoir configurer un VLAN.</li>
</ul>
<h2><span style="color: #33cccc;">Introduction au routage Inter-VLAN</span></h2>
<p>Dans l’article précèdent nous avons vue comment configurer nos VLANs ce qui nous amenait à avoir une infrastructure similaire à l’exemple suivant :<br />
<a href="http://www.lolokai.com/wp-content/uploads/2012/05/VLAN.jpg" rel="lightbox[3927]"><img class="size-full wp-image-3945 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/VLAN.jpg" alt="" width="600" height="346" /></a></p>
<p>Dans cet exemple nous avons configuré deux VLAN le 10 et le 20, par conséquent nous avons segmenté notre réseau local en deux sous réseaux. Il est alors impossible pour un hôte se trouvant dans le VLAN 10 de communiquer avec un hôte du VLAN 20.<br />
Cependant il existe un moyen pour permettre cette communication, il s’agit du routage inter-VLAN, celui-ci va nous permettre d’acheminer du trafic d’un VLAN à un autre.<br />
Le routage entre nos VLANs peut s’implémenter de différentes manières, soit par l’utilisation d’un routeur, soit grâce à un switch de couche 3.<br />
<a href="http://www.lolokai.com/wp-content/uploads/2012/05/VLANRouteur.jpg" rel="lightbox[3927]"><img class="size-full wp-image-3947 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/VLANRouteur.jpg" alt="" width="600" height="337" /></a><br />
Exemple d’utilisation d’un routeur.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/VLANSwitch.jpg" rel="lightbox[3927]"><img class="size-full wp-image-3948 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/VLANSwitch.jpg" alt="" width="600" height="280" /></a></p>
<p>Exemple d’utilisation d’un switch.<br />
Dans cet article nous allons détailler l’utilisation d’un routeur distinct.</p>
<h2><span style="color: #33cccc;">Routage inter-VLAN grâce à un routeur</span></h2>
<p>Il existe deux moyens pour configurer le routage inter-VLAN, de façon logique et de façon physique.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Routage Inter-VLAN physique</span><br />
Le routage Inter-VLAN physique utilise plusieurs liens physiques pour permettre aux différents VLAN de communiquer entre eux. En effet nous allons utiliser un lien physique par VLAN.<a href="http://www.lolokai.com/wp-content/uploads/2012/05/VLANRouteur.jpg" rel="lightbox[3927]"><img class="size-full wp-image-3947 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/VLANRouteur.jpg" alt="" width="600" height="337" /></a></p>
<p>Dans cet exemple nous avons deux VLANs donc deux liens physiques.<br />
Pour configurer notre routage inter-VLAN il nous faut d’abord configurer notre switch 2 pour que l’interface Fa0/3 soit dans le VLAN 10 et que l’interface FA0/4 soit dans le Vlan 20.</p>
<blockquote><p>Switch(config)#interface fastEthernet 0/3<br />
Switch(config-if)#switchport mode access<br />
Switch(config-if)#switchport access vlan 10<br />
Switch(config-if)#no shutdown<br />
Switch(config-if)#exit<br />
Switch(config)#interface fastEthernet 0/4<br />
Switch(config-if)#switchport mode access<br />
Switch(config-if)#switchport access vlan 20<br />
Switch(config-if)#no shutdown<br />
Switch(config-if)#exit</p></blockquote>
<p>Ensuite il nous faut configurer les adresses IP de nos interfaces du routeur pour qu’il correspondent au bon sous réseau.</p>
<blockquote><p>Router(config)#interface fastEthernet 0/0<br />
Router(config-if)#ip address 10.1.10.5 255.255.255.0<br />
Router(config-if)#no shutdown<br />
Router(config)#interface fastEthernet 0/1<br />
Router(config-if)#ip address 10.1.20.5 255.255.255.0<br />
Router(config-if)#no shutdown</p></blockquote>
<p>Voilà notre routage inter-VLAN est configurée il est maintenant possible de communiquer entre les VLAN à condition de désigner comme passerelle par défaut de nos ordinateurs l&#8217;adresse IP de l&#8217;interface du routeur correspondant au VLAN auquel appartient l&#8217;ordinateur.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Routage Inter-VLAN logique (Router on a stick)</span></p>
<p>Maintenant que nous avons vu comment configurer le routage Inter-VLAN de manière physique nous allons voir comment le faire de façon logique.<br />
L’avantage de cette méthode est qu’elle va utiliser un seul lien pour propager tous nos VLANs (dans l’exemple précèdent nous avions deux VLANs donc deux liens, imaginer si nous avons vingt VLAN, il faudrait 20 liens) ce qui est un avantage considérable. Un routeur mis en place dans cette configuration est appelé &nbsp;&raquo;Router on a stick&nbsp;&raquo;.<br />
<a href="http://www.lolokai.com/wp-content/uploads/2012/05/Router-on-a-stick.jpg" rel="lightbox[3927]"><img class="size-full wp-image-3950 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/Router-on-a-stick.jpg" alt="" width="600" height="339" /></a></p>
<p>Pour configurer notre routage inter-VLAN il faut d’abord configurer un trunk sur l’interface FA0/3 du switch 2:</p>
<blockquote><p>Switch(config-if)#interface fastEthernet 0/3<br />
Switch(config-if)#switchport mode trunk<br />
Switch(config-if)#switchport native vlan 99<br />
Switch(config-if)#no shutdown</p></blockquote>
<p>Puis il nous faut configurer notre routeur. Pour cela nous allons créer des sous interfaces.</p>
<blockquote><p>Router(config)#interface fastEthernet 0/0.10<br />
Router(config-subif)#encapsulation dot1Q 10<br />
Router(config-subif)#ip address 10.1.10.5 255.255.255.0<br />
Router(config-subif)#interface Fa0/0.20<br />
Router(config-subif)#encapsulation dot1Q 20<br />
Router(config-subif)#ip address 10.1.20.5 255.255.255.0<br />
Router(config)#interface fastEthernet 0/0<br />
Router(config-if)#no shutdown</p></blockquote>
<p>Nous avons donc créé deux sous interface Fa0/0.10 et Fa0/0.20 l’une pour le VLAN 10 et l’autre pour le VLAN 20. Notez que l&#8217;interface physique doit être allumée avec que le routage inter-VLAN fonctionne.<br />
Notre routage inter-VLAN est configuré nos VLAN peuvent maintenant communiquer entre eux à condition de désigner comme passerelle par défaut de nos ordinateurs l&#8217;adresse IP de l&#8217;interface du routeur correspondant au VLAN auquel appartient l&#8217;ordinateur.</p>
<h2><span style="color: #33cccc;">Conclusion </span></h2>
<p>Cet article se termine, et nous avons vu ensemble comment configurer le routage inter-VLAN, nous sommes maintenant capable de permettre à nos VLANs d’échanger du trafic.</p>
<p>Avez-vous des questions ?</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/VkbPShNHJPI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/16/reseaux-2/le-routage-inter-vlan-sur-nos-equipements-cisco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/16/reseaux-2/le-routage-inter-vlan-sur-nos-equipements-cisco/</feedburner:origLink></item>
		<item>
		<title>Restriction logicielle avec AppLocker</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/W8X4sLUIp9c/</link>
		<comments>http://www.lolokai.com/2012/05/14/systemes/microsoft-3/restriction-logicielle-avec-applocker/#comments</comments>
		<pubDate>Mon, 14 May 2012 08:07:16 +0000</pubDate>
		<dc:creator>taochy.samuel</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[applocker]]></category>
		<category><![CDATA[bloquer]]></category>
		<category><![CDATA[gpo]]></category>
		<category><![CDATA[interdire]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[proteger]]></category>
		<category><![CDATA[securité]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3883</guid>
		<description><![CDATA[Introduction Après la mise en place de DNS, DHCP, WSUS&#8230; Je vous propose aujourd&#8217;hui de voir ensemble AppLocker ou une solution de restriction logicielle sous Windows. Une des tâches pour un administrateur dans une entreprise, est de savoir contrôler les logiciels qui s&#8217;exécutent sur les machines. Je m&#8217;explique, il est indispensable d&#8217;un point de vue sécurité que l&#8217;administrateur n&#8217;autorise pas l&#8217;utilisation et l&#8217;installation de n&#8217;importe quels logiciels. Or l&#8217;administrateur ne peut contrôler physiquement l&#8217;ajout de logiciel par les utilisateurs [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Après la mise en place de DNS, DHCP, WSUS&#8230; Je vous propose aujourd&#8217;hui de voir ensemble AppLocker ou une solution de restriction logicielle sous Windows.</p>
<p>Une des tâches pour un administrateur dans une entreprise, est de savoir contrôler les logiciels qui s&#8217;exécutent sur les machines. Je m&#8217;explique, il est indispensable d&#8217;un point de vue sécurité que l&#8217;administrateur n&#8217;autorise pas l&#8217;utilisation et l&#8217;installation de n&#8217;importe quels logiciels. Or l&#8217;administrateur ne peut contrôler physiquement l&#8217;ajout de logiciel par les utilisateurs car il faudrait être derrière chaque postes. Depuis XP il existe des solutions appelées &laquo;&nbsp;Sofware Restriction Policy&nbsp;&raquo;. Très peu populaires car elle ne sont pas réellement complètes et simple d&#8217;utilisation elles ont été remplacées par AppLocker depuis Windows 7 et Windows Server 2008 R2. AppLocker va simplifier la vie de l&#8217;administrateur car grâce au stratégie de groupe il pourra configurer AppLocker pour restreindre l&#8217;utilisation et l&#8217;installation des logiciels.</p>
<p>Je ne vous en dis pas plus et vous propose de découvrir cette solution avec moi.</p>
<h2><span style="color: #33cccc;">Installation</span></h2>
<p>Pour cet article j&#8217;ai utilisé une machine sous Windows Server 2008 R2 contrôleur de domaine et une machine Windows 7 appartenant à ce domaine.</p>
<p>Pour commencer on va utiliser une stratégie de groupe déjà créée et y configurer notre AppLocker. Personnellement j&#8217;ai créé une stratégie &laquo;&nbsp;Restriction logicielle&nbsp;&raquo;. Pour configurer <strong>clique droit sur la stratégie -&gt; Modifier</strong>.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/modif_strat.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3894" src="http://www.lolokai.com/wp-content/uploads/2012/05/modif_strat-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>Une fois arrivé sur la fenêtre &nbsp;&raquo;Editeur de gestion des stratégies de groupe&nbsp;&raquo; il faut trouver AppLocker pour cela <strong>Configuration Ordinateur -&gt; Stratégies -&gt; Paramètre Windows -&gt; Paramètre de sécurité -&gt; Stratégie de controle de l&#8217;application -&gt; AppLocker.</strong></p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/AppLocker.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3895" src="http://www.lolokai.com/wp-content/uploads/2012/05/AppLocker-300x219.jpg" alt="" width="300" height="219" /></a></p>
<p>Maintenant on va s&#8217;intéresser aux types de règles. Sous AppLocker il est possible de trouver 3 types de règles:</p>
<ul>
<li><strong>Règle de l&#8217;exécutable:</strong> On va créer une règle pour un fichier exécutable un .exe, .com&#8230;</li>
<li><strong>Règles Windows Installer</strong>: On va créer une règle pour un fichier .msi.</li>
<li><strong>Règle de Script:</strong> On va créer une règle basé sur un script.</li>
</ul>
<p>Pour commencer nous allons créer des règles d&#8217;exécutables par défaut. Pour cela clique droit sur Règle de l&#8217;exécutable -&gt; Règles par défaut.</p>
<p style="text-align: center;"><strong><span style="color: red;">/!\ Sachez que par défaut tout ce qui n&#8217;est pas autorisé est interdit /!\</span></strong></p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/règle-par-defaut.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3896" src="http://www.lolokai.com/wp-content/uploads/2012/05/règle-par-defaut-300x219.jpg" alt="" width="300" height="219" /></a></p>
<p>Nous avons 3 règles qui ont été créées.</p>
<ul>
<li>La première règle permet à tous les utilisateurs du domaine d&#8217;exécuter les logiciels présents dans le répertoire &nbsp;&raquo;Program Files&nbsp;&raquo;</li>
<li>La seconde règle permet à tous les utilisateurs du domaine d&#8217;exécuter les logiciels présents dans le répertoire &nbsp;&raquo;Windows&nbsp;&raquo;</li>
<li>La dernière règles permet au groupe Administrateurs d&#8217;exécuter toutes les applications.</li>
</ul>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/rules.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3897" src="http://www.lolokai.com/wp-content/uploads/2012/05/rules-300x223.jpg" alt="" width="300" height="223" /></a></p>
<p>Maintenant nous avons vu ce qu&#8217;est une règle sous AppLocker, je vous propose d&#8217;en customiser une. Pour cela, je vous propose de prendre la règle par défaut autorisant les administrateurs à exécuter toutes les applications. On va créer une exception. Imaginons nous sommes en entreprise, celle-ci possède déjà une solution de VoIP et refuse d&#8217;utiliser une solution comme Skype. Pour cela nous allons créer une exception dans la règle qui autorise lles Administrateurs d&#8217;exécuter toutes les applications.</p>
<p><strong>-&gt; Double clique sur la règle -&gt; Onglet Exception.</strong></p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/exceotion.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3898" src="http://www.lolokai.com/wp-content/uploads/2012/05/exceotion-300x213.jpg" alt="" width="300" height="213" /></a></p>
<p>Il y a 3 moyens de créer des exceptions :</p>
<ul>
<li><strong>Via l&#8217;éditeur:</strong> c&#8217;est à dire qu&#8217;on ajoute une exception en utilisant la signature électronique de l&#8217;application. &lt;RECOMMANDÉE&gt;</li>
<li><strong>Via le chemin d&#8217;accès:</strong> c&#8217;est à dire qu&#8217;on ajoute une exception en utilisant le chemin d&#8217;un répertoire. La règle va s&#8217;appliquer dans tout le répertoire.</li>
<li><strong>Via le Hash:</strong> c&#8217;est à dire onajoute une exception en utilisant le hash de fichier d&#8217;installation vu qu&#8217;un exécutable a un hash unique on peut créer une exception en stipulant le hash du fichier.</li>
</ul>
<p>De notre côté nous allons suivre les recommandations Microsoft et créer une exception via l&#8217;éditeur. Pour cela procurez-vous l&#8217;installation de Skype et sélectionnez Editeur. Puis, faites Ajouter et Sélectionnez l&#8217;exécutable de Skype. Une fois arrivé à l&#8217;éditeur faites parcourir et choisissez l&#8217;installation de Skype.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/skype.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3899" src="http://www.lolokai.com/wp-content/uploads/2012/05/skype-300x183.jpg" alt="" width="300" height="183" /></a></p>
<p>Une fois fait, il récupère la signature de Skype, l&#8217;éditeur donc &laquo;&nbsp;Skype&nbsp;&raquo; et le nom du fichier et sa version. Nous allons nous arrêter sur la fenêtre de l&#8217;éditeur car il nous propose de faire pas mal de choses.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/editeur.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3900" src="http://www.lolokai.com/wp-content/uploads/2012/05/editeur-300x249.jpg" alt="" width="300" height="249" /></a></p>
<p>Tout d&#8217;abord à gauche, il y a un curseur qui balait soit version, soit nom du fichier, soit nom de l&#8217;éditeur ou soit Tout éditeur. Cela nous permet de gérer le niveau d&#8217;exception qu&#8217;on veut mettre.</p>
<ul>
<li><strong>Version du fichier:</strong> Stipule la version du fichier qui est interdit d&#8217;être installée. En sélectionnant la checkbox &laquo;&nbsp;Utiliser des valeurs personnalisées&nbsp;&raquo; on peut changer la version du fichier ou demander d&#8217;interdire les versions plus récentes ou plus anciennes ou juste celle la.</li>
<li><strong>Nom du fichier:</strong> À ce niveau qu&#8217;importe la version du fichier il interdira l&#8217;exécution du fichier nommé comme dans le descriptif (ici &laquo;&nbsp;skypesetup.exe&nbsp;&raquo;).</li>
<li><strong>Nom de l&#8217;éditeur:</strong> Là on va bloquer l&#8217;installation de tout les logiciels que l&#8217;éditeur reconnu par sa signature.</li>
<li><strong>Tout éditeur:</strong> À ce niveau on ne bloque plus véritablement un logiciel mais tout logiciel qui possède une signature.</li>
</ul>
<p>Pour notre exemple j&#8217;ai bloqué skype par le nom de l&#8217;éditeur.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/exception-skype.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3901" src="http://www.lolokai.com/wp-content/uploads/2012/05/exception-skype-300x197.jpg" alt="" width="300" height="197" /></a></p>
<p>Une fois que vous avez fini votre selection cliquez sur Ok et appliquer. Et voila votre AppLocker est activé et configuré. Pour vérifier que cela fonctionne, allez sur une machine Windows 7 de votre réseau, vérifiez que le service &laquo;&nbsp;Identité de l&#8217;Application&nbsp;&raquo; est activé.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/AppID.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3902" src="http://www.lolokai.com/wp-content/uploads/2012/05/AppID-300x188.jpg" alt="" width="300" height="188" /></a></p>
<p>Faites une &laquo;&nbsp;gpupdate /force&nbsp;&raquo; dans un terminal pour rafraîchir vos stratégies et lancez l&#8217;installation.</p>
<p style="text-align: center;"><a href="http://www.lolokai.com/wp-content/uploads/2012/05/gpupdate.jpg" rel="lightbox[3883]"><img class="alignnone size-medium wp-image-3903" src="http://www.lolokai.com/wp-content/uploads/2012/05/gpupdate-300x149.jpg" alt="" width="300" height="149" /></a></p>
<p>Un message d&#8217;erreur est normalement apparut vous informant que cette installation a été interdite. <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>Dans ce simple article nous avons vu la solution AppLocker, un outil simple pour faire de la restriction logicielle sur un réseau. Nous avons simplement vu comment le configurer les 3 types de règles puis les exceptions, comment les configurer. En résumé je dirais que AppLocker est un outil simple et très efficace, il surpasse de loin pour moi les Software Restriction Policy. Le seul bémol serai sa non disponibilité pour des machines avec un ancien OS.</p>
<p>Cet article vous a-t-il aidé ? Avez vous une remarque ou suggestion à propos d&#8217;AppLocker ? Quelqu&#8217;un pourrait-il témoigner de son expérience d&#8217;entreprise ? Utilisez-vous une autre solution ?</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/W8X4sLUIp9c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/14/systemes/microsoft-3/restriction-logicielle-avec-applocker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/14/systemes/microsoft-3/restriction-logicielle-avec-applocker/</feedburner:origLink></item>
		<item>
		<title>Oracle: les triggers</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/VsGgwuZG5Qg/</link>
		<comments>http://www.lolokai.com/2012/05/14/sgbd/oracle/oracle-les-triggers/#comments</comments>
		<pubDate>Mon, 14 May 2012 03:00:15 +0000</pubDate>
		<dc:creator>OracleBoy</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[compound trigger]]></category>
		<category><![CDATA[create trigger]]></category>
		<category><![CDATA[Rows level trigger]]></category>
		<category><![CDATA[statement trigger]]></category>
		<category><![CDATA[trigger ORACLE]]></category>
		<category><![CDATA[Trigger with FOLLOWS]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3929</guid>
		<description><![CDATA[Introduction Si tout comme moi, vous avez envie de gérer votre base de données ou du moins vos objets en incluant des règles bien précise, des choses que vous ne pouvez pas faire avec des contraintes, empêcher l’accès à vos objets selon certains critères, alors mettez vos lunettes (pour ce qui en porte :p ) car cet article est pour vous . Qu’est ce qu’un Trigger ? Un trigger ou encore un déclencheur est un bloc PL/SQL [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Si tout comme moi, vous avez envie de gérer votre base de données ou du moins vos objets en incluant des règles bien précise, des choses que vous ne pouvez pas faire avec des contraintes, empêcher l’accès à vos objets selon certains critères, alors mettez vos lunettes (pour ce qui en porte :p ) car cet article est pour vous .</p>
<h2><span style="color: #33cccc;">Qu’est ce qu’un Trigger ?</span></h2>
<p>Un trigger ou encore un déclencheur est un bloc PL/SQL associé plus particulièrement à une table. Ce bloc s’exécutera automatiquement lorsqu’une instruction DML (insert , update , delete) sera fait sur la table. Il faut savoir qu’un trigger peut être exécuté avant ou après la modification d’une table , donc avant ou après les différents contraintes . Il y a une règles très importante à respecter Les triggers ne doivent en aucun cas être utilisés lorsque vous pouvez utiliser une contrainte. En effet cette dernière étant défini sur la table , elle est plus rapide.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Syntaxe d’un Trigger</span></p>
<blockquote><p>CREATE [OR REPLACE ] TRIGGER nom_trigger</p>
<p>{BEFORE | AFTER | INSTEAD OF }</p>
<p>{INSERT [OR] | UPDATE [OR] | DELETE}</p>
<p>[OF nom_colonne]</p>
<p>ON nom_table/vue</p>
<p>[REFERENCING OLD AS o NEW AS n]</p>
<p>[FOR EACH ROW]</p>
<p>WHEN (condition)</p>
<p>BEGIN</p>
<p>&#8212;  requete SQL</p>
<p>END;</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Explications</span></p>
<p>CREATE [OR REPLACE ] TRIGGER nom_trigger : Nous permet de créer /remplacer (si le nom existe) un trigger</p>
<p>{BEFORE | AFTER | INSTEAD OF }  : Les deux premiers nous permettent de spécifier à quel moment le trigger sera déclenché et le troisième est utilisé seulement pour les VUES (les deux autres ne peuvent être utilisés avec les vues)</p>
<p>{INSERT [OR] | UPDATE [OR] | DELETE} : Nous permet de spécifier pour quel évènement déclencher le trigger (on peut en utiliser plusieurs).</p>
<p>[OF nom_colonne] : Utilisé avec les triggers de type update , nous permet de déclencher un trigger seulement si une colonne particulière est mise à jour.</p>
<p>[ON nom_table/vue] : Nous permet de dire pour quel table ou vue le trigger est associé.</p>
<p>[REFERENCING OLD AS o NEW AS n] : Ici cette clause va nous permettre tout simplement de donner un alias aux termes « OLD » et « NEW ». Le terme « OLD » nous permet de connaitre la ligne avant modification (update) ou en cours de suppression (delete) alors que le terme « NEW » nous permet de connaître la nouvelle ligne insérée (insert) ou la ligne après modification (update).</p>
<p>[FOR EACH ROW] : Nous permet de spécifier le trigger en tant que  « Row level Trigger »(déclencheur de ligne). Un déclencheur de ligne est lancé une fois pour chaque ligne qui est affectée par l&#8217;instruction de déclenchement. (par défaut  Statement Trigger)</p>
<p>WHEN (condition) : Utilisé avec FOR EACH ROW , le trigger s’exécutera seulement si la ligne respecte la condition.</p>
<h2><span style="color: #33cccc;">Quelques exemples de Triggers :</span></h2>
<p><span style="text-decoration: underline; color: #3366ff;">Exemple 1</span></p>
<p>Nous avons deux tables : employees et employees_history toutes les deux composées des colonnes (employee_id , manager_id , first_name , last_name , pseudo et salary)</p>
<p>La table employees :</p>
<blockquote><p>SELECT * FROM employees;</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-11.56.28.png" rel="lightbox[3929]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-11.56.28.png" alt="" width="603" height="162" /></a></p>
<p>Oui-Oui on s’est inspiré de  la légende d’Arthur et la table Ronde (Tous égaux = Tout le monde le même salaire :p ) , sauf qu’il y a eu une erreur lors de l’entrée des données et l’employé 10 se retrouve avec un salaire de 1000euros (grrrr). On va donc créer un trigger qui nous permet de garder une trace des modifications apportées à la table employees :</p>
<blockquote><p>CREATE or REPLACE TRIGGER employees_history_trigger</p>
<p>BEFORE UPDATE OF salary</p>
<p>ON employees</p>
<p>REFERENCING OLD AS o NEW AS n</p>
<p>FOR EACH ROW</p>
<p>BEGIN</p>
<p>INSERT INTO employees_history</p>
<p>VALUES</p>
<p>(:o.employee_id, :o.manager_id, :o.first_name, :o.last_name, :o.pseudo, :o.salary);</p>
<p>END;</p>
<p>/</p></blockquote>
<p>Et si on réparait notre erreur :p :</p>
<blockquote><p>Update employees</p>
<p>SET salary = 10000</p>
<p>WHERE employee_id = 10 ;</p>
<p>(déclenchement du trigger)</p></blockquote>
<p>La table employees_history :</p>
<blockquote><p>SELECT * FROM employees_history ;</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-11.56.40.png" rel="lightbox[3929]"><img src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-11.56.40.png" alt="" width="562" height="62" /></a></p>
<p>La table employees:</p>
<blockquote><p>SELECT * FROM employees WHERE employee_id = 10;</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-11.56.52.png" rel="lightbox[3929]"><img class="alignnone size-full wp-image-3936" src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-11.56.52.png" alt="" width="572" height="60" /></a></p>
<p><span style="text-decoration: underline; color: #3366ff;">Exemple 2</span></p>
<p>On va maintenant voir un exemple de trigger avec une vue (instead of).</p>
<p>Supposons que nous ayons une vue empviews avec les données suivantes:</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-16.49.34.png" rel="lightbox[3929]"><img class="alignnone size-full wp-image-3960" src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-16.49.34.png" alt="" width="568" height="68" /></a></p>
<p>Lorsque nous tenterons d’insérer une ligne dans empviews on  ne pourra pas consulter la ligne insérer, on aura peut être une erreur du type :</p>
<blockquote><p>SQL Error:</p>
<p>ORA-01732: data manipulation operation not legal on this view</p>
<p>01732. 00000 -  &laquo;&nbsp;data manipulation operation not legal on this view&nbsp;&raquo;</p></blockquote>
<p>Pour pallier à cette faille et garantir l’affichage de notre nouvelle ligne nous utiliserons un trigger instead of :</p>
<blockquote><p>CREATE OR REPLACE TRIGGER insert_empviews_trigger</p>
<p>INSTEAD OF INSERT</p>
<p>ON empviews FOR EACH ROW</p>
<p>BEGIN</p>
<p>INSERT INTNO  employees (employee_id, manager_id, first_name, last_name , pseudo , salary)</p>
<p>VALUES (:new.employee_id , :new.manager_id ,:new.first_name ,:new.last_name ,:new.pseudo ,:new.salary)</p>
<p>END;</p>
<p>/</p></blockquote>
<blockquote><p>INSERT INTO empview</p>
<p>VALUES (20, 1, &#8216;Samuel&#8217;, &#8216;Taochy&#8217;,2-10000);</p></blockquote>
<blockquote><p>SELECT * FROM empview ;</p></blockquote>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-16.59.33.png" rel="lightbox[3929]"><img class="alignnone size-full wp-image-3961" src="http://www.lolokai.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-12-à-16.59.33.png" alt="" width="606" height="90" /></a></p>
<h2><span style="color: #33cccc;">Amelioration avec ORACLE 11G</span></h2>
<p><span style="text-decoration: underline; color: #3366ff;">La clause FOLLOWS</span></p>
<p>Vous l’avez certainement remarqué, Oracle  permet de définir plusieurs triggers sur une même table et surtout pour un même événement. Avant Oracle 11G on ne pouvait pas déterminé l’ordre d’exécution de ces triggers là, maintenant avec la clause FOLLOWS on demandera à Oracle d’exécuter ce triggers après les triggers cités avec la clause FOLLOWS.</p>
<p><span style="text-decoration: underline; color: #3366ff;">Les Triggers composés</span></p>
<p>Un triggers composé présent plusieurs avantages, en effet les différentes sections peuvent partager des déclarations(variables , curseur …) communes.</p>
<blockquote><p>CREATE [OR REPLACE ] TRIGGER nom_trigger</p>
<p>FOR  {INSERT | UPDATE [OF colonne , ...] | DELETE}</p>
<p>ON nom_table/vue</p>
<p>[FOLLOWS nom_autre_triger[,...]]</p>
<p>[ WHEN (condition)  ]</p>
<p>COMPOUND TRIGGER</p>
<p>[ declarations communes ]</p>
<p>&nbsp;</p>
<p>[ BEFORE STATEMENT IS</p>
<p>[ declarations locales ]</p>
<p>BEGIN</p>
<p>instructions</p>
<p>END BEFORE STATEMENT]</p>
<p>[ BEFORE EACH ROW IS</p>
<p>[ declarations locales ]</p>
<p>BEGIN</p>
<p>instructions</p>
<p>END BEFORE EACH ROW]</p>
<p>[ AFTER EACH ROW IS</p>
<p>[ declarations locales ]</p>
<p>BEGIN</p>
<p>instructions</p>
<p>END AFTER EACH ROW]</p>
<p>[ AFTER STATEMENT IS</p>
<p>[ declarations locales ]</p>
<p>BEGIN</p>
<p>instructions</p>
<p>END AFTER STATEMENT]</p>
<p>&nbsp;</p>
<p>END;</p></blockquote>
<p>Hummm C’est Quoi ça ?? o_0 …</p>
<p><span style="text-decoration: underline; color: #3366ff;">Pas de panique nous allons décortiquer tout ça ^^ :</span></p>
<ul>
<li>La clause FOR remplace la clause  BEFORE/AFTER d’un trigger normal et nous permet de dire pour quel évènement déclencher le trigger.</li>
<li>FOLLOWS : le trigger sera déclenché après le ou les triggers cité(s)</li>
<li>Déclarations communes : permet de définir des variables, curseurs, sous-programmes communes aux différentes sections.</li>
<li>Déclarations locales : permet de définir des variables, curseurs, sous-programmes locale à la section</li>
<li>Le code comporte au maximum 4 sections, composé comme suit :</li>
</ul>
<p>moment_declenchement IS</p>
<p>[declarations locales]</p>
<p>BEGIN</p>
<p>Instructions</p>
<p>END moment_declenchement</p>
<p>Avec moment_declenchement :</p>
<p>BEFORE STATEMENT / BEFORE EACH ROW / AFTER EACH ROW / AFTER STATEMENT</p>
<p>Exemple :</p>
<blockquote><p>CREATE OR REPLACE TRIGGER employees_salaire_trigger</p>
<p>FOR update OF salary</p>
<p>ON employees</p>
<p>COUMPOUND TRIGEGER</p>
<p>ajout_total number := 0;</p>
<p>procedure message(msg VARCHAR2) IS</p>
<p>BEGIN</p>
<p>dbms_output.put_line (msg);</p>
<p>END message;</p>
<p>&nbsp;</p>
<p>AFTER EACH ROW IS</p>
<p>difference number;</p>
<p>BEGIN</p>
<p>ajout := :new.salary &#8211; : old.salary;</p>
<p>message(&#8216;Employé numéro&#8217;|| :new.employee_id ||&#8217; : salaire augmenté de &#8216;|| ajout ||&#8217; euro(s)&#8217;);</p>
<p>ajout_totale = ajout_totale + ajout;</p>
<p>END AFTER EACH ROW;</p>
<p>AFTER STATEMENT IS</p>
<p>difference number;</p>
<p>BEGIN</p>
<p>message(&#8216;Ajout totale est de &#8216;|| ajout_total ||&#8217; euro(s)&#8217;);</p>
<p>END AFTER STATEMENT;</p>
<p>END employees_salaire_trigger;</p>
<p>/</p></blockquote>
<p>Ce trigger sera déclenché lors d’une mise à jour sur la colonne salaire.</p>
<p>Pour chaque ligne affectée ,  on aura un message du genre :</p>
<p><span style="text-decoration: underline; color: #3366ff;">=&gt; Employé numéro 100 : salaire augmenté de 10euro(s)</span></p>
<p>Et à la fin de l’exécution  , nous aurons un message nous montrant le total d’argent ayant été rajouté à l’ensemble des employés.</p>
<p><span style="text-decoration: underline; color: #3366ff;">=&gt; Ajout total est de 100 euro(s)</span></p>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Nous avons vu à travers cet article ce qu&#8217;est un trigger , comment en créer et surtout quelques améliorations apportées par oracle 11G. Je tenais juste à vous dire qu&#8217;il existe aussi des triggers sur des événements systèmes ou utilisateurs qui nous permettent d&#8217;améliorer la gestion de notre base de données avec des attributs qui peuvent être utilisé pour identifier l&#8217;origine d&#8217;un évenement.</p>
<p>Si vous avez une question ou une remarque, n’hésiter pas. Je reste à l&#8217;écoute et prêt à répondre <img src='http://www.lolokai.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/VsGgwuZG5Qg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/14/sgbd/oracle/oracle-les-triggers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/14/sgbd/oracle/oracle-les-triggers/</feedburner:origLink></item>
		<item>
		<title>Gérer vos objets en MySQL</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/que7CvInPOc/</link>
		<comments>http://www.lolokai.com/2012/05/09/sgbd/mysql/gerer-vos-objets-en-mysql/#comments</comments>
		<pubDate>Wed, 09 May 2012 03:00:03 +0000</pubDate>
		<dc:creator>olivier.cadet</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3814</guid>
		<description><![CDATA[Introduction Vous possédez des tables et vous souhaitez les gérer au mieux ? Vous souhaitez pouvoir modifier en profondeur la structure de vos tables ou optimiser le temps d&#8217;accès à celle-ci ? Ce billet pourra vous être utile. Quelques pré-requis : Posséder quelques bases en langage SQL; Posséder une machine configurée avec WAMP (installation disponible ici) Ajout et Suppression de tables Après avoir créer vos bases de données, vous avez la possibilités d&#8217;ajouter des tables [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Introduction</span></h2>
<p>Vous possédez des tables et vous souhaitez les gérer au mieux ? Vous souhaitez pouvoir modifier en profondeur la structure de vos tables ou optimiser le temps d&#8217;accès à celle-ci ?<br />
Ce billet pourra vous être utile.</p>
<p>Quelques pré-requis :</p>
<ul>
<li>Posséder quelques bases en langage SQL;</li>
<li>Posséder une machine configurée avec WAMP (installation disponible <a title="Installation Wamp" href="http://www.lolokai.com/2012/03/30/dev-script/php/creation-dun-premier-projet-symfony-2-avec-netbeans-sous-windows-7/" target="_blank">ici</a>)</li>
</ul>
<h2><span style="color: #33cccc;">Ajout et Suppression de tables</span></h2>
<p>Après avoir créer vos bases de données, vous avez la possibilités d&#8217;ajouter des tables : tables qui stockeront toutes les données de nos bases.</p>
<p>La <strong>création de tables</strong> a déjà était traité dans un <a title="création table" href="http://www.lolokai.com/2012/04/26/sgbd/importer-des-tables-completes-depuis-un-fichier-texte-sur-un-serveur-mysql/" target="_blank">article</a>. C&#8217;est pour cela que nous allons passé directement à la suppression de tables, que ce soit soit avec la console MySQL de Wamp ou phpMyAdmin.</p>
<p>La <strong>suppression de tables</strong>, que ce soit en utilisant la console MySQL de Wamp ou l&#8217;interface graphique de phpMyAdmin, est très simple d&#8217;accès.</p>
<p>Sous phpMyAdmin, il vous suffit de vous rendre dans la base de données qui contient la table à supprimer. Dans le menu de gauche, vous cliquez sur la table à supprimer puis, lorsqu&#8217;elle est sélectionnée, rendez-vous dans l&#8217;onglet <strong>Opérations</strong>. Dans la sous-partie &laquo;&nbsp;Supprimer les données ou la table&nbsp;&raquo;, cliquez sur &laquo;&nbsp;Supprimez la table(DROP)&nbsp;&raquo;. Un pop-up de confirmation apparaitra, il vous suffit maintenant de l&#8217;accepter.</p>
<p>Sous la console MySQL de Wamp, il vous suffit de vous connecter à la base de données contenant la table à supprimer (voir <a title="création table" href="http://www.lolokai.com/2012/04/26/sgbd/importer-des-tables-completes-depuis-un-fichier-texte-sur-un-serveur-mysql/" target="_blank">cet article</a>) puis d&#8217;utiliser la syntaxe suivante :</p>
<blockquote><p>DROP TABLE nom_de_la_table_a_supprimer;</p></blockquote>
<h2><span style="color: #33cccc;">Modification de vos tables</span></h2>
<p>Plusieurs modifications peuvent être apportées à vos tables. En effet, vous avez la possibilité :</p>
<ul>
<li>Ajouter/Supprimer/Modifier une colonne d&#8217;une table,</li>
<li>Ajouter/Supprimer/Modifier des contraintes à une colonne d&#8217;une table,</li>
<li>Ajouter/Supprimer des index.</li>
</ul>
<p><span style="text-decoration: underline; color: #3366ff;">Ajouter/Supprimer/Modifier une colonne d&#8217;une table</span></p>
<p>Pour ajouter une colonne à une table, il faut utiliser la clause <strong>ADD</strong> dont la syntaxe principal est :</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
ADD (nom_de_la_colonne_à_ajouter type_de_la_colonne);</p></blockquote>
<p><span style="color: red;">Attention,</span> lors de la création d&#8217;une colonne en Oracle vous ne pouvez pas préciser la place de cette colonne. En effet, elle sera ajoutée en tant que dernière colonne de la table cible. Par contre en MySQL, il est possible de préciser après quelle colonne l&#8217;on veut placer notre nouvelle colonne. Pour cela, il vous suffit d&#8217;utiliser le mot clé <strong>AFTER</strong>.</p>
<p>Par exemple, si vous voulez ajouter la colonne &laquo;&nbsp;date_birth&nbsp;&raquo; à votre table &laquo;&nbsp;student&nbsp;&raquo;, voila la syntaxe à utiliser :</p>
<blockquote><p>ALTER TABLE student<br />
ADD (date_birth DATE);</p></blockquote>
<p>Pour modifier une colonne déjà existante, il vous faut utiliser la clause <strong>MODIFY</strong>.</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
MODIFIY (nom_de_la_colonne_à_modifier type_de_la_colonne);</p></blockquote>
<p>Imaginons que vous vouliez modifier le type de la colonne &laquo;&nbsp;last_name&nbsp;&raquo; de notre table &laquo;&nbsp;student&nbsp;&raquo; de <strong>VARCHAR(30)</strong> à <strong>VARCHAR(255)</strong>, voila la syntaxe adéquate :</p>
<blockquote><p>ALTER TABLE student<br />
ADD (last_name VARCHAR(255));</p></blockquote>
<p>Voila une autre modification qui peut vous être utile :</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
CHANGE (Ancien_nom_de_la_colonne Nouveau_nom_de_la_colonne type_de_la_colonne);</p></blockquote>
<p>Cette ligne de commande permet de modifier le nom d&#8217;une colonne de notre table.</p>
<p>La syntaxe de base pour supprimer une colonne est extrêmement simple. En effet, il vous suffit juste d&#8217;utiliser la clause &laquo;&nbsp;DROP&nbsp;&raquo; :</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
DROP (nom_de_la_colonne_à_supprimer);</p></blockquote>
<p>Donc, dans le cas où vous voudriez supprimer la colonne &laquo;&nbsp;age&nbsp;&raquo; de votre table &laquo;&nbsp;student&nbsp;&raquo;, il vous suffit de faire :</p>
<blockquote><p>ALTER TABLE student<br />
DROP (age);</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Ajouter/Supprimer/Modifier des contraintes à une colonne d&#8217;une table</span></p>
<p>Une <strong>contrainte</strong> est une sorte de règle de sécurité qui est posée par le concepteur de la base de données et qui permet de gérer la conformité des données de nos tables.</p>
<p>La syntaxe de base pour l&#8217;ajout d&#8217;une contrainte est la suivante :</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
ADD CONSTRAINT nom_de_la_contrainte<br />
type_de_contrainte (nom_de_la_colonne_ciblée_par_la_contrainte);</p></blockquote>
<p>Voici une liste (non-exhaustive) des principales contraintes disponibles pour nos tables :</p>
<ul>
<li><strong>NOT NULL </strong> : Une valeur, même non unique, doit être obligatoirement attribuée à chaque champ. <span style="color: red;">Une valeur nulle signifie que le champ est vide, il y a donc une absence de valeur.</span></li>
<li><strong>UNIQUE KEY </strong> : Chaque valeur de chaque champ doit être unique. Cependant, la valeur nulle est acceptée.</li>
<li><strong>PRIMARY KEY </strong> : Chaque valeur de chaque champ doit être unique et non-nulle.</li>
<li><strong>FOREIGN KEY </strong> : Chaque valeur de chaque champ est liée à une même colonne de cette même table ou d&#8217;une table différente. Cependant, la valeur nulle est acceptée.</li>
</ul>
<p>Prenons pour exemple le fait que vous vouliez que, dans la table &laquo;&nbsp;student&nbsp;&raquo;, la colonne &laquo;&nbsp;student_id&nbsp;&raquo; fasse référence à la colonne &laquo;&nbsp;teacher_id&nbsp;&raquo;. Pour cela, vous devez tout d&#8217;abord mettre la colonne &laquo;&nbsp;teacher_id&nbsp;&raquo; en tant que <strong>PRIMARY KEY</strong>, puis vous passez la colonne &#8216;student_id&nbsp;&raquo; en <strong>FOREIGN KEY</strong>. Voila la syntaxe à utiliser :</p>
<p><strong>Étape 1 : </strong></p>
<blockquote><p>ALTER TABLE student<br />
MODIFY (teacher_id PRIMARY KEY);</p></blockquote>
<p><strong>Étape 2 : </strong></p>
<blockquote><p>ALTER TABLE student<br />
ADD CONSTRAINT contrainte_1<br />
FOREIGN KEY (student_id)<br />
REFERENCES student (teacher_id);</p></blockquote>
<p>Vous avez aussi la possibilité d&#8217;activer ou de désactiver une contrainte que vous avez appliqué à une de vos tables. Il vous suffit d&#8217;utiliser les clauses <strong>ENABLE</strong> ou <strong>DISABLE</strong>, tout dépend de ce que vous voulez faire.<br />
Voici donc la syntaxe pour activer ou, au contraire, désactiver une contrainte :</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
ENABLE/DISABLE CONSTRAINT nom_de_la_contrainte;</p></blockquote>
<p>Pour finir, du fait que vous pouvez créer des contraintes, vous pouvez logiquement supprimer les contraintes que vous avez auparavant ajouter.</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
DROP CONSTRAINT nom_de_la_contrainte;</p></blockquote>
<p>Cette ligne de commande vous permet de supprimer une contrainte en utilisant la clause <strong>DROP CONSTRAINT</strong>. Pour supprimer toutes les contraintes reliées à une clé primaire ou à une clé unique, il vous suffit d&#8217;utiliser la clause <strong>CASCADE CONSTRAINTS</strong> de la façon suivante :</p>
<blockquote><p>ALTER TABLE nom_de_la_table_à_utiliser<br />
DROP COLUMN nom_de_la_colonne_à_supprimer<br />
CASCADE CONSTRAINTS;</p></blockquote>
<p>Reprenons notre exemple précédent. Imaginons que l&#8217;on voudrait supprimer la colonne &laquo;&nbsp;student_id&nbsp;&raquo; ainsi que toutes les contraintes qui lui sont attribuées, voila la syntaxe a utilisée :</p>
<blockquote><p>ALTER TABLE student<br />
DROP COLUMN student_id<br />
CASCADE CONSTRAINTS;</p></blockquote>
<p><span style="text-decoration: underline; color: #3366ff;">Ajouter/Supprimer des index</span></p>
<p>Un <strong>index</strong> est un objet qui permet d&#8217;indexer des colonnes afin de pouvoir optimiser de façon importante le temps d&#8217;accès à celle-ci lors de l&#8217;utilisation d&#8217;une requête. Globalement, un index d&#8217;une table peut être représenté comme étant similaire au sommaire d&#8217;un livre : il n&#8217;est pas indispensable mais permet d&#8217;accéder à une partie précise sans perdre de temps lors des recherches. Cependant, l&#8217;utilisation d&#8217;index doit être utiliser avec parcimonie et le choix des colonnes à indexer doit être pertinent et murement réfléchi. En effet, les index utilisent la mémoire de la base de données et peut donc ralentir celle-ci lors d&#8217;une saisie de données.</p>
<p>La syntaxe pour créer un index est la suivante :</p>
<blockquote><p>CREATE [UNIQUE] INDEX nom_de_l_index<br />
ON nom_de_la_table_cible (nom_des_colonnes_cibles [ASC/DESC]);</p></blockquote>
<p>Pour créer un index, il faut donc utiliser la clause <strong>CREATE INDEX</strong>. Le mot clé <strong>UNIQUE</strong> permet de définir l&#8217;unicité des données de la colonne (si il y a présence de doublons ou pas). Quant aux mots clés <strong>ASC</strong> et <strong>DESC</strong>, ils permettent de définir l&#8217;ordre de classement des données de la colonne (un ordre ascendant/croissant ou un ordre descendant/décroissant).</p>
<p>Dans le cas contraire, si vous souhaitez supprimer un index, il vous faut utiliser la clause <strong>DROP INDEX</strong> :</p>
<blockquote><p>DROP INDEX nom_de_l_index;</p></blockquote>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Ce billet est maintenant terminé. Nous avons vu comment gérer nos tables en MySQL. Pour cela, nous avons la possibilité de manager nos tables, d&#8217;ajouter/supprimer/modifier des contraintes à certaines colonnes et d&#8217;ajouter/Supprimer des index. Si vous avez la moindre question ou remarque, n’hésiter pas. Je serai ravi d’y répondre.</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/que7CvInPOc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/09/sgbd/mysql/gerer-vos-objets-en-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/09/sgbd/mysql/gerer-vos-objets-en-mysql/</feedburner:origLink></item>
		<item>
		<title>Agrégez vos liens sur les équipements Cisco</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/W2qTiRJqRo4/</link>
		<comments>http://www.lolokai.com/2012/05/04/reseaux-2/agregez-nos-liens-sur-les-equipements-cisco/#comments</comments>
		<pubDate>Fri, 04 May 2012 11:43:44 +0000</pubDate>
		<dc:creator>cedric.robert</dc:creator>
				<category><![CDATA[Réseaux]]></category>
		<category><![CDATA[agregation]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[etherchannel]]></category>
		<category><![CDATA[failover]]></category>
		<category><![CDATA[lien]]></category>
		<category><![CDATA[load balancing]]></category>
		<category><![CDATA[PortChannel]]></category>

		<guid isPermaLink="false">http://www.lolokai.com/?p=3795</guid>
		<description><![CDATA[Prérequis Connaitre le fonctionnement et les différents modes d’IOS. Avoir des bases en réseau (IP, masque de sous réseau…). Qu’est-ce que PortChannel/EtherChannel ? EtherChannel vas nous permettre de faire de l’agrégation de liens, l&#8217;agrégation de ces liens est appelée PortChannel. C&#8217;est-à-dire que nous allons réunir plusieurs câbles ou ports réseau en un seul lien logique notre PortChannelx (où x et le numéro du port) , dans le but d’améliorer le débit de notre lien, et d’accroitre la redondance pour [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #33cccc;">Prérequis</span></h2>
<ul>
<li>Connaitre le fonctionnement et les différents modes d’IOS.</li>
<li>Avoir des bases en réseau (IP, masque de sous réseau…).</li>
</ul>
<h2><span style="color: #33cccc;">Qu’est-ce que PortChannel/EtherChannel ?</span></h2>
<p>EtherChannel vas nous permettre de faire de l’agrégation de liens, l&#8217;agrégation de ces liens est appelée PortChannel. C&#8217;est-à-dire que nous allons réunir plusieurs câbles ou ports réseau en un seul lien logique notre PortChannelx (où x et le numéro du port) , dans le but d’améliorer le débit de notre lien, et d’accroitre la redondance pour améliorer la disponibilité du lien. Sur un équipement on va pouvoir agréger au maximum 8 liens physiques sur un même PortChannel.</p>
<p>Plusieurs conditions doivent être réunies afin de pouvoir assigner plusieurs port sur un même PortChannel :</p>
<ul>
<li>Chaque lien doit avoir a minimum 100 Mbps</li>
<li>Etre configuré en full duplex</li>
<li>Avoir la même vitesse</li>
<li>Appartenir au même VLAN</li>
</ul>
<p>Pour ce faire notre PortChannelx va se charger de :</p>
<ul>
<li>Faire du load balancing en répartissant le trafic sur les différents ports physiques.</li>
<li>Faire du failover en redirigent le trafic sur un autre port de l’agrégat  si un port physique tombe.</li>
</ul>
<p>&nbsp;</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/port-channel2.jpg" rel="lightbox[3795]"><img class="size-full wp-image-3804 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/port-channel2.jpg" alt="" width="600" height="194" /></a></p>
<p>Dans cet exemple nous avons agrégé deux liens, ce qui nous permet de multiplier par deux notre débit grâce au load balancing entre nos deux liens physiques, et d’améliorer la disponibilité du lien, en effet si un des liens tombe, le trafic continuera à passer par l’autre lien.<br />
Pour configurer et gérer nos agrégats de lien il existe deux protocoles, Link Aggregation Control Protocol (LACP), et Port Aggregation Protocol (PAgP).</p>
<p><span style="text-decoration: underline; color: #3366ff;">Link Aggregation Control Protocol (LACP)</span><br />
LACP est un protocole standardisé par l’IEEE, c&#8217;est-à-dire que ce protocole est supporté par un grand nombre de constructeur diffèrent. Il permet le contrôle de l’agrégation de plusieurs liens physiques en un lien logique. Le protocole va échanger des paquets LACP pour s’assurer que l’équipement directement connecté est bien configuré pour utiliser LACP, et soit configuré de la même manière (vitesse, mode duplex, etc&#8230;).</p>
<p><span style="text-decoration: underline; color: #3366ff;">Port Aggregation Protocol (PAgP). </span><br />
PAgP est un protocole propriétaire Cisco, c&#8217;est-à-dire que contrairement à LACP, qui peut fonctionner sur différents matérielles, PagP lui ne fonctionne que sur des équipements CISCO. Son fonctionnement est assez similaire à celui de LACP.</p>
<h2><span style="color: #33cccc;">Configuration d&#8217;Etherchannel</span></h2>
<p>Pour configurer un port channel sur notre switch nous devons assigner toutes les interfaces qui vont composer notre lien logique dans le même channel-group.</p>
<blockquote><p>Switch(config)#interface range fastEthernet 0/1-2<br />
Switch(config-if-range)#channel-group 1 mode on</p></blockquote>
<p>Cette commande nous permet de configurer nos interfaces Fa0/1 et Fa0/2 dans le Channel-group 1 en mode PAgP on.<br />
Il faut faire de même de l’autre côté du lien sur notre deuxième switch.<br />
La commande</p>
<blockquote><p>Switch#show etherchannel summary</p></blockquote>
<p>Nous permet de vérifier notre configuration d’EtherChannel.</p>
<p><a href="http://www.lolokai.com/wp-content/uploads/2012/05/show.jpg" rel="lightbox[3795]"><img class="size-full wp-image-3808 aligncenter" src="http://www.lolokai.com/wp-content/uploads/2012/05/show.jpg" alt="" width="600" height="152" /></a><br />
Comme on peut le voir on a bien nos interfaces Fa0/1 et Fa0/2 qui sont réunies sur le port Channel Po1.<br />
La configuration du lien logique ne se fait donc plus sur Fa0/1 et Fa0/2 mais sur Po1 avec la commande suivante :</p>
<blockquote><p>Switch(config)# interface PortChannel1</p></blockquote>
<p>Les commandes de configurations sont les mêmes que sur les interfaces physiques.<br />
Pour supprimer la liaison logique et le channel group associé :</p>
<blockquote><p>Switch(config)# no interface PortChannel1</p></blockquote>
<h2><span style="color: #33cccc;">Configurer le load balancing</span></h2>
<p>Pour configurer le load balancing nous devons utiliser la commande</p>
<blockquote><p>Switch(config)#port-channel load-balance src-mac</p></blockquote>
<p>Cette commande nous permet de configurer le load balancing en fonction de l’adresse MAC source.<br />
Il existe plusieurs options pour configurer le load balancing parmi lesquelles :</p>
<ul>
<li>Src-mac : les paquets venant d’hôtes différent passent par différents port appartenant au port Channel. Alors que les paquets venant du même hôte vont passer par le même port de notre port Channel.</li>
<li>Dst-mac : les paquets pour la même destination sont envoyés par le même port, alors que ce pour des destinations différentes sont envoyés par différents ports.</li>
</ul>
<h2><span style="color: #33cccc;">Conclusion</span></h2>
<p>Nous avons vu quelle était les avantage d’utiliser l’agrégation de liens, qui nous permet d’améliorer le débit et la fiabilité de notre réseau. Nous avons aussi vu les deux principaux protocoles pour faire de l’agrégation de liens. Enfin nous vu comment configurer port Channel/EtherChannel.</p>
<p>Avez-vous des questions ?</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/W2qTiRJqRo4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/05/04/reseaux-2/agregez-nos-liens-sur-les-equipements-cisco/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/05/04/reseaux-2/agregez-nos-liens-sur-les-equipements-cisco/</feedburner:origLink></item>
		<item>
		<title>Sauvegarde avec RMAN (Recovery Manager)</title>
		<link>http://feedproxy.google.com/~r/Lolokai/~3/Z4N6J_4Jj58/</link>
		<comments>http://www.lolokai.com/2012/04/30/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 09:42:47 +0000</pubDate>
		<dc:creator>OracleBoy</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 à dire avant de commencer que nous n&#8217;allons pas traiter tous les cas possibles (il faudrait en effet plus d’un article [...]]]></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&#8217;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 &#8216;/u01/app/oracle/oradata/ORCL/rman01.dbf&#8217;</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 &#8216;%F&#8217;;</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 &#8216;AES128&#8242;; # default</p>
<p>CONFIGURE COMPRESSION ALGORITHM &#8216;BASIC&#8217; AS OF RELEASE &#8216;DEFAULT&#8217; OPTIMIZE FOR LOAD TRUE ; # default</p>
<p>CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default</p>
<p>CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#8216;/u01/app/oracle/home/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f&#8217;; # 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 &#8216;alter system archive log current&#8217; ;</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-d’écran-2012-04-23-à-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-d’écran-2012-04-23-à-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 &#8216;/u01/app/oracle/oradata/orcl/users01.dbf &#8216;</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?</p>
<img src="http://feeds.feedburner.com/~r/Lolokai/~4/Z4N6J_4Jj58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.lolokai.com/2012/04/30/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.lolokai.com/2012/04/30/sgbd/oracle/sauvegarde-avec-rman-recovery-manager/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.198 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-26 17:36:04 -->

