
{"id":1800,"date":"2017-03-03T11:26:42","date_gmt":"2017-03-03T10:26:42","guid":{"rendered":"http:\/\/dasini.net\/blog\/?p=1800"},"modified":"2017-04-10T09:48:49","modified_gmt":"2017-04-10T08:48:49","slug":"faq-webinar-mysql-group-replication","status":"publish","type":"post","link":"https:\/\/dasini.net\/blog\/2017\/03\/03\/faq-webinar-mysql-group-replication\/","title":{"rendered":"FAQ Webinar MySQL Group Replication"},"content":{"rendered":"<p><em>Mise-\u00e0-jour: 7 Mars 2017<\/em><\/p>\n<p>Le 1er mars dernier, j&rsquo;ai pr\u00e9sent\u00e9 lors d&rsquo;un webinar, la technologie de<strong> haute disponibilit\u00e9 <a href=\"https:\/\/www.mysql.fr\/products\/enterprise\/high_availability.html\" target=\"_blank\">MySQL Group Replication<\/a><\/strong>. On a explos\u00e9 notre record d&rsquo;affluence et j&rsquo;ai \u00e9t\u00e9 inond\u00e9 de questions, preuve s&rsquo;il en faut de votre int\u00e9r\u00eat, toujours plus important, pour la base de donn\u00e9es Open Source la plus populaire au monde.<\/p>\n<p>Je n&rsquo;ai malheureusement pas \u00e9t\u00e9 en mesure de r\u00e9pondre \u00e0 toutes les questions, ce qui me permet aujourd&rsquo;hui de les centraliser dans cette FAQ. Cette derni\u00e8re pourra \u00eatre\u00a0mise \u00e0 jour de temps \u00e0 autres, en fonctions des questions que je r\u00e9cup\u00e9rerai du terrain.<\/p>\n<p>En compl\u00e9ment de cette FAQ<\/p>\n<ul>\n<li><a href=\"http:\/\/dasini.net\/blog\/2016\/11\/08\/deployer-un-cluster-mysql-group-replication\/\" target=\"_blank\">D\u00e9ployer un cluster MySQL Group Replication<\/a><\/li>\n<li><a href=\"http:\/\/dasini.net\/blog\/2017\/01\/11\/configurer-proxysql-pour-mysql-group-replication\/\" target=\"_blank\">Configurer ProxySQL pour MySQL Group Replication<\/a><\/li>\n<li><a href=\"http:\/\/dasini.net\/blog\/2017\/03\/13\/tester-mysql-innodb-cluster\/\" target=\"_blank\">Tester MySQL InnoDB Cluster<\/a><\/li>\n<li><a href=\"http:\/\/dasini.net\/blog\/2017\/04\/10\/adopte-un-cluster-mysql-group-replication\/\" target=\"_blank\">Adopte un\u2026 cluster MySQL Group Replication<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<ul>\n<li><span style=\"color: #000080;\">Sur quels OS peut on utiliser MySQL Group Replication ?<\/span><\/li>\n<\/ul>\n<p>MySQL Group Replication est un plugin du serveur MySQL. Il est donc pr\u00e9sent\u00a0sur toutes les plateformes o\u00f9 <a href=\"https:\/\/www.mysql.fr\/downloads\/\" target=\"_blank\">MySQL 5.7<\/a> est disponible :<\/p>\n<ul>\n<li>Linux<\/li>\n<li>Windows<\/li>\n<li>Solaris<\/li>\n<li>OSX<\/li>\n<li>FreeBSD<\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.mysql.fr\/support\/supportedplatforms\/database.html\" target=\"_blank\">Liste complete<\/a><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Est ce que la feature de multi-master n\u00e9cessitera un update du driver MySQL ou cela sera vu comme un master \u00ab\u00a0standard\u00a0\u00bb d&rsquo;un point de vu client ?\u00a0<\/span><\/li>\n<\/ul>\n<p>L&rsquo;architecture classique MySQL Group Replication est la suivante :<\/p>\n<p style=\"padding-left: 30px;\"><em>Client <strong>+<\/strong> <a href=\"https:\/\/www.mysql.com\/products\/enterprise\/router.html\" target=\"_blank\">MySQL Router<\/a>\u00a0 \u00a0 \u00a0 | \u00a0 \u00a0 \u00a0MySQL Group Replication<\/em><\/p>\n<p style=\"padding-left: 30px;\"><em>Client \u00a0 \u00a0 \u00a0| \u00a0 \u00a0 \u00a0<a href=\"http:\/\/www.proxysql.com\/\" target=\"_blank\">ProxySQL<\/a>\u00a0 \u00a0 \u00a0 | \u00a0 \u00a0 \u00a0MySQL Group Replication<\/em><\/p>\n<p>C&rsquo;est du moins le cas en <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-single-primary-mode.html\" target=\"_blank\">mode Single Primary<\/a> car il faut pouvoir identifier le n\u0153ud primaire.<\/p>\n<p>Cette architecture est valable \u00e9galement en mode <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-multi-primary-mode.html\" target=\"_blank\">multi-master (ou multi-Primaire)<\/a>, cependant dans ce cas, vu que tout les membres sont master, il suffit simplement\u00a0que le driver contiennent la liste des membres.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Est-ce que l&rsquo;on a une contrainte sur le nombre de n\u0153uds minimum ?<\/span><\/li>\n<\/ul>\n<p>Pas de contraintes par \u00ab\u00a0design\u00a0\u00bb. \u00a0Cependant, pour qu&rsquo;un system distribu\u00e9 puisse fournir du failover automatique, il faut minimum 3 n\u0153uds. Cela permet d&rsquo;\u00e9viter le <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Split-brain\" target=\"_blank\">split brain.<\/a><\/p>\n<p>A noter qu&rsquo;il est possible de mettre en place un cluster MySQL Group Replication avec seulement 2 n\u0153uds. Mais en cas d&rsquo;arr\u00eat non pr\u00e9vu (crash) d&rsquo;un des membres, l&rsquo;autre membre n&rsquo;acceptera pas de nouvelles requ\u00eates. On se trouve alors dans un cas de <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-network-partitioning.html\" target=\"_blank\">Network Partitioning<\/a>, \u00a0et la partition doit \u00eatre d\u00e9bloqu\u00e9e selon la procedure inscrite dans la doc.<\/p>\n<p>Par contre si l&rsquo;un des 2 membres est arr\u00eat\u00e9 \u00ab\u00a0gracieusement\u00a0\u00bb (STOP GROUP_REPLICATION;), l&rsquo;autre continue de fonctionner normalement.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Dans le cas d&rsquo;une utilisation multi-master, est-ce que l&rsquo;on peut ajouter\/retirer des n\u0153uds dynamiquement ?<\/span><\/li>\n<\/ul>\n<p>Oui, dans les 2 modes (<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-single-primary-mode.html\" target=\"_blank\">Single Primary<\/a> ou <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-multi-primary-mode.html\" target=\"_blank\">multi-master<\/a>) il est possible\u00a0d&rsquo;ajouter et\/ou de retirer des n\u0153uds dynamiquement.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Au sein d&rsquo;un cluster MySQL Group Replication, l&rsquo;\u00e9lection d&rsquo;un n\u0153ud master R\/W est-il automatique ou manuel ?<\/span><\/li>\n<li><span style=\"color: #000080;\">Dans le mode Single Primary, lorsque le primaire tombe, comment est choisi le nouveau n\u0153ud primaire ?<\/span><\/li>\n<\/ul>\n<p>Le process d&rsquo;election\u00a0est automatique et transparent pour le client. Alors pas mal de process\u00a0se passent \u00ab\u00a0behind the scene\u00a0\u00bb !<\/p>\n<p>Il faut notamment que les autres membres identifient le fait que le n\u0153ud <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-failure-detection.html\" target=\"_blank\">ne fasse plus partie du cluster<\/a> et puis ensuite enclencher le process d&rsquo;<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-single-primary-mode.html\" target=\"_blank\">\u00e9lection du nouveau n\u0153ud primaire<\/a> (le prochain dans la liste ordonn\u00e9e en fonction de l&rsquo;UUID de instances du cluster) et aussi d\u00e9sactiver le mode read-only.<\/p>\n<p>Identifier le n\u0153ud primaire :\u00a0<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-find-primary.html\" target=\"_blank\">https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-find-primary.html<\/a><\/p>\n<p><span style=\"text-decoration: underline;\">Exemples<\/span>:<\/p>\n<p>L&rsquo;information qui permet de savoir quel n\u0153ud est primaire est disponible dans la table performance_schema.<strong>global_status<\/strong> :<\/p>\n<pre class=\"toolbar-overlay:false lang:mysql decode:true\">mysql&gt;\r\nSELECT * \r\nFROM performance_schema.global_status \r\nWHERE VARIABLE_NAME='group_replication_primary_member'\\G\r\n*************************** 1. row ***************************\r\nVARIABLE_NAME: group_replication_primary_member\r\nVARIABLE_VALUE: 00014115-1111-1111-1111-111111111111<\/pre>\n<p>En la joignant avec la table performance_schema.<strong>replication_group_members<\/strong> ont obtient un peu plus d&rsquo;infos:<\/p>\n<pre class=\"toolbar-overlay:false lang:mysql decode:true\">mysql&gt;\r\nSELECT MEMBER_ID, MEMBER_HOST, MEMBER_STATE\r\nFROM performance_schema.replication_group_members\r\nINNER JOIN performance_schema.global_status ON (MEMBER_ID = VARIABLE_VALUE)\r\nWHERE VARIABLE_NAME='group_replication_primary_member'\\G\r\n*************************** 1. row ***************************\r\nMEMBER_ID: 00014115-1111-1111-1111-111111111111\r\nMEMBER_HOST: 192.168.1.11\r\nMEMBER_STATE: ONLINE<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Est-ce que l&rsquo;on a des limites en terme de taille de base de donn\u00e9es pour MySQL Group Replication ?<\/span><\/li>\n<\/ul>\n<p>Le moteur de stockage utilis\u00e9 avec MySQL Group Replication est InnoDB. Les limites sont donc celles impos\u00e9es par <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/innodb-storage-engine.html\" target=\"_blank\">InnoDB<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Est-ce que l&rsquo;on peut utiliser MySQL Router avec une replication asynchrone classique ?<\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.mysql.com\/products\/enterprise\/router.html\" target=\"_blank\">MySQL Router<\/a>\u00a02.0, peut \u00eatre utilis\u00e9 avec MySQL Replication :\u00a0<a href=\"https:\/\/dev.mysql.com\/doc\/mysql-router\/2.0\/en\/\" target=\"_blank\">https:\/\/dev.mysql.com\/doc\/mysql-router\/2.0\/en\/<\/a><\/p>\n<p>Le plugin <a href=\"https:\/\/dev.mysql.com\/doc\/mysql-router\/2.0\/en\/mysql-router-plugins-connection-routing.html\" target=\"_blank\">Connection Routing<\/a> fournit 2\u00a0<a href=\"https:\/\/dev.mysql.com\/doc\/mysql-router\/2.0\/en\/mysql-router-configuration-setup-connection-routing.html\" target=\"_blank\">modes de \u00ab\u00a0routage\u00a0\u00bb<\/a>:<\/p>\n<ul>\n<li>Le mode <em>Read-Only<\/em> : route les requ\u00eates en mode <a href=\"https:\/\/en.wikipedia.org\/wiki\/Round-robin_scheduling\" target=\"_blank\">round-robin<\/a> sur une liste d&rsquo;instances MySQL.<br \/>\n=&gt; Cela a du sens pour router les requ\u00eates de lectures sur les slaves.<\/li>\n<\/ul>\n<ul>\n<li>Le mode <em>Read-Write<\/em> : route les requ\u00eates sur le premier serveur de la liste, si celui si n&rsquo;est plus accessible, les requ\u00eates sont alors rout\u00e9es sur le suivant de la liste et ainsi de suite jusqu&rsquo;au dernier.<br \/>\n=&gt; Perso, je ne suis pas trop fan de ce mode pour MySQL Replication.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Sur une configuration multi-master, est il toujours conseill\u00e9 de mettre en place un offset sur les ID pour chaque node pour \u00e9viter les conflits ?<\/span><\/li>\n<\/ul>\n<p>Avec la r\u00e9plication classique (asynchrone) de MySQL, \u00a0pour une architecture multi-master en actif\/actif (que je ne conseille toujours pas), il est n\u00e9cessaire de mettre en place diff\u00e9rents offsets pour pr\u00e9venir les conflits li\u00e9s aux cl\u00e9s primaire\u00a0en auto increment (<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/replication-options-master.html#sysvar_auto_increment_increment\" target=\"_blank\">details<\/a>).<\/p>\n<p>Dans le cas de MySQL Group\u00a0Replication, ce probl\u00e8me se pose\u00a0\u00e9galement en mode multi-master. C&rsquo;est pour cela qu&rsquo;il est g\u00e9r\u00e9 automatiquement par le cluster. Il est cependant possible de modifier les param\u00e8tres manuellement (<a href=\"http:\/\/mysqlhighavailability.com\/mysql-group-replication-auto-increment-configuration-handling\/\" target=\"_blank\">details<\/a>).<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">La modification d&rsquo;une table est-elle automatiquement r\u00e9pliqu\u00e9e ?<\/span><\/li>\n<\/ul>\n<p>Toutes les modifications certifi\u00e9es d&rsquo;un n\u0153ud vont \u00eatre r\u00e9pliqu\u00e9es sur les autres. Cela concerne \u00e9videmment les DDL.<\/p>\n<p>A noter que certaines pr\u00e9cautions doivent \u00eatre prisent lorsque vous ex\u00e9cutez des\u00a0DDL en mode multi-master (<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-data-definition-statements.html\" target=\"_blank\">details<\/a>).<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Avec 3 n\u0153uds, si on perd 1 n\u0153ud et que les 2 autres ne se voient plus, pas de quorum donc plus d&rsquo;\u00e9criture ?<\/span><\/li>\n<\/ul>\n<p>Avec une architecture MySQL Group Replication de 3 n\u0153uds, l\u2019arr\u00eat\u00a0non pr\u00e9vu (crash) d&rsquo;1 membre g\u00e9n\u00e8re la recomposition automatique du cluster avec 2 n\u0153uds ie aucune intervention n&rsquo;est n\u00e9cessaire.<\/p>\n<p>Par contre vous vous trouvez dans une situation \u00ab\u00a0inconfortable\u00a0\u00bb et il faut donc re-provisionner un 3\u00e8me n\u0153uds ASAP. Parce qu&rsquo;avec ce cluster de 2 membres, en cas de crash d&rsquo;un des 2 ou en cas de split-brain, la recomposition automatique du cluster ne peut plus se faire.<\/p>\n<p>On se trouve alors dans le cas du\u00a0<a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-network-partitioning.html\" target=\"_blank\">Network Partitioning<\/a>\u00a0(les membres n&rsquo;acceptent plus d&rsquo;\u00e9criture), et la partition doit \u00eatre d\u00e9bloqu\u00e9e \u00ab\u00a0manuellement\u00a0\u00bb.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">A quel format le log binaire doit \u00eatre positionn\u00e9\u00a0?<\/span><\/li>\n<\/ul>\n<p>Seul le format <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/replication-options-binary-log.html#sysvar_binlog_format\" target=\"_blank\">ROW<\/a> est valide (binlog-format=ROW)<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Peut on contr\u00f4ler\u00a0les d\u00e9lais de r\u00e9plication ?<\/span><\/li>\n<\/ul>\n<p>Le <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication-flow-control.html\" target=\"_blank\">Flow-control<\/a> permet de maintenir les membres du groupe raisonnablement proches les uns des autres.<\/p>\n<p>A noter que d&rsquo;autres approches pour contr\u00f4ler les d\u00e9lais de r\u00e9plication seront disponibles dans le futur.<\/p>\n<p>Je vous conseille la lecture de cet <a href=\"http:\/\/mysqlhighavailability.com\/zooming-in-on-group-replication-performance\/\" target=\"_blank\">article<\/a>\u00a0qui traite du sujet\u00a0des performances de MySQL group Replication.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Pourquoi 9 n\u0153uds maximum ?<\/span><\/li>\n<\/ul>\n<p>Selon les r\u00e9sultats de nos tests, jusqu&rsquo;\u00e0 9 membres les performances restent tr\u00e8s satisfaisantes. De plus ce nombre assure une tr\u00e8s bonne disponibilit\u00e9 car le cluster peut alors g\u00e9rer automatiquement jusqu&rsquo;\u00e0 4 pertes de n\u0153uds simultan\u00e9ment\u00a0!<\/p>\n<p>A noter qu&rsquo;il est toujours possible de rajouter des slaves au cluster MySQL Group Replication.<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><span style=\"color: #000080;\">Est-il possible d&rsquo;avoir une configuration multi OS par exemple un membre sur Linux et un autre membre sur du Windows ?<\/span><\/li>\n<\/ul>\n<p>Tout \u00e0 fait !<\/p>\n<p>Je peux par exemple avoir l&rsquo;architecture MySQL Group Replication suivante :<\/p>\n<p style=\"padding-left: 30px;\"><em>N\u0153ud A sur\u00a0Linux<\/em><br \/>\n<em>N\u0153ud B sur Windows<\/em><br \/>\n<em>N\u0153ud\u00a0C sur OSX<\/em><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2>Quelques liens utiles<\/h2>\n<ul>\n<li>Documentation MySQL Group Replication\n<ul>\n<li><a href=\"https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication.html\" target=\"_blank\">https:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/group-replication.html<\/a><\/li>\n<\/ul>\n<\/li>\n<li>MySQL Group Replication: Distributed Recovery behind the scenes\n<ul>\n<li><a href=\"http:\/\/mysqlhighavailability.com\/distributed-recovery-behind-the-scenes\/\" target=\"_blank\">http:\/\/mysqlhighavailability.com\/distributed-recovery-behind-the-scenes\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Transaction life cycle explained\n<ul>\n<li><a href=\"http:\/\/mysqlhighavailability.com\/mysql-group-replication-transaction-life-cycle-explained\/\" target=\"_blank\">http:\/\/mysqlhighavailability.com\/mysql-group-replication-transaction-life-cycle-explained\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Group communication behind the scenes\n<ul>\n<li><a href=\"http:\/\/mysqlhighavailability.com\/group-communication-behind-the-scenes\/\" target=\"_blank\">http:\/\/mysqlhighavailability.com\/group-communication-behind-the-scenes\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Tous les articles de l&rsquo;\u00e9quipe MySQL Group Replication\n<ul>\n<li><a href=\"http:\/\/mysqlhighavailability.com\/tag\/mysql-group-replication\/\" target=\"_blank\">http:\/\/mysqlhighavailability.com\/tag\/mysql-group-replication\/<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>Webinar \u00e0 venir\n<ul>\n<li><a href=\"https:\/\/www.mysql.fr\/news-and-events\/web-seminars\/\" target=\"_blank\">https:\/\/www.mysql.fr\/news-and-events\/web-seminars\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Webinars sur demande\n<ul>\n<li><a href=\"https:\/\/www.mysql.fr\/news-and-events\/on-demand-webinars\/\" target=\"_blank\">https:\/\/www.mysql.fr\/news-and-events\/on-demand-webinars\/<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Thanks for using MySQL!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le 1er mars dernier, j&rsquo;ai pr\u00e9sent\u00e9 lors d&rsquo;un webinar, la technologie de haute disponibilit\u00e9 MySQL Group Replication. On a explos\u00e9 notre record d&rsquo;affluence et j&rsquo;ai \u00e9t\u00e9 inond\u00e9 de questions, preuve s&rsquo;il en faut de votre int\u00e9r\u00eat, toujours plus important, pour la base de donn\u00e9es Open Source la plus populaire au monde.<\/p>\n<p>Je n&rsquo;ai malheureusement pas \u00e9t\u00e9 en mesure de r\u00e9pondre \u00e0 toutes les questions, ce qui me permet aujourd&rsquo;hui de les centraliser dans cette FAQ. Cette derni\u00e8re pourra \u00eatre mise \u00e0 jour de temps \u00e0 autres, en fonctions des questions que je r\u00e9cup\u00e9rerai du terrain.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"categories":[282,8,294],"tags":[286,79,298,300,302],"class_list":["post-1800","post","type-post","status-publish","format-standard","hentry","category-group-replication","category-mysql","category-proxysql","tag-group-replication","tag-haute-disponibilite","tag-innodb-cluster","tag-proxysql","tag-router"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9LfWW-t2","jetpack-related-posts":[{"id":2035,"url":"https:\/\/dasini.net\/blog\/2018\/01\/09\/configurer-proxysql-1-4-pour-mysql-5-7-group-replication\/","url_meta":{"origin":1800,"position":0},"title":"Configurer ProxySQL 1.4 pour MySQL 5.7 Group Replication","author":"Olivier DASINI","date":"9 janvier 2018","format":false,"excerpt":"Toute architecture de base de donn\u00e9es se doit de se reposer sur 3 piliers, la supervision (monitoring) , la sauvegarde\/restauration et la haute disponibilit\u00e9. Mon premier article de l'ann\u00e9e 2018\u00a0 concerne l'un des meilleurs combos\u00a0du moment, en mati\u00e8re de haute disponibilit\u00e9 niveau base de donn\u00e9es : - MySQL 5.7 Group\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"MySQL","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/mysql_300x161.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4389,"url":"https:\/\/dasini.net\/blog\/2021\/03\/02\/slides-et-video-du-webinar-la-haute-disponibilite-avec-mysql\/","url_meta":{"origin":1800,"position":1},"title":"Slides et vid\u00e9o du webinar  La haute disponibilit\u00e9 avec MySQL","author":"Olivier DASINI","date":"2 mars 2021","format":false,"excerpt":"Le 25 f\u00e9vrier dernier, a eu lieu le webinar: La haute disponibilit\u00e9 avec MySQL. MERCI \u00e0 tous pour votre pr\u00e9sence ? La pr\u00e9sentation est disponible ici, sur mon compte slideshare:","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/img.youtube.com\/vi\/S41Z-QMupHE\/0.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4381,"url":"https:\/\/dasini.net\/blog\/2021\/02\/24\/webinar-la-haute-disponibilite-avec-mysql\/","url_meta":{"origin":1800,"position":2},"title":"Webinar \u2013  La haute disponibilit\u00e9 avec MySQL","author":"Olivier DASINI","date":"24 f\u00e9vrier 2021","format":false,"excerpt":"MySQL propose plusieurs solutions pour vous aider \u00e0 b\u00e2tir une architecture hautement disponible. On retrouve InnoDB Cluster avec Group Replication, la r\u00e9plication asynchrone en utilisant InnoDB ReplicaSet ou encore la r\u00e9plication semi-synchrone, et enfin NDB Cluster. Dans cette session, nous examinerons ces diff\u00e9rents sc\u00e9narios, les \u00e9cueils \u00e0 \u00e9viter et les\u2026","rel":"","context":"Dans &quot;MySQL&quot;","block_context":{"text":"MySQL","link":"https:\/\/dasini.net\/blog\/category\/mysql\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5532,"url":"https:\/\/dasini.net\/blog\/2022\/02\/28\/webinar-mysql-database-service-haute-disponibilite-et-plan-de-reprise-dactivite\/","url_meta":{"origin":1800,"position":3},"title":"Webinar &#8211; MySQL Database Service, haute disponibilit\u00e9 et plan de reprise d&rsquo;activit\u00e9","author":"Olivier DASINI","date":"28 f\u00e9vrier 2022","format":false,"excerpt":"Maintenir la disponibilit\u00e9 de son application en cas de sinistre est tr\u00e8s important pour les syst\u00e8mes critiques de l\u2019entreprise. Il est essentiel de mettre en place, dans le cadre d\u2019un plan de reprise d\u2019activit\u00e9, une architecture robuste, hautement disponible, qui puisse maintenir le service en cas de panne ou de\u2026","rel":"","context":"Dans &quot;Cloud&quot;","block_context":{"text":"Cloud","link":"https:\/\/dasini.net\/blog\/category\/cloud\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/02\/MySQL-Database-Service-haute-disponibilite-et-plan-de-reprise-dactivite.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/02\/MySQL-Database-Service-haute-disponibilite-et-plan-de-reprise-dactivite.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/02\/MySQL-Database-Service-haute-disponibilite-et-plan-de-reprise-dactivite.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/02\/MySQL-Database-Service-haute-disponibilite-et-plan-de-reprise-dactivite.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/2022\/02\/MySQL-Database-Service-haute-disponibilite-et-plan-de-reprise-dactivite.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":1746,"url":"https:\/\/dasini.net\/blog\/2017\/01\/11\/configurer-proxysql-pour-mysql-group-replication\/","url_meta":{"origin":1800,"position":4},"title":"Configurer ProxySQL pour MySQL Group Replication","author":"Olivier DASINI","date":"11 janvier 2017","format":false,"excerpt":"Dans un pr\u00e9c\u00e9dent article je vous ai pr\u00e9sent\u00e9 comment d\u00e9ployer un cluster MySQL Group Replication, la nouvelle solution de haute disponibilit\u00e9 de MySQL. Ce type d'architecture est souvent utilis\u00e9 avec un composant qui se place entre l'application et le cluster,composant g\u00e9n\u00e9ralement appel\u00e9 proxy (quelque chose) ou router quelque chose. Dans\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/MySQL_Group_Replication_and_ProxySQL.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1678,"url":"https:\/\/dasini.net\/blog\/2016\/11\/08\/deployer-un-cluster-mysql-group-replication\/","url_meta":{"origin":1800,"position":5},"title":"D\u00e9ployer un cluster MySQL Group Replication","author":"Olivier DASINI","date":"8 novembre 2016","format":false,"excerpt":"Historiquement, les solutions de haute disponibilit\u00e9 (HA) avec MySQL tournent autour de la fonctionnalit\u00e9 native\u00a0MySQL Replication: replication asynchrone ou semi-synchrone. Ces modes de \u00a0replication sont tr\u00e8s largement utilis\u00e9s pour le besoins critiques d'enterprises \"at scale\" comme Facebook, Twitter, Booking.com, Uber... Aujourd'hui MySQL propose une nouvelle fonctionnalit\u00e9 native de haute disponibilit\u00e9\u2026","rel":"","context":"Dans &quot;Group Replication&quot;","block_context":{"text":"Group Replication","link":"https:\/\/dasini.net\/blog\/category\/group-replication\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dasini.net\/blog\/wp-content\/uploads\/Group_Replication_3_nodes.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/1800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/comments?post=1800"}],"version-history":[{"count":12,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/1800\/revisions"}],"predecessor-version":[{"id":1886,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/posts\/1800\/revisions\/1886"}],"wp:attachment":[{"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/media?parent=1800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/categories?post=1800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dasini.net\/blog\/wp-json\/wp\/v2\/tags?post=1800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}