{"id":82116,"date":"2020-05-19T13:42:54","date_gmt":"2020-05-19T11:42:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt"},"modified":"2020-05-19T13:42:54","modified_gmt":"2020-05-19T11:42:54","slug":"orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","title":{"rendered":"Orchestrator pour MySQL : pourquoi il est indispensable pour construire un projet r\u00e9silient","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tout grand projet a commenc\u00e9 avec quelques serveurs. D'abord il y avait un serveur de base de donn\u00e9es, puis des esclaves ont \u00e9t\u00e9 ajout\u00e9s pour scalabilit\u00e9 de lecture. Et l\u00e0 \u2014 stop ! Un ma\u00eetre, mais beaucoup d'esclaves ; si l'un des esclaves part, tout ira bien, mais si le ma\u00eetre part \u2014 \u00e7a va mal : temps d'arr\u00eat, les admins se battent pour red\u00e9marrer le serveur. Que faire ? R\u00e9server le ma\u00eetre. Mon coll\u00e8gue Pavel en a d\u00e9j\u00e0 parl\u00e9. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/491044\/\">article<\/a><\/noindex>, je ne vais pas le r\u00e9p\u00e9ter. \u00c0 la place, je vais vous expliquer pourquoi vous avez absolument besoin d'Orchestrator pour MySQL !<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nCommen\u00e7ons par la question principale : \u00ab Comment allons-nous passer le code sur une nouvelle machine lorsque le ma\u00eetre part ? \u00bb<\/p>\n<ul>\n<li>Le sch\u00e9ma avec VIP (IP virtuelle) me pla\u00eet le plus, et c'est de cela que nous allons parler ci-dessous. C'est le plus simple et le plus \u00e9vident, bien qu'il ait une limitation claire : le ma\u00eetre que nous allons r\u00e9server doit se trouver dans le segment L2 avec la nouvelle machine, c'est-\u00e0-dire qu'on peut oublier le deuxi\u00e8me centre de donn\u00e9es. De plus, en th\u00e9orie, si l'on suit la r\u00e8gle selon laquelle un grand L2 est le mal, car L2 est uniquement pour le rack, et entre les racks c'est L3, un tel sch\u00e9ma a encore plus de limitations.<\/li>\n<li>On peut \u00e9crire dans le code le nom DNS et le r\u00e9soudre via \/etc\/hosts. En r\u00e9alit\u00e9, il n'y aura pas de r\u00e9solution. L'avantage de ce sch\u00e9ma : il n'y a pas de limite propre \u00e0 la premi\u00e8re m\u00e9thode, c'est-\u00e0-dire qu'on peut organiser des cross-DC. Mais alors se pose la question \u00e9vidente, \u00e0 quelle vitesse nous am\u00e8nerons le changement dans \/etc\/hosts via Puppet-Ansible.<\/li>\n<li>On peut modifier un peu le deuxi\u00e8me moyen : installer un DNS cach\u00e9 sur tous les serveurs web, par lequel le code ira vers la base de donn\u00e9es ma\u00eetre. On peut d\u00e9finir un TTL de 60 pour cet enregistrement DNS. Il semble que si cela est bien impl\u00e9ment\u00e9, c'est une bonne m\u00e9thode.<\/li>\n<li>Le sch\u00e9ma avec la d\u00e9couverte de services, impliquant l'utilisation de Consul et etcd.<\/li>\n<li>Une option int\u00e9ressante avec <noindex><a rel=\"nofollow\" href=\"https:\/\/proxysql.com\/\">ProxySQL<\/a><\/noindex>. Il faut acheminer tout le trafic vers MySQL \u00e0 travers ProxySQL, ProxySQL sait d\u00e9j\u00e0 d\u00e9terminer qui est le ma\u00eetre. Au fait, on peut lire \u00e0 propos de l'une des utilisations de ce produit dans mon <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/501730\/\">article<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nL'auteur d'Orchestrator, travaillant chez Github, a d'abord r\u00e9alis\u00e9 le premier sch\u00e9ma avec VIP, puis l'a adapt\u00e9 au sch\u00e9ma avec Consul.<\/p>\n<p>Sch\u00e9ma typique de l'infrastructure :<\/p>\n<p><img decoding=\"async\" alt=\"Orchestrator pour MySQL : pourquoi il est indispensable pour construire un projet r\u00e9silient\" src=\"\/wp-content\/uploads\/2020\/05\/b08220e7aa6336229cbbfedd78afdcc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nJe vais d'abord d\u00e9crire les situations \u00e9videntes \u00e0 prendre en compte :<\/p>\n<ul>\n<li>L'adresse VIP ne doit pas \u00eatre configur\u00e9e sur aucun des serveurs. Imaginons la situation : le ma\u00eetre red\u00e9marre, et pendant qu'il se charge, Orchestrator est pass\u00e9 en mode failover et a fait de l'un des esclaves un ma\u00eetre ; ensuite, l'ancien ma\u00eetre se r\u00e9veille, et maintenant le VIP est sur deux machines. C'est mauvais.<\/li>\n<li>Pour l'orchestrateur, un script devra \u00eatre \u00e9crit pour communiquer avec l'ancien et le nouveau ma\u00eetre. Sur l'ancien, il faut effectuer un ifdown, et sur le nouveau ma\u00eetre \u2014 un ifup vip. Il serait \u00e9galement bon d'int\u00e9grer dans ce script que, en cas de basculement, le port sur le commutateur de l'ancien ma\u00eetre soit simplement \u00e9teint, afin d'\u00e9viter toute situation de split-brain.<\/li>\n<li>Apr\u00e8s que l'Orchestrateur a appel\u00e9 votre script pour d'abord retirer le VIP et\/ou \u00e9teindre le port sur le commutateur, puis a appel\u00e9 le script pour activer le VIP sur le nouveau ma\u00eetre, n'oubliez pas d'indiquer \u00e0 tous via la commande arping que le nouveau VIP est maintenant actif ici.<\/li>\n<li>Tous les esclaves doivent avoir read_only=1, et d\u00e8s que vous promouvez un esclave en ma\u00eetre, il doit passer \u00e0 read_only=0.<\/li>\n<li>N'oubliez pas qu'un esclave peut devenir ma\u00eetre, celui que nous avons choisi pour cela (l'Orchestrateur dispose d'un m\u00e9canisme de pr\u00e9f\u00e9rence pour d\u00e9terminer quel esclave sera consid\u00e9r\u00e9 comme candidat au nouveau ma\u00eetre en premier, lequel en second, et quel esclave ne doit en aucun cas \u00eatre choisi comme ma\u00eetre). Si un esclave devient ma\u00eetre, il conservera la charge de l'esclave et ajoutera la charge du ma\u00eetre, ce qui doit \u00eatre pris en compte.<\/li>\n<\/ul>\n<p>\nPourquoi avez-vous absolument besoin de l'Orchestrateur si vous ne l'avez pas ?<\/p>\n<ul>\n<li>L'Orchestrateur a une interface graphique tr\u00e8s conviviale qui affiche toute la topologie (voir la capture d'\u00e9cran ci-dessous).<\/li>\n<li>L'Orchestrateur peut suivre quels esclaves sont \u00e0 la tra\u00eene et o\u00f9 la r\u00e9plication a totalement \u00e9chou\u00e9 (nous avons des scripts attach\u00e9s \u00e0 l'Orchestrateur pour l'envoi de SMS).<\/li>\n<li>L'Orchestrateur vous indique sur quels esclaves il y a une erreur de GTID errant.<\/li>\n<\/ul>\n<p>\nInterface de l'Orchestrateur :<\/p>\n<p><img decoding=\"async\" alt=\"Orchestrator pour MySQL : pourquoi il est indispensable pour construire un projet r\u00e9silient\" src=\"\/wp-content\/uploads\/2020\/05\/5129a85ad1c0a5db8e3ecf501cff0d0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nQu'est-ce que le GTID errant ?<\/p>\n<p>Il y a deux exigences principales pour le fonctionnement de l'Orchestrateur :<\/p>\n<ul>\n<li>Il est n\u00e9cessaire que sur toutes les machines du cluster MySQL, le pseudo GTID soit activ\u00e9, nous avons le GTID activ\u00e9.<\/li>\n<li>Il faut qu'il y ait le m\u00eame type de binlogs partout, cela peut \u00eatre en mode statement. Nous avions une configuration o\u00f9 le ma\u00eetre et la plupart des esclaves \u00e9taient en mode Row, tandis que deux sont rest\u00e9s en mode Mixed pour des raisons historiques. En cons\u00e9quence, ces esclaves l'Orchestrateur a simplement refus\u00e9 de connecter au nouveau ma\u00eetre.<\/li>\n<\/ul>\n<p>\nRappelez-vous que le plus important dans un esclave de production est sa coh\u00e9rence avec le ma\u00eetre ! Si vous avez le Global Transaction ID (GTID) activ\u00e9 \u00e0 la fois sur le ma\u00eetre et sur l'esclave, vous pouvez utiliser la fonction gtid_subset pour v\u00e9rifier si les m\u00eames requ\u00eates de modification de donn\u00e9es ont bien \u00e9t\u00e9 ex\u00e9cut\u00e9es sur ces machines. Vous pouvez lire plus \u00e0 ce sujet. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/blog\/2014\/05\/19\/errant-transactions-major-hurdle-for-gtid-based-failover-in-mysql-5-6\/\">ici<\/a><\/noindex>.<\/p>\n<p>Ainsi, Orchestrator vous montre \u00e0 travers l'erreur GTID errant qu'il y a des transactions sur le slave qui ne figurent pas sur le master. Pourquoi cela se produit-il ?<\/p>\n<ul>\n<li>Le read_only=1 n'est pas activ\u00e9 sur le slave, quelqu'un s'est connect\u00e9 et a ex\u00e9cut\u00e9 une requ\u00eate de modification des donn\u00e9es.<\/li>\n<li>Le super_read_only=1 n'est pas activ\u00e9 sur le slave, alors l'administrateur, confondant les serveurs, est entr\u00e9 et a ex\u00e9cut\u00e9 une requ\u00eate l\u00e0-bas.<\/li>\n<li>Si vous avez pris en compte les deux points pr\u00e9c\u00e9dents, il y a encore une astuce : dans MySQL, la requ\u00eate de flush des binlogs est \u00e9galement inscrite dans le binlog, donc \u00e0 la premi\u00e8re flush sur le ma\u00eetre, tous les slaves auront un GTID errant. Comment \u00e9viter cela ? Dans la version perona-5.7.25-28, un param\u00e8tre binlog_skip_flush_commands=1 a \u00e9t\u00e9 introduit, interdisant l'\u00e9criture de flush dans les binlogs. Plus d'informations sont disponibles sur le site mysql.com. <noindex><a rel=\"nofollow\" href=\"https:\/\/bugs.mysql.com\/bug.php?id=88720\">bug<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nPour r\u00e9sumer tout ce qui a \u00e9t\u00e9 dit pr\u00e9c\u00e9demment. Si vous ne souhaitez pas utiliser Orchestrator en mode failover pour le moment, configurez-le en mode observation. Vous aurez alors toujours sous les yeux une carte des interactions entre les machines MySQL et des informations visuelles sur le type de r\u00e9plication sur chaque machine, si les slaves sont \u00e0 la tra\u00eene, et surtout \u2014 dans quelle mesure ils sont coh\u00e9rents avec le ma\u00eetre !<\/p>\n<p>La question \u00e9vidente : \u00ab Comment Orchestrator doit-il fonctionner ? \u00bb. Il doit s\u00e9lectionner un nouveau ma\u00eetre parmi les slaves actuels, puis reconnecter tous les slaves \u00e0 celui-ci (c'est pr\u00e9cis\u00e9ment pour cela que nous avons besoin de GTID ; si l'on utilise l'ancien m\u00e9canisme avec binlog_name et binlog_pos, le passage d'un slave de l'ancien ma\u00eetre au nouveau est tout simplement impossible !). Avant qu'Orchestrator n'arrive, j'ai d\u00fb faire tout cela manuellement une fois. L'ancien ma\u00eetre avait des probl\u00e8mes avec le contr\u00f4leur Adaptec, il avait environ 10 slaves. Je devais transf\u00e9rer le VIP de l'ancien ma\u00eetre vers l'un des slaves et reconnecter tous les autres slaves \u00e0 celui-ci. Combien de consoles ai-je d\u00fb ouvrir, combien de commandes simultan\u00e9es ai-je d\u00fb entrer\u2026 J'ai d\u00fb attendre jusqu'\u00e0 3 heures du matin, all\u00e9ger la charge sur tous les slaves, sauf deux, faire du premier des deux machines le ma\u00eetre, imm\u00e9diatement y connecter la seconde machine, puis connecter tous les autres slaves au nouveau ma\u00eetre et r\u00e9tablir la charge. En gros, un v\u00e9ritable cauchemar\u2026<\/p>\n<p>Comment fonctionne Orchestrator lorsqu'il passe en mode failover ? La fa\u00e7on la plus simple de le montrer est d'expliquer une situation o\u00f9 nous souhaitons faire d'une machine plus puissante et plus moderne que celle actuellement le nouveau ma\u00eetre. <\/p>\n<p><img decoding=\"async\" alt=\"Orchestrator pour MySQL : pourquoi il est indispensable pour construire un projet r\u00e9silient\" src=\"\/wp-content\/uploads\/2020\/05\/d2afe9c74b33765e55641b34def3145e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nL'image montre le centre du processus. Qu'est-ce qui a \u00e9t\u00e9 fait jusqu'\u00e0 pr\u00e9sent ? Nous avons dit que nous voulions faire d'un certain esclave un nouveau ma\u00eetre, l'Orchestrateur a commenc\u00e9 \u00e0 reconnecter tous les autres esclaves \u00e0 celui-ci, tandis que le nouveau ma\u00eetre joue le r\u00f4le de machine de transit. Avec ce sch\u00e9ma, il n'y a pas d'erreurs, tous les esclaves fonctionnent, l'Orchestrateur retire le VIP de l'ancien ma\u00eetre, le transf\u00e8re au nouveau, met read_only=0 et oublie l'ancien ma\u00eetre. Voil\u00e0 ! Le temps d'arr\u00eat de notre service est le temps de transfert du VIP, soit 2 \u00e0 3 secondes.<\/p>\n<p>C'est tout pour aujourd'hui, merci \u00e0 tous. Bient\u00f4t, il y aura un deuxi\u00e8me article sur l'Orchestrateur. Dans le c\u00e9l\u00e8bre film sovi\u00e9tique \u00ab Garage \u00bb, un personnage a dit : \u00ab Je ne partirais pas en mission avec lui ! \u00bb Eh bien, Orchestrateur, je partirais en mission avec toi !<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/501994\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f! \u041c\u0430\u0441\u0442\u0435\u0440 \u043e\u0434\u0438\u043d, \u0430 \u0441\u043b\u0435\u0439\u0432\u043e\u0432 \u043c\u043d\u043e\u0433\u043e; \u0435\u0441\u043b\u0438 \u0443\u0439\u0434\u0435\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u043b\u0435\u0439\u0432\u043e\u0432, \u0442\u043e \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e, \u0430 \u0435\u0441\u043b\u0438 \u0443\u0439\u0434\u0435\u0442 \u043c\u0430\u0441\u0442\u0435\u0440 \u2014 \u0431\u0443\u0434\u0435\u0442 \u043f\u043b\u043e\u0445\u043e: \u0434\u0430\u0443\u043d\u0442\u0430\u0439\u043c, \u0430\u0434\u043c\u0438\u043d\u044b \u0432 \u043c\u044b\u043b\u0435 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u0420\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0442\u0435\u0440. \u041c\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82117,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Orchestrator \u0434\u043b\u044f MySQL: \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-19T11:42:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-19T11:42:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Orchestrateur pour MySQL : pourquoi il est indispensable pour construire un projet tol\u00e9rant aux pannes | ProHoster","description":"Tout grand projet a commenc\u00e9 avec quelques serveurs. Au d\u00e9but, il y avait un serveur de base de donn\u00e9es, puis des esclaves ont \u00e9t\u00e9 ajout\u00e9s pour \u00e9voluer la lecture. Et l\u00e0 \u2014 Stop !","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Orchestrator \u0434\u043b\u044f MySQL: \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 | ProHoster","og:description":"\u041b\u044e\u0431\u043e\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u0441 \u043f\u0430\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. C\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u043b \u043e\u0434\u0438\u043d DB-\u0441\u0435\u0440\u0432\u0435\u0440, \u043f\u043e\u0442\u043e\u043c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043b\u0435\u0439\u0432\u044b, \u0447\u0442\u043e\u0431\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u0435\u043d\u0438\u0435. \u0418 \u0442\u0443\u0442 \u2014 \u0441\u0442\u043e\u043f!","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/orchestrator-dlya-mysql-pochemu-bez-nego-nelzya-stroit-otkazoustojchivyj-proekt","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-19T11:42:54+00:00","article:modified_time":"2020-05-19T11:42:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82116","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:44:22","updated":"2022-10-07 20:28:08","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/82116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=82116"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/82116\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/82117"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=82116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=82116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=82116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}