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

<channel>
	<title>mariadb Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/mariadb/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/mariadb/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Mon, 05 Sep 2022 15:55:25 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>mariadb Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/mariadb/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MySQL rétablir la réplication d&#8217;un slave avec un dump du master</title>
		<link>https://www.monlinux.net/2018/02/mysql-retablir-replication-slave-dump-master/</link>
					<comments>https://www.monlinux.net/2018/02/mysql-retablir-replication-slave-dump-master/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Thu, 15 Feb 2018 21:32:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=1106</guid>

					<description><![CDATA[<p>J&#8217;ai fait un premier article pour r&#233;soudre les probl&#232;mes de r&#233;plication d&#8217;un serveur MySQL slave &#224; partir de binaire xtrabackup, mais cela peut aussi se faire &#224; partir d&#8217;un dump, voici la proc&#233;dure &#224; suivre &#240;&#159;&#153;&#130; Restaurer un slave via... <a class="more-link" href="https://www.monlinux.net/2018/02/mysql-retablir-replication-slave-dump-master/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2018/02/mysql-retablir-replication-slave-dump-master/">MySQL rétablir la réplication d&rsquo;un slave avec un dump du master</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>J&rsquo;ai fait un premier article pour<a href="https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/"> résoudre les problèmes de réplication d&rsquo;un serveur MySQL slave à partir de binaire xtrabackup</a>, mais cela peut aussi se faire à partir d&rsquo;un dump, voici la procédure à suivre <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h2>Restaurer un slave via un dump du master</h2>
<p>Vous devez avoir créé un dump de votre base de données quand celui-ci est figée, il faut donc faire quelques préparations.</p>
<h3>1. Préparation sur le master</h3>
<p>Ouvrez 2 consoles SSH sur le master.</p>
<p>Dans la première, ouvrir une console MySQL pour mettre la base de données en read-only (pour ne pas arrêter le service carrément), cela va donc entrainer une interruption de service pour les écritures</p>
<pre class="lang:mysql decode:true ">FLUSH TABLES WITH READ LOCK;</pre>
<p>Dans l&rsquo;autre fenêtre, obtenir la position du log file via une nouvelle console MySQL et notez le :</p>
<pre class="lang:mysql decode:true ">show master status \G</pre>
<p>Fermez la console MySQL pour revenir en shell pour faire votre dump :</p>
<pre class="lang:mysql decode:true ">mysqldump  --add-drop-table --user=root -p DB_NAME | gzip -3 --stdout &gt; DB_NAME.sql.gz</pre>
<p>Une fois le dump fini, retournez dans la première console MySQL pour faire la commande de libération des tables :</p>
<pre class="lang:mysql decode:true ">unlock tables;</pre>
<p>Vérifiez que les tables sont bien libérées après avoir attendu une minute :</p>
<pre class="lang:mysql decode:true">show open tables;</pre>
<h3>2. Remettre la réplication MySQL en place sur le slave</h3>
<p>En premier, démarrez MySQL, injectez le dump (ce qui peut prendre du temps et vérifiez que vos bases de données sont bien là.</p>
<pre class="lang:sh decode:true ">zcat DB_NAME.sql.gz | mysql -u root -p VOTRE_DB</pre>
<p>Appliquez les commandes suivantes, en remplaçant les valeurs par celle de votre infrastructure :</p>
<ul>
<li>HOST : votre serveur master</li>
<li>USER : l&rsquo;utilisateur MySQL de réplication si vous en avez défini un sinon le root (je vous conseille un utilisateur dédié avec uniquement les droits nécessaires)</li>
<li>PASSWORD : le mot de passe</li>
<li>LOG_FILE et LOG_POS : les valeurs de la position du log file récupérée plus haut sur le master</li>
</ul>
<pre class="lang:mysql decode:true">reset slave;
CHANGE MASTER TO
MASTER_HOST='serveur_master.tld',
MASTER_USER='repl',
MASTER_PASSWORD='passwd',
MASTER_LOG_FILE='mysql-bin.002043',
MASTER_LOG_POS=106;
start slave;</pre>
<p>Attendez une minute et puis vérifiez le status du slave :</p>
<pre class="lang:mysql decode:true">show slave status \G</pre>
<p>Vous devriez avoir ceci parmi la réponse :</p>
<pre class="lang:mysql decode:true">Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes</pre>
<p>Votre réplication est donc correcte.</p>
<p>Pour vous rassurez la première fois, vous pouvez faire un « create database toto » sur le master, voir si la base de données apparait sur le slave et ensuite faire un « drop database toto » sur le master.</p>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2018/02/mysql-retablir-replication-slave-dump-master/">MySQL rétablir la réplication d&rsquo;un slave avec un dump du master</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2018/02/mysql-retablir-replication-slave-dump-master/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL problème de réplication master slave</title>
		<link>https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/</link>
					<comments>https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sat, 13 Jan 2018 13:23:58 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[réplication]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=1102</guid>

					<description><![CDATA[<p>Plusieurs choses sont amen&#233;es &#224; provoquer un probl&#232;me de r&#233;plication de vos bases de donn&#233;es MySQL : Quelqu&#8217;un se connecte sur un slave et fait une modification&#8230; (des options readonly permettent de s&#8217;en pr&#233;munir) Mauvaise perte de connexion entre les... <a class="more-link" href="https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/">MySQL problème de réplication master slave</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Plusieurs choses sont amenées à provoquer un problème de réplication de vos bases de données MySQL :</p>
<ul>
<li>Quelqu&rsquo;un se connecte sur un slave et fait une modification&#8230; (des options readonly permettent de s&rsquo;en prémunir)</li>
<li>Mauvaise perte de connexion entre les serveurs</li>
<li>Crash du master</li>
<li>&#8230;</li>
</ul>
<p>Pour commencer, je ne le répèterai jamais assez, pensez aux backups de vos bases de données MySQL. Je vais traiter le sujet dans un article sur la sauvegarde de grosse base de données MySQL via xtrabackup, mais <a href="https://sourceforge.net/projects/automysqlbackup/">autobackup</a> est parfait pour de petites base de données. Ce dernier est basé sur mysqldump, mais gère la journalisation des dumps. J&rsquo;explique la restauration master-slave à partir d&rsquo;un dump dans un autre article.</p>
<p>Vous avez maintenant votre roue de secours, on peut donc regarder pour solutionner votre problème de réplication MySQL. Dans la suite de cet article, je traite la restauration à partir des binaires ou d&rsquo;une sauvegarde <a href="https://www.monlinux.net/tag/xtrabackup/">Xtrabackup</a>.</p>
<p><span id="more-1102"></span></p>
<h2>Type d&rsquo;erreur</h2>
<p>Avec un show slave status, vous avez une erreur du type :</p>
<pre class="lang:mysql decode:true ">error ' Duplicate entry '2513' for key 1' on query 'INSERT INTO users VALUES('','400', 'user1', '(hidden)', 'Belgium')'</pre>
<p>&nbsp;</p>
<h2>Restaurer un slave via une copie binaire ou xtrabackup</h2>
<p>La première méthode permet de partir des fichiers binaires :</p>
<ul>
<li>soit via une sauvegarde <strong>xtrabackup</strong>, donc <strong>pas d&rsquo;arrêt de service</strong>. Xtrabackup sauvegarde le logfile et sa position, très utile pour rétablir la synchronisation.</li>
<li>soit via une copie<strong> rsync des données</strong> de /var/lib/mysql du master, mais le rsync doit être fait avec le <strong>serveur MySQL éteint</strong>! Ou en read-only avec des flush tables pour ne pas trop dégrader&#8230;</li>
</ul>
<h3>1. Préparation sur le slave</h3>
<p>Arrêtez le service MySQL.</p>
<p>Si vous avez xtrabackup, copiez la dernière sauvegarde et passez l&rsquo;étape suivante, rien à faire sur le master, direction point 3.</p>
<p>Si vous le faite via rsync, suivez l&rsquo;étape suivante.</p>
<h3>2. Préparation sur le master uniquement via rsync</h3>
<p>Ouvrez 2 consoles SSH sur le master.</p>
<p>Dans la première, ouvrir une console mysql pour mettre la base de données en read-only (pour ne pas arrêter le service MySQL carrément)</p>
<pre class="lang:mysql decode:true ">FLUSH TABLES WITH READ LOCK;</pre>
<p>Dans l&rsquo;autre fenêtre, obtenir la position du log file via une nouvelle console MySQL et notez le :</p>
<pre class="lang:mysql decode:true ">show master status \G</pre>
<p>Fermez la console MySQL pour revenir en shell.</p>
<p>Maintenant, copiez le répertoire /var/lib/mysql avec les options rsync -ahPl du master vers le slave.</p>
<p>Une fois la copie finie, retournez dans la première console MySQL pour faire la commande de libération des tables :</p>
<pre class="lang:mysql decode:true ">unlock tables;</pre>
<p>Vérifiez que les tables sont bien libérées après avoir attendu une minute :</p>
<pre class="lang:mysql decode:true ">show open tables;</pre>
<h3>3. Remettre la réplication MySQL en place sur le slave</h3>
<p>En premier, démarrez MySQL et vérifiez que vos bases de données sont bien là.</p>
<p>Appliquez les commandes suivantes, en remplaçant les valeurs par celle de votre infrastructure :</p>
<ul>
<li>HOST : votre serveur master</li>
<li>USER : l&rsquo;utilisateur MySQL de réplication si vous en avez défini un sinon le root (je vous conseille un utilisateur dédié avec uniquement les droits nécessaires)</li>
<li>PASSWORD : le mot de passe</li>
<li>LOG_FILE et LOG_POS : les valeurs de la position du log file récupérée plus haut sur le master</li>
</ul>
<pre class="lang:mysql decode:true ">reset slave;
CHANGE MASTER TO
MASTER_HOST='serveur_master.tld',
MASTER_USER='repl',
MASTER_PASSWORD='passwd',
MASTER_LOG_FILE='mysql-bin.002043',
MASTER_LOG_POS=106;
start slave;</pre>
<p>Attendez une minute et puis vérifiez le status du slave :</p>
<pre class="lang:mysql decode:true">show slave status \G</pre>
<p>Vous devriez avoir ceci parmi la réponse :</p>
<pre class="lang:mysql decode:true">Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes</pre>
<p>Votre réplication est donc correcte.</p>
<p>Pour vous rassurez la première fois, vous pouvez faire un « create database toto » sur le master, voir si la base de données apparait sur le slave et ensuite faire un « drop database toto » sur le master.</p>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/">MySQL problème de réplication master slave</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2018/01/mysql-probleme-replication-master-slave/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 29/44 requêtes en 0.035 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-07-15 19:22:23 by W3 Total Cache
-->