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

<channel>
	<title>NetworkLife &#187; BCMSN</title>
	<atom:link href="http://www.networklife.net/category/ccnp/bcmsn-642-812/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.networklife.net</link>
	<description>Another packet in the network....</description>
	<pubDate>Wed, 21 Mar 2012 09:52:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CCNP BCMSN Certified</title>
		<link>http://www.networklife.net/2010/05/ccnp-bcmsn-certified/</link>
		<comments>http://www.networklife.net/2010/05/ccnp-bcmsn-certified/#comments</comments>
		<pubDate>Thu, 20 May 2010 19:27:43 +0000</pubDate>
		<dc:creator>Benoit</dc:creator>
		
		<category><![CDATA[BCMSN]]></category>

		<category><![CDATA[bcmsn]]></category>

		<category><![CDATA[CCNP]]></category>

		<category><![CDATA[CISCO]]></category>

		<category><![CDATA[pass]]></category>

		<guid isPermaLink="false">http://www.networklife.net/?p=303</guid>
		<description><![CDATA[J&#8217;ai réussi ce matin cet examen sur la partie Switching du CCNP.
Voici mon feedback sur son contenu:

1 Lab EIGRP/MLS/VLAN
1  Lab Spanning-tree (root/priority/port-priority&#8230;)
1 Lab (avec juste  des questions) sur HSRP (que je pense avoir loupé..)
1 D&#38;G Spanning-tree
Questions vlan,  voice, mls, cos, spanning-tree, 802.1x&#8230;

Désolé pour le manque d&#8217;articles en ce moment, je n&#8217;ai plus [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai réussi ce matin cet examen sur la partie Switching du CCNP.<br />
Voici mon feedback sur son contenu:</p>
<ul>
<li>1 Lab EIGRP/MLS/VLAN</li>
<li>1  Lab Spanning-tree (root/priority/port-priority&#8230;)</li>
<li>1 Lab (avec juste  des questions) sur HSRP (que je pense avoir loupé..)</li>
<li>1 D&amp;G Spanning-tree</li>
<li>Questions vlan,  voice, mls, cos, spanning-tree, 802.1x&#8230;</li>
</ul>
<p>Désolé pour le manque d&#8217;articles en ce moment, je n&#8217;ai plus le temps pour réviser correctement et bloguer en même temps.<br />
l&#8217;ONT m&#8217;appelle afin de boucler cette certification CCNP avant la fin Juin.
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.networklife.net%2F2010%2F05%2Fccnp-bcmsn-certified%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.networklife.net%2F2010%2F05%2Fccnp-bcmsn-certified%2F&amp;source=BenoitGONCALVES&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.networklife.net/2010/05/ccnp-bcmsn-certified/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Replication Master/Slave temps réel MySQL</title>
		<link>http://www.networklife.net/2009/06/replication-masterslave-temps-reel-dune-base-mysql/</link>
		<comments>http://www.networklife.net/2009/06/replication-masterslave-temps-reel-dune-base-mysql/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 09:03:38 +0000</pubDate>
		<dc:creator>Benoit</dc:creator>
		
		<category><![CDATA[BCMSN]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[master]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[replication]]></category>

		<category><![CDATA[slave]]></category>

		<category><![CDATA[temps-réel]]></category>

		<guid isPermaLink="false">http://www.networklife.net/?p=245</guid>
		<description><![CDATA[La réplication MySQL consiste à avoir en temps réel deux bases de données MySQL identiques afin de pouvoir basculer sur un deuxième serveur en cas de défaillance du premier.
La réplication MySQL est basée sur le fait que le serveur va garder la trace de toutes les évolutions de vos bases  (modifications, effacements, etc.) dans [...]]]></description>
			<content:encoded><![CDATA[<p>La réplication MySQL consiste à avoir en temps réel deux bases de données MySQL identiques afin de pouvoir basculer sur un deuxième serveur en cas de défaillance du premier.</p>
<p>La réplication MySQL est basée sur le fait que le serveur va garder la trace de toutes les évolutions de vos bases  (modifications, effacements, etc.) dans un fichier de log binaire et les esclaves vont lire les requêtes du maître dans ce fichier de log, pour pouvoir exécuter les mêmes requêtes sur leurs copies. Il est très important de comprendre que le fichier de log binaire est simplement un enregistrement des modifications depuis un point fixe dans le temps (le moment où vous activez le log binaire). Tous les esclaves que vous activez auront besoin de la copie des données qui existaient au moment du démarrage du log. Si vous démarrez vos esclaves sur sans qu&#8217;ils ne disposent des données identiques à celles du maître au moment du démarrage du log binaire, votre réplication va échouer.</p>
<p>Nous partons avec l’architecture suivante:<br />
Deux serveurs A, et B sous Linux (réalisé sous Debian)  ayant chacun une base de donnée MySQL.<br />
<span style="text-decoration: underline;">IP Serveur A</span>: <strong>192.168.0.1</strong><br />
<span style="text-decoration: underline;">IP Serveur B</span>: <strong>192.168.0.2</strong></p>
<p style="text-align: center;"><span style="text-decoration: underline;">Principe de fonctionnement en image</span>:<br />
<img class="aligncenter" src="http://www.networklife.net/images/replication_mysql.jpg" alt="replication mysql" width="614" height="341" /></p>
<h2>MISE EN PLACE DE LA REPLICATION MySQL</h2>
<h3>On commence par le MASTER (192.168.0.1)</h3>
<p>On se connecte à la base de donnée.</p>
<pre class="cisco">Mysql -h 192.168.0.1 -u admin –ppassword –P 3306</pre>
<p><span style="text-decoration: underline;">On crée un utilisateur pour la réplication</span>:</p>
<pre class="cisco">mysql&gt; GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'repl';</pre>
<p><span style="text-decoration: underline;">On stop l’écriture sur la base</span>:</p>
<pre class="cisco">mysql&gt; FLUSH WITH READ LOCK;</pre>
<p>On récupère le nom du fichier binaire, et son offset.<br />
Il faut bien les noter car nous en auront besoin après pour configurer l’esclave.</p>
<pre class="cisco">mysql&gt; SHOW MASTER STATUS;</pre>
<p>Noter le nom du fichier dans la colonne “File” qui doit ressembler normalement à log-bin-… et noter<br />
également le numéro dans « Position”.<br />
Exemple:</p>
<pre class="cisco">mysql &gt; SHOW MASTER STATUS;
+---------------------+------------+---------------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+------------+---------------------+--------------------------+
| mysql-bin.003 | 73 | test,bar | foo,manual,mysql |
+---------------------+------------+---------------------+--------------------------+
1 row in set (0.06 sec)</pre>
<p>Si le File et le Position sont vides, PAS DE PANIQUE<br />
Prenez comme nom de File -&gt; ‘’ et pour Position -&gt; 4.<br />
Quittez le prompt mysql. -&gt; quit<br />
<span style="text-decoration: underline;">Eteignez la base</span>:</p>
<pre class="cisco">shell&gt; mysqladmin –u admin –ppassword –h 192.168.0.1 –P 3306 shutdown</pre>
<p>Editez le fichier my.cnf qui se trouve normalement dans /var/lib/mysql/my.cnf<br />
Ajoutez-y les lignes suivantes :</p>
<pre class="cisco">[mysqld]
log-bin
server-id=1</pre>
<p>Relancez la base MySQL, en étant dans le répertoire MySQL (ne pas oublier le &#8220;&amp;&#8221; qui permet de faire tourner le processus en arrière-plan):</p>
<pre class="cisco">safe_mysqld &amp;</pre>
<h3>On configure maintenant le SLAVE (192.168.0.2)</h3>
<p><span style="text-decoration: underline;">Eteignez la base</span>:</p>
<pre class="cisco">shell&gt; mysqladmin –u vadmin –ppassword –h 192.168.0.2 –P 3306 shutdown</pre>
<p>Editez le fichier my.cnf qui se trouve dans /var/lib/mysql/my.cnf<br />
Ajoutez-y les lignes suivantes :</p>
<pre class="cisco">[mysqld]
server-id=2
master-host = 192.168.0.1
master-user = repl
master-password = repl
master-port = 3306</pre>
<p>Relancez la base MySQL, en étant dans le répertoire MySQL (ne pas oublier le &#8220;&amp;&#8221; qui permet de faire tourner le processus en arrière-plan):</p>
<pre class="cisco">safe_mysqld &amp;</pre>
<p>On se rend dans le prompt MySQL pour lancer le slave.</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.2 –P 3306</pre>
<p><span style="text-decoration: underline;">On change les données comme ceci si vous aviez un nom de fichier et une position</span>:</p>
<pre class="cisco">mysql&gt; CHANGE MASTER TO
-&gt; MASTER_LOG_FILE='',
-&gt; MASTER_LOG_POS=;</pre>
<p>Si vous n’aviez pas de nom de fichier et de position en faisant le SHOW MASTER STATUS sur le master,<br />
<span style="text-decoration: underline;">entrez ceci</span>:</p>
<pre class="cisco">mysql&gt; CHANGE MASTER TO
-&gt; MASTER_LOG_FILE='',
-&gt; MASTER_LOG_POS=4;
On démarre l’esclave
mysql&gt; START SLAVE;</pre>
<p>Si tout c’est déroulé correctement, vous devez avoir ceci :<br />
(Les lignes en gras sont les plus importantes)</p>
<pre class="cisco">mysql&gt; SHOW SLAVE STATUS \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.0.1
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: ServerA-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: ServerB-relay-bin.000002
Relay_Log_Pos: 238
Relay_Master_Log_File: ServerA-bin.000001
<strong>Slave_IO_Running: Yes</strong>
<strong>Slave_SQL_Running: Yes</strong>
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 238
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.00 sec)</pre>
<p><span style="text-decoration: underline;">Et dans SHOW PROCESSLIST</span>:</p>
<pre class="cisco">mysql&gt; <strong>SHOW PROCESSLIST</strong>;
+----+-------------+----------------------------+------+---------+------+----------------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+----------------------------+------+---------+------+----------------------------------------------------------------------+------------------+
| 6 | system user | | NULL | Connect | 1944 | Waiting for master to send event | NULL |
| 7 | system user | | NULL | Connect | 1944 | Has read all relay log; waiting for the slave I/O thread to update it | NULL
| 8 | admin | serverB.lan:45148 | NULL | Query | 0 | NULL | SHOW PROCESSLIST |
+----+-------------+----------------------------+------+---------+------+----------------------------------------------------------------------+------------------+
3 rows in set (0.00 sec)</pre>
<p>En cas d’erreur de réplication,<br />
<span style="text-decoration: underline;">On vérifie l’état du SLAVE</span>:</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.2 –P 3306
mysql&gt;SHOW SLAVE STATUS ;</pre>
<p>Il arrive que certaines requêtes réussissent sur le maître mais échouent sur l&#8217;esclave. Cela ne devrait<br />
pas arriver si vous avez pris la bonne sauvegarde du maître, et que vous n&#8217;avez jamais modifié les<br />
données sur le serveur esclave, autrement que par le truchement de l&#8217;esclave de réplication.</p>
<p><span style="text-decoration: underline;">Si vous apercevez une erreur aux lignes</span>:</p>
<pre class="cisco">Last_Errno:
Last_Error:</pre>
<p><span style="text-decoration: underline;">Voici la procédure</span>:<br />
Sur le master :</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.1 –P 3306
mysql&gt;FLUSH TABLES WITH READ LOCK;
mysql&gt;SHOW MASTER STATUS;</pre>
<p>Noter le nom du fichier dans la colonne “File” qui doit ressembler normalement à log-bin-… et noter<br />
également le numéro dans &#8220;Position&#8221;.</p>
<p><span style="text-decoration: underline;">Faire un DUMP de la base de donnée</span>:</p>
<pre class="cisco">shell&gt; mysqldump -u admin -ppassword -h 192.168.0.1 -P 3306 -r /home/dump.sql nomdelabase</pre>
<p><span style="text-decoration: underline;">Envoyer le dump vers le slave</span>:</p>
<pre class="cisco">shell&gt; scp –e /home/dump.sql root@192.168.0.2:/home</pre>
<p><span style="text-decoration: underline;"><strong>Sur le Slave</strong>, on bloque les tables</span>:</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.2 –P 3306
mysql&gt;FLUSH TABLES WITH READ LOCK;
mysql&gt;exit;</pre>
<p><span style="text-decoration: underline;">On intègre le dump du master dans la base &#8220;nomdevotrebase&#8221;</span>:</p>
<pre class="cisco">shell&gt; mysql –h 192.168.0.2 –u admin -ppassword –P 3306 nomdelabase &lt;
/home/dump.sql</pre>
<p><span style="text-decoration: underline;">On redéfinit le bon fichier binaire du master et on redémarre le Slave</span>:</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.2 –P 3306
mysql&gt;CHANGE MASTER TO
-&gt; MASTER_LOG_FILE='',
-&gt; MASTER_LOG_POS=POSITION_FICHIER_LOG;
mysql&gt;START SLAVE;</pre>
<p><strong>Normalement, la réplication est repartie !</strong></p>
<p>En cas de crash du MASTER – Remise à niveau du master et de la réplication.</p>
<p>Nous allons partir du fait que le MASTER est tombé, vous l’avez remis à niveau, réinstallé vTiger.<br />
Nous allons maintenant remettre la base MySQL et réactiver la réplication.<br />
A ce moment, le SLAVE est <strong>LA</strong> base de référence. Donc nous allons commencer par stopper le slave,<br />
créer un DUMP du slave, le répliquer sur le MASTER, et relancer le tout.</p>
<p><strong>SUR LE SLAVE</strong><br />
<span style="text-decoration: underline;">On vérifie l’état du SLAVE</span>:</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.2 –P 3306
mysql&gt;FLUSH TABLES WITH READ LOCK;</pre>
<p><span style="text-decoration: underline;">On crée un dump du slave</span>:</p>
<pre class="cisco">shell&gt; mysqldump -u admin -ppassword -h 192.168.0.2 -P 3306 -r /home/dump.sql nom de la base</pre>
<p><span style="text-decoration: underline;">On envoi le dump sur le master</span>:</p>
<pre class="cisco">shell&gt; scp –e /home/dump.sql root@192.168.0.1:/home</pre>
<p><strong>SUR LE MASTER</strong></p>
<pre class="cisco">Mysql -h 192.168.0.1 -u admin –ppassword –P 3306</pre>
<p><span style="text-decoration: underline;">On crée un utilisateur pour la réplication</span>:</p>
<pre class="cisco">mysql&gt; GRANT REPLICATION SLAVE ON *.* TO repl@'%' IDENTIFIED BY 'repl';</pre>
<p><span style="text-decoration: underline;">On stop l’écriture sur la base</span>:</p>
<pre class="cisco">mysql&gt; FLUSH WITH READ LOCK;</pre>
<p><span style="text-decoration: underline;">On ré-insert le dump du slave sur le master</span>:</p>
<pre class="cisco">shell&gt; mysql –h 192.168.0.1 –u admin -ppassword –P 3306 nomdelabase &lt;
/home/dump.sql</pre>
<p>On récupère le nom du fichier binaire, et son offset. Il faut bien les noter car nous en auront besoin<br />
après pour configurer l’esclave.</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.1 –P 3306
mysql&gt; SHOW MASTER STATUS;</pre>
<p>Noter le nom du fichier dans la colonne “File” qui doit ressembler normalement à log-bin-… et noter<br />
également le numéro dans « Position”.</p>
<p><span style="text-decoration: underline;">Exemple</span>:</p>
<pre class="cisco">mysql &gt; SHOW MASTER STATUS;
+---------------------+------------+---------------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+------------+---------------------+--------------------------+
| mysql-bin.003 | 73 | test,bar | foo,manual,mysql |
+---------------------+------------+---------------------+--------------------------+
1 row in set (0.06 sec)</pre>
<p>Quittez le prompt mysql. -&gt; quit</p>
<p><span style="text-decoration: underline;">Eteignez la base</span>:</p>
<pre class="cisco">shell&gt; mysqladmin –u admin –ppassword –h 192.168.0.1 –P 3306 shutdown</pre>
<p>Editez le fichier my.cnf qui se trouve dans /var/lib/mysql/my.cnf</p>
<p><span style="text-decoration: underline;">Ajoutez-y les lignes suivantes</span>:</p>
<pre class="cisco">[mysqld]
log-bin
server-id=1</pre>
<p>Relancez la base MySQL, en étant dans le répertoire MySQL (ne pas oublier le &#8220;&amp;&#8221; qui permet de faire tourner le processus en arrière-plan):</p>
<pre class="cisco">safe_mysqld &amp;</pre>
<p><strong>SUR LE SLAVE</strong>:</p>
<p>Nous allons maintenant re-synchroniser le Slave avec le master.</p>
<p><span style="text-decoration: underline;">On redéfinit le bon fichier binaire du master et on redémarre le Slave</span>:</p>
<pre class="cisco">shell&gt; mysql –u admin –ppassword –h 192.168.0.2 –P 3306
mysql&gt;CHANGE MASTER TO
-&gt; MASTER_LOG_FILE='',
-&gt; MASTER_LOG_POS=POSITION_FICHIER_LOG;
mysql&gt;START SLAVE;</pre>
<p><strong>Normalement, la réplication est repartie !</strong></p>
<p>Vous pouvez vérifier le statut du Slave, grâce aux commandes <strong>SLAVE STATUS</strong>, et <strong>SHOW PROCESSLIST</strong>.</p>
<p><img style="display:none;" src="http://www.networklife.net/images/database.jpg" alt="replication mysql" /><br />
<span style="text-decoration: underline;">Annexes</span>: <a href="http://dev.mysql.com/doc/refman/5.0/fr/replication-howto.html">HOWTO Replication MySQL (Mysql official Documentation).</a>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.networklife.net%2F2009%2F06%2Freplication-masterslave-temps-reel-dune-base-mysql%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.networklife.net%2F2009%2F06%2Freplication-masterslave-temps-reel-dune-base-mysql%2F&amp;source=BenoitGONCALVES&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://www.networklife.net/2009/06/replication-masterslave-temps-reel-dune-base-mysql/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

