{"id":74,"date":"2007-04-18T00:00:00","date_gmt":"2007-04-18T00:00:00","guid":{"rendered":"http:\/\/netexpertise\/fr\/?p=74"},"modified":"2021-10-11T21:24:39","modified_gmt":"2021-10-11T20:24:39","slug":"replication-haute-disponibilite","status":"publish","type":"post","link":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html","title":{"rendered":"R\u00e9plication Mysql pour la haute disponibilit\u00e9"},"content":{"rendered":"<div style=\"float:left; margin-right:15px; margin-top:0px;\">\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script><br \/>\n<!-- 200x200, Netexpertise --><br \/>\n<ins class=\"adsbygoogle\" style=\"display:inline-block;width:200px;height:200px\" data-ad-client=\"ca-pub-6495750100906580\" data-ad-slot=\"1946825373\"><\/ins><br \/>\n<script><br \/>\n(adsbygoogle = window.adsbygoogle || []).push({});<br \/>\n<\/script><\/div>\n<p>Avec des bases de donn\u00e9es Mysql et des tables contenant plusieurs millions d&rsquo;enregistrements, les sauvegardes deviennent assez lourdes. Si un serveur tombe, cela peut entrainer plusieurs heures perdues, le temps de mettre en place un nouveau serveur, de r\u00e9importer les donn\u00e9es depuis la backup. Nous ne parlons m\u00eame pas des pertes financi\u00e8res potentielles due \u00e0 cette p\u00e9riode. On peut parvenir \u00e0 une meilleure stabilit\u00e9 avec Mysql soit gr\u00e2ce \u00e0 un cluster ou une r\u00e9plication. Nous allons nous concentrer sur la r\u00e9plication dans cet article. Quoiqu&rsquo;il en soit, ceci est un rapide tutorial pour mettre une r\u00e9plication en place; Fa\u00eetes un tour dans la <a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.0\/en\/replication.html\">documentation<\/a> Mysql pour en savoir plus.<\/p>\n<p>&nbsp;<\/p>\n<div style=\"text-align:center\"><img src=\"\/images\/Replication.png\" alt=\"R\u00e9plication\"><\/div>\n<p>&nbsp;<\/p>\n<p>Le master peut r\u00e9pliquer ses donn\u00e9es vers plusieurs esclaves, auxquels des clients web diff\u00e9rents peuvent envoyer leurs requ\u00eates. Les \u00e9critures doivent toujours \u00eatre envoy\u00e9es au master. Si elles sont envoy\u00e9es \u00e0 un esclave, elles ne seraient pas r\u00e9pliqu\u00e9es sur les autres serveurs.<br \/>\n&nbsp;<br \/>\n<i>Note<\/i> La r\u00e9plication est asynchrone puisque l&rsquo;esclave a besoin d&rsquo;un petit d\u00e9lai pour \u00eatre mis \u00e0 jour. C&rsquo;est particuli\u00e8rement adapt\u00e9 pour les applications comme les datawarehouses.<\/p>\n<p>&nbsp;<\/p>\n<h3>Fail-over<\/h3>\n<p>La r\u00e9plication ne fournit pas d&rsquo;auto-failover car elle requiert une intervention manuelle. Un autre article est disponible sur l&rsquo;implementation du <a href=\".\/auto-failover-heartbeat.html\">failover<\/a> avec Heartbeat. Cela donne la possibilit\u00e9 de basculer le trafic automatiquement vers le serveur esclave en quelques secondes.<\/p>\n<p>&nbsp;<\/p>\n<h3>D\u00e9marrage<\/h3>\n<p>Nous assumerons avoir un serveur seul contenant d\u00e9j\u00e0 les informations pr\u00e9cieuses, et o\u00f9 l&rsquo;on veut impl\u00e9menter un syst\u00e8me de redondance. Proc\u00e9dez de la mani\u00e8re suivante pour que votre serveur soit pr\u00eat \u00e0 la r\u00e9plication:<\/p>\n<ul>\n<li>Activatez le log binaire sur le serveur ma\u00eetre. C&rsquo;est absolument n\u00e9cessaire, l&rsquo;esclave doit lire ces fichiers binaires pour se synchroniser. <i>my.cnf<\/i> contient <i>log-bin=mysql-bin<\/i> dans la section <b>[mysqld]<\/b> dans mon cas<\/li>\n<li>Ajoutez <i>server-id=1<\/i> dans <i>my.cnf<\/i>.<br \/>\nCet id doit \u00eatre unique pour chaque serveur (L&rsquo;esclave sera 2). Red\u00e9marrez le service si ces options n&rsquo;\u00e9taient pas activ\u00e9es.<\/li>\n<li>Cr\u00e9ez un compte pour l&rsquo;esclave sur le master pour qu&rsquo;il soit autoris\u00e9 \u00e0 r\u00e9pliquer:\n<pre>GRANT REPLICATION SLAVE ON *.*\nTO 'slave'@'192.168.0.3' IDENTIFIED BY 'mypassword';<\/pre>\n<p>o\u00f9 &lsquo;slave&rsquo; est le nom d&rsquo;utilisateur avec lequel le serveur esclave va se connecter, 192.168.0.3 l&rsquo;adresse IP de l&rsquo;esclave.<\/li>\n<li>Mettez en place une nouvelle machine pour le serveur esclave et installez Mysql. my.cnf doit contenir ceci:<br \/>\n<i>[mysqld]<br \/>\nserver-id=2<\/i>. Ne d\u00e9marrez pas le service maintenant!<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Transfert des donn\u00e9es vers l&rsquo;esclave<\/h3>\n<ul>\n<li>Bloquez tout d&rsquo;abord les op\u00e9rations d&rsquo;\u00e9criture sur le master et enregistrez les derni\u00e8res valeurs depuis le log binaire:\n<pre>mysql&gt; FLUSH TABLES WITH READ LOCK;\nmysql&gt; SHOW MASTER STATUS;<\/pre>\n<p>Vous devriez obtenir quelque chose de similaire \u00e0 ceci:<\/p>\n<pre style=\"face:courier; size:3\">+-------------------+----------+--------------+------------------+\n| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |\n+-------------------+----------+--------------+------------------+\n| my-db1-bin.000002 |      239 |              |                  |\n+-------------------+----------+--------------+------------------+<\/pre>\n<p>Soyez s\u00fbrs d&rsquo;enregistrer ces valeurs, elles seront n\u00e9cessaires pour la suite.<\/li>\n<li>Arr\u00e9tez le processus Mysql sur le ma\u00eetre et fa\u00eetes une copie du r\u00e9pertoire de donn\u00e9es avec tar par exemple. Apr\u00e8s avoir ex\u00e9cut\u00e9 tar, red\u00e9marrez le service. C&rsquo;est la seule fois que le master sera arr\u00e9t\u00e9.<\/li>\n<li>Copiez le fichier tar sur l&rsquo;esclave dans le r\u00e9pertoire temp par exemple, d\u00e9compressez le et copiez les fichiers vers le r\u00e9pertoire de donn\u00e9es. Ne copiez pas les fichiers de log.<br \/>\nV\u00e9rifiez que les droits sont corrects (Ils doivent \u00eatre identiques aux fichiers originaux). Vous avez maintenant les donn\u00e9es du master sur l&rsquo;esclave.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>Activation de la r\u00e9plication sur l&rsquo;esclave<\/h3>\n<p>D\u00e9marrez l&rsquo;esclave avec l&rsquo;option suivante:<br \/>\n<i>&#8211;skip-slave-start<\/i><br \/>\n&nbsp;<br \/>\nVous pouvez aussi logguer les warnings dans le log d&rsquo;erreurs pour avoir une meilleure id\u00e9e de ce qu&rsquo;il se passe<br \/>\n<i>&#8211;log-warnings<\/i><br \/>\n&nbsp;<br \/>\nMaintenant que le serveur est d\u00e9marr\u00e9, connectez-vous dessus avec un client Mysql, et ajoutez les d\u00e9tails du master:<\/p>\n<pre>mysql&gt; CHANGE MASTER TO\nmysql&gt; MASTER_HOST='192.168.0.2',\nmysql&gt; MASTER_USER='slave',\nmysql&gt; MASTER_PASSWORD='mypassword',\nmysql&gt; MASTER_LOG_FILE='my-db1-bin.000002',\nmysql&gt; MASTER_LOG_POS=239;\n<\/pre>\n<p>Les 2 derni\u00e8res lignes contiennent bien s\u00fbr les valeurs r\u00e9cup\u00e9r\u00e9es sur le master.<\/p>\n<pre>mysql&gt; START SLAVE;<\/pre>\n<p>La r\u00e9plication peut commencer!<br \/>\nLe status de l&rsquo;esclave peut \u00eatre v\u00e9rifi\u00e9e via la commande suivante:<\/p>\n<pre>mysql&gt; show slave status;\n<\/pre>\n<pre style=\"face:courier; size:3\">+-------------------+-------------+-------------+-\/-+---------------+-------------------+\n| Slave_IO_State    | Master_Host | Master_User |   | Connect_Retry | Master_Log_File   |\n+-------------------+-------------+-------------+-\/-+---------------+-------------------+\n| Wait...send event | 192.168.0.2 | slave       |   |            60 | my-db1-bin.000006 |\n+-------------------+-------------+-------------+-\/-+---------------+-------------------+\n\n+----------------+---------------+---------------+--------------------+-----------------+\n| Rd_Mtr_Log_Pos | Relay_Log_File| Relay_Log_Pos | Relay_Mtr_Log_File | Slave_IO_Running|\n+----------------+---------------+---------------+--------------------+-----------------+\n|      514457737 | s...in.000007 |      26082745 | my-db1-bin.000006  | Yes             |\n+----------------+---------------+---------------+--------------------+-----------------+\n\n+-------------------+-\/-+---------------------+-----------------+-\/-+-------------------+\n| Slave_SQL_Running |   | Exec_Master_Log_Pos | Relay_Log_Space |   | Sds_Behind_Master |\n+-------------------+-\/-+---------------------+-----------------+-\/-+-------------------+\n| Yes               |   |           514457737 |        26082745 |   |                 0 |\n+-------------------+-\/-+---------------------+-----------------+-\/-+-------------------+\n<\/pre>\n<p>&nbsp;<\/p>\n<div id=\"imgright\">\n<a href=\"http:\/\/www.amazon.fr\/gp\/product\/2746030047?ie=UTF8&amp;tag=netexpertis06-21&amp;linkCode=as2&amp;camp=1642&amp;creative=6746&amp;creativeASIN=2746030047\"><img border=\"0\" src=\"\/images\/514A-PLgixL._SL110_.jpg\"><\/a><img loading=\"lazy\" src=\"http:\/\/www.assoc-amazon.fr\/e\/ir?t=netexpertis06-21&amp;l=as2&amp;o=8&amp;a=2746030047\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"><\/div>\n<p>Si la r\u00e9plication arr\u00eate de fonctionner pour quelque raison que ce soit, la derni\u00e8re erreur sera affich\u00e9e ici. Vous pouvez aussi les trouver dans le fichier de log d&rsquo;erreurs mysql.<br \/>\nD\u00e9sactivez l&rsquo;option <i>&#8211;skip-slave-start<\/i> du script de d\u00e9marrage pour que la r\u00e9plication soit activ\u00e9e apr\u00e8s le red\u00e9marrage du serveur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avec des bases de donn\u00e9es Mysql et des tables contenant plusieurs millions d&rsquo;enregistrements, les sauvegardes deviennent assez lourdes. Si un serveur tombe, cela peut entrainer plusieurs heures perdues, le temps de mettre en place un nouveau serveur, de r\u00e9importer les donn\u00e9es depuis la backup. Nous ne parlons m\u00eame pas des pertes financi\u00e8res potentielles due \u00e0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false},"categories":[4],"tags":[404],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.13 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Netexpertise - R\u00e9plication Mysql pour la haute disponibilit\u00e9<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Netexpertise - R\u00e9plication Mysql pour la haute disponibilit\u00e9\" \/>\n<meta property=\"og:description\" content=\"Avec des bases de donn\u00e9es Mysql et des tables contenant plusieurs millions d&rsquo;enregistrements, les sauvegardes deviennent assez lourdes. Si un serveur tombe, cela peut entrainer plusieurs heures perdues, le temps de mettre en place un nouveau serveur, de r\u00e9importer les donn\u00e9es depuis la backup. Nous ne parlons m\u00eame pas des pertes financi\u00e8res potentielles due \u00e0 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html\" \/>\n<meta property=\"og:site_name\" content=\"Netexpertise\" \/>\n<meta property=\"article:published_time\" content=\"2007-04-18T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-11T20:24:39+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.assoc-amazon.fr\/e\/ir?t=netexpertis06-21&amp;l=as2&amp;o=8&amp;a=2746030047\" \/>\n<meta name=\"author\" content=\"dave\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@netexpertise\" \/>\n<meta name=\"twitter:site\" content=\"@netexpertise\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html\",\"url\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html\",\"name\":\"Netexpertise - R\u00e9plication Mysql pour la haute disponibilit\u00e9\",\"isPartOf\":{\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#website\"},\"datePublished\":\"2007-04-18T00:00:00+00:00\",\"dateModified\":\"2021-10-11T20:24:39+00:00\",\"author\":{\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\"},\"breadcrumb\":{\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.netexpertise.eu\/fr\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R\u00e9plication Mysql pour la haute disponibilit\u00e9\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#website\",\"url\":\"https:\/\/www.netexpertise.eu\/fr\/\",\"name\":\"Netexpertise\",\"description\":\"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632\",\"name\":\"dave\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g\",\"caption\":\"dave\"},\"sameAs\":[\"http:\/\/www.netexpertise.eu\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Netexpertise - R\u00e9plication Mysql pour la haute disponibilit\u00e9","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html","og_locale":"fr_FR","og_type":"article","og_title":"Netexpertise - R\u00e9plication Mysql pour la haute disponibilit\u00e9","og_description":"Avec des bases de donn\u00e9es Mysql et des tables contenant plusieurs millions d&rsquo;enregistrements, les sauvegardes deviennent assez lourdes. Si un serveur tombe, cela peut entrainer plusieurs heures perdues, le temps de mettre en place un nouveau serveur, de r\u00e9importer les donn\u00e9es depuis la backup. Nous ne parlons m\u00eame pas des pertes financi\u00e8res potentielles due \u00e0 [&hellip;]","og_url":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html","og_site_name":"Netexpertise","article_published_time":"2007-04-18T00:00:00+00:00","article_modified_time":"2021-10-11T20:24:39+00:00","og_image":[{"url":"http:\/\/www.assoc-amazon.fr\/e\/ir?t=netexpertis06-21&amp;l=as2&amp;o=8&amp;a=2746030047"}],"author":"dave","twitter_card":"summary_large_image","twitter_creator":"@netexpertise","twitter_site":"@netexpertise","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html","url":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html","name":"Netexpertise - R\u00e9plication Mysql pour la haute disponibilit\u00e9","isPartOf":{"@id":"https:\/\/www.netexpertise.eu\/fr\/#website"},"datePublished":"2007-04-18T00:00:00+00:00","dateModified":"2021-10-11T20:24:39+00:00","author":{"@id":"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632"},"breadcrumb":{"@id":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.netexpertise.eu\/fr\/database\/mysql\/replication-haute-disponibilite.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.netexpertise.eu\/fr"},{"@type":"ListItem","position":2,"name":"R\u00e9plication Mysql pour la haute disponibilit\u00e9"}]},{"@type":"WebSite","@id":"https:\/\/www.netexpertise.eu\/fr\/#website","url":"https:\/\/www.netexpertise.eu\/fr\/","name":"Netexpertise","description":"Syst\u00e8mes \/ R\u00e9seaux \/ DevOps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.netexpertise.eu\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/e398f0307e2b167f6b884c4953be2632","name":"dave","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.netexpertise.eu\/fr\/#\/schema\/person\/image\/","url":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","contentUrl":"http:\/\/1.gravatar.com\/avatar\/1129916e1f4955bd632f27f836f64e55?s=96&d=mm&r=g","caption":"dave"},"sameAs":["http:\/\/www.netexpertise.eu"]}]}},"_links":{"self":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/74"}],"collection":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":0,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/posts\/74\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/media?parent=74"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/categories?post=74"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.netexpertise.eu\/fr\/wp-json\/wp\/v2\/tags?post=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}