Successfully reported this slideshow.
Your SlideShare is downloading. ×

Haute disponibilité my sql avec group réplication

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 118 Ad
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to Haute disponibilité my sql avec group réplication (20)

More from Frederic Descamps (20)

Advertisement

Recently uploaded (20)

Haute disponibilité my sql avec group réplication

  1. 1. 1 / 118
  2. 2. 6 septembre 2016 MySQL Meetup, OpenTech - Paris Frédéric Descamps MySQL Community Manager MySQL Group Replication - Haute Disponibilité avec Multi-Masters MySQL High Availability made easy         Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 2 / 118
  3. 3.   Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purpose only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. The development, release and timing of any features or functionality described for Oracle's product remains at the sole discretion of Oracle. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 3 / 118
  4. 4. about.me/lefred Qui suis-je ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 4 / 118
  5. 5. Frédéric Descamps @lefred MySQL Evangelist Managing MySQL since 3.23 devops believer http://lefred.be Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 5 / 118
  6. 6. Qu'est-que la Haute Disponibilité Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 6 / 118
  7. 7. Haute Disponibilité Lahautedisponibilitéestuntermesouventutiliséeninformatique,àpropos d'architecturedesystèmeoud'unservicepourdésignerlefaitquecettearchitectureouce serviceauntauxdedisponibilitéconvenable. Deux moyens complémentaires sont utilisés pour améliorer la haute disponibilité : la mise en place d'une infrastructure matérielle spécialisée, généralement en se basant sur de la redondance matérielle. Est alors créé un cluster de haute- disponibilité (par opposition à un cluster de calcul) : une grappe d'ordinateurs dont le but est d'assurer un service en évitant au maximumles indisponibilités ; la mise en place de processus adaptés permettant de réduire les erreurs, et d'accélérer la reprise en cas d'erreur. ITIL contient de nombreux processus de ce type. Source: WikipédiaCopyright @ 2016 Oracle and/or its affiliates. All rights reserved. 7 / 118
  8. 8. Les principes de la Haute Disponibilité Redondance des services/des données Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 8 / 118
  9. 9. Les principes de la Haute Disponibilité Redondance des services/des données Réduire l'impact d'une panne Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 9 / 118
  10. 10. Les principes de la Haute Disponibilité Redondance des services/des données Réduire l'impact d'une panne Basculement lors d'un problème ou en cas de maintenance Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 10 / 118
  11. 11. Les principes de la Haute Disponibilité Redondance des services/des données Réduire l'impact d'une panne Basculement lors d'un problème ou en cas de maintenance Récupération de la perte de redoncance Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 11 / 118
  12. 12. Redondance de bases de données Comment y parvient-on ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 12 / 118
  13. 13. Redondance de bases de données Comment y parvient-on ? Il existe plusieurs solutions, certaines bien pires que d'autres ;-) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 13 / 118
  14. 14. Redondance de bases de données Comment y parvient-on ? Il existe plusieurs solutions, certaines bien pires que d'autres ;-) utilisation d'un disque partagé (SAN) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 14 / 118
  15. 15. Redondance de bases de données Comment y parvient-on ? Il existe plusieurs solutions, certaines bien pires que d'autres ;-) utilisation d'un disque partagé (SAN) utilisation de blocs partagés via le réseau (drbd) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 15 / 118
  16. 16. Redondance de bases de données Comment y parvient-on ? Il existe plusieurs solutions, certaines bien pires que d'autres ;-) utilisation d'un disque partagé (SAN) utilisation de blocs partagés via le réseau (drbd) utilisation de la réplication Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 16 / 118
  17. 17. Redondance de bases de données Comment y parvient-on ? Il existe plusieurs solutions, certaines bien pires que d'autres ;-) utilisation d'un disque partagé (SAN) utilisation de blocs partagés via le réseau (drbd) utilisation de la réplication C'est effectivement cette dernière technique qui est la plus fiable et la plus répendue. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 17 / 118
  18. 18. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 18 / 118
  19. 19. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: réplication asynchrone (async) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 19 / 118
  20. 20. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: réplication asynchrone (async) réplication semi-synchrone (semi-sync) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 20 / 118
  21. 21. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: réplication asynchrone (async) réplication semi-synchrone (semi-sync) réplication de groupe (group replication) - Nouveau!! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 21 / 118
  22. 22. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 22 / 118
  23. 23. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique les esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (sauf semi-sync) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 23 / 118
  24. 24. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique les esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (sauf semi-sync) l'initialisation (provisioning) des esclaves est manuelle Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 24 / 118
  25. 25. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique les esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (sauf semi-sync) l'initialisation (provisioning) des esclaves est manuelle la cohérense (consistency) des esclaves est assummée et nécessite une vérification manuelle Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 25 / 118
  26. 26. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique les esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (sauf semi-sync) l'initialisation (provisioning) des esclaves est manuelle la cohérense (consistency) des esclaves est assummée et nécessite une vérification manuelle des topologies très complexes peuvent être construites Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 26 / 118
  27. 27. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique les esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (sauf semi-sync) l'initialisation (provisioning) des esclaves est manuelle la cohérense (consistency) des esclaves est assummée et nécessite une vérification manuelle des topologies très complexes peuvent être construites il est possible (et fort déconseillé) de créer des replications circulaires Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 27 / 118
  28. 28. Réplication(s) Asynchrone(s) les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique les esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (sauf semi-sync) l'initialisation (provisioning) des esclaves est manuelle la cohérense (consistency) des esclaves est assummée et nécessite une vérification manuelle des topologies très complexes peuvent être construites il est possible (et fort déconseillé) de créer des replications circulaires les écritures ne sont sûr qu'à partir d'un unique maître global Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 28 / 118
  29. 29. Architectures de HA avec la réplication asynchrone Les architectures sont multiples et les outils pour les mettre en oeuvre également. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 29 / 118
  30. 30. Architectures de HA avec la réplication asynchrone Les architectures sont multiples et les outils pour les mettre en oeuvre également. Elles se basent toutes sur le même principe: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 30 / 118
  31. 31. Architectures de HA avec la réplication asynchrone Les architectures sont multiples et les outils pour les mettre en oeuvre également. Elles se basent toutes sur le même principe: 1 maître (master) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 31 / 118
  32. 32. Architectures de HA avec la réplication asynchrone Les architectures sont multiples et les outils pour les mettre en oeuvre également. Elles se basent toutes sur le même principe: 1 maître (master) 1 ou plusieurs esclaves (slaves) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 32 / 118
  33. 33. Architectures de HA avec la réplication asynchrone Les architectures sont multiples et les outils pour les mettre en oeuvre également. Elles se basent toutes sur le même principe: 1 maître (master) 1 ou plusieurs esclaves (slaves) Si le maître a un problème, le slave le plus à jours doit prendre le relais et être promu maître aux yeux des autres escalves encore en ligne. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 33 / 118
  34. 34. Automatisation Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 34 / 118
  35. 35. Automatisation Et c'est là que c'est plus compliqué ;-) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 35 / 118
  36. 36. Automatisation Et c'est là que c'est plus compliqué ;-) En fait il existe beaucoup d'outils externes qui peuvent être utilisés pour cette tâche. La majorité ne sont compatible qu'avec GNU/Linux. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 36 / 118
  37. 37. Automatisation Et c'est là que c'est plus compliqué ;-) En fait il existe beaucoup d'outils externes qui peuvent être utilisés pour cette tâche. La majorité ne sont compatible qu'avec GNU/Linux. Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pour pouvoir maintenir ces solutions: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 37 / 118
  38. 38. Automatisation Et c'est là que c'est plus compliqué ;-) En fait il existe beaucoup d'outils externes qui peuvent être utilisés pour cette tâche. La majorité ne sont compatible qu'avec GNU/Linux. Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pour pouvoir maintenir ces solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 38 / 118
  39. 39. Automatisation Et c'est là que c'est plus compliqué ;-) En fait il existe beaucoup d'outils externes qui peuvent être utilisés pour cette tâche. La majorité ne sont compatible qu'avec GNU/Linux. Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pour pouvoir maintenir ces solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Pacemaker avec un OCF dédié à MySQL Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 39 / 118
  40. 40. Automatisation Et c'est là que c'est plus compliqué ;-) En fait il existe beaucoup d'outils externes qui peuvent être utilisés pour cette tâche. La majorité ne sont compatible qu'avec GNU/Linux. Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pour pouvoir maintenir ces solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Pacemaker avec un OCF dédié à MySQL MHA Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 40 / 118
  41. 41. MySQL Group Replication Mais qu'est-ce que c'est ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 41 / 118
  42. 42. MySQL Group Replication Mais qu'est-ce que c'est ? C'est un plugin pour MySQL fourni avec MySQL par MySQL ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 42 / 118
  43. 43. MySQL Group Replication Mais qu'est-ce que c'est ? C'est un plugin pour MySQL fourni avec MySQL par MySQL ! Il permet d'écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 43 / 118
  44. 44. MySQL Group Replication Mais qu'est-ce que c'est ? C'est un plugin pour MySQL fourni avec MySQL par MySQL ! Il permet d'écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire Il détecte les conflits Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 44 / 118
  45. 45. MySQL Group Replication Mais qu'est-ce que c'est ? C'est un plugin pour MySQL fourni avec MySQL par MySQL ! Il permet d'écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire Il détecte les conflits Et permet la récupération distribuée automatique Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 45 / 118
  46. 46. Et pour les utilisateurs ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 46 / 118
  47. 47. Et pour les utilisateurs ? Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellement ou avec un script compliqué Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 47 / 118
  48. 48. Et pour les utilisateurs ? Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellement ou avec un script compliqué Mise à jours des données sur des serveurs Actifs/Actifs Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 48 / 118
  49. 49. Et pour les utilisateurs ? Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellement ou avec un script compliqué Mise à jours des données sur des serveurs Actifs/Actifs Gère les pannes distribuées (quorum) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 49 / 118
  50. 50. Et pour les utilisateurs ? Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellement ou avec un script compliqué Mise à jours des données sur des serveurs Actifs/Actifs Gère les pannes distribuées (quorum) Facilite grandement la mise en place d'un service MySQL hautement disponible ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 50 / 118
  51. 51. Mais comment ça marche ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 51 / 118
  52. 52. Mais comment ça marche ? par magie ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 52 / 118
  53. 53. Mais comment ça marche ? par magie ! Non, au fait, la réplication des "writesets" se fait de manière synchrone, ensuite la certification et l'application des changements se font de manière asynchrone... Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 53 / 118
  54. 54. Mais comment ça marche ? par magie ! Non, au fait, la réplication des "writesets" se fait de manière synchrone, ensuite la certification et l'application des changements se font de manière asynchrone... C'est peut-être un peu compliqué comme ça... voyons voir avec un dessin.. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 54 / 118
  55. 55. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 55 / 118
  56. 56. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 56 / 118
  57. 57. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 57 / 118
  58. 58. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 58 / 118
  59. 59. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 59 / 118
  60. 60. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 60 / 118
  61. 61. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 61 / 118
  62. 62. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 62 / 118
  63. 63. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 63 / 118
  64. 64. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 64 / 118
  65. 65. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 65 / 118
  66. 66. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 66 / 118
  67. 67. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 67 / 118
  68. 68. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 68 / 118
  69. 69. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 69 / 118
  70. 70. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 70 / 118
  71. 71. Optimistic Locking Traditional locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 71 / 118
  72. 72. Optimistic Locking Traditional locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 72 / 118
  73. 73. Optimistic Locking Traditional locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 73 / 118
  74. 74. Optimistic Locking Traditional locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 74 / 118
  75. 75. Optimistic Locking Traditional locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 75 / 118
  76. 76. Optimistic Locking Traditional locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 76 / 118
  77. 77. Optimistic Locking Optimistic Locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 77 / 118
  78. 78. Optimistic Locking Optimistic Locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 78 / 118
  79. 79. Optimistic Locking Optimistic Locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 79 / 118
  80. 80. Optimistic Locking Optimistic Locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 80 / 118
  81. 81. Optimistic Locking Optimistic Locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 81 / 118
  82. 82. Optimistic Locking Optimistic Locking Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 82 / 118
  83. 83. Optimistic Locking on renvoie l'erreur 149 -> ERROR 1180 (HY000): Got error 149 during COMMIT Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 83 / 118
  84. 84. Réplication et Communication Comme on a vu, la réplication des données comme on la perçoit en asynchrone est ici divisée en 4 parties: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 84 / 118
  85. 85. Réplication et Communication Comme on a vu, la réplication des données comme on la perçoit en asynchrone est ici divisée en 4 parties: la réplication des writesets (transactions) via GCS/XCOM(Group Communication System&une solution interne dérivée de Paxos) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 85 / 118
  86. 86. Réplication et Communication Comme on a vu, la réplication des données comme on la perçoit en asynchrone est ici divisée en 4 parties: la réplication des writesets (transactions) via GCS/XCOM(Group Communication System&une solution interne dérivée de Paxos) la certification Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 86 / 118
  87. 87. Réplication et Communication Comme on a vu, la réplication des données comme on la perçoit en asynchrone est ici divisée en 4 parties: la réplication des writesets (transactions) via GCS/XCOM(Group Communication System&une solution interne dérivée de Paxos) la certification l'application (apply) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 87 / 118
  88. 88. Réplication et Communication Comme on a vu, la réplication des données comme on la perçoit en asynchrone est ici divisée en 4 parties: la réplication des writesets (transactions) via GCS/XCOM(Group Communication System&une solution interne dérivée de Paxos) la certification l'application (apply) le commit Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 88 / 118
  89. 89. Certification La certification est le processus qui a pour but de répondre à cette unique question: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 89 / 118
  90. 90. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 90 / 118
  91. 91. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 91 / 118
  92. 92. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 92 / 118
  93. 93. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 93 / 118
  94. 94. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 94 / 118
  95. 95. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n'est pas communiqué au cluster en retour Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 95 / 118
  96. 96. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n'est pas communiqué au cluster en retour Réussite: entre dans la queue pour être appliqué Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 96 / 118
  97. 97. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n'est pas communiqué au cluster en retour Réussite: entre dans la queue pour être appliqué Échec: la transaction est rejetée Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 97 / 118
  98. 98. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n'est pas communiqué au cluster en retour Réussite: entre dans la queue pour être appliqué Échec: la transaction est rejetée Sérialisé par l'ordre établi dans GCS/XCOM+ GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 98 / 118
  99. 99. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-quecetteécriture(writeset)peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées ce type de conflit provient toujours des autres membres La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n'est pas communiqué au cluster en retour Réussite: entre dans la queue pour être appliqué Échec: la transaction est rejetée Sérialisé par l'ordre établi dans GCS/XCOM+ GTID Le coût varie en fonction du nombres d'index et d'enregistrements Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 99 / 118
  100. 100. GTID Les GTIDs utilisés sont identiques aux GTID utilisés en réplication asynchrone. mysql> SELECT * FROM performance_schema.replication_connection_statusG ************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57, f037578b-46b1-11e6-8005-08002774c31b:1-48937 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 100 / 118
  101. 101. Mais c'est le GTID du cluster qui est mélangé aux autres mysql> show master statusG ************************** 1. row *************************** File: mysql4-bin.000001 Position: 1501 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57, f037578b-46b1-11e6-8005-08002774c31b:1-48937 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 101 / 118
  102. 102. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 102 / 118
  103. 103. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques tables doivent avoir une clé primaire Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 103 / 118
  104. 104. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques tables doivent avoir une clé primaire Ne fonctionne qu'en IPV4 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 104 / 118
  105. 105. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques tables doivent avoir une clé primaire Ne fonctionne qu'en IPV4 Un bon réseau avec peu de latence est important Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 105 / 118
  106. 106. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques tables doivent avoir une clé primaire Ne fonctionne qu'en IPV4 Un bon réseau avec peu de latence est important Un maximumde 9 membres par groupe Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 106 / 118
  107. 107. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques tables doivent avoir une clé primaire Ne fonctionne qu'en IPV4 Un bon réseau avec peu de latence est important Un maximumde 9 membres par groupe log­bin doit être activé et seul le format ROWest supporté Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 107 / 118
  108. 108. Exigences (2) les GTIDs doivent être activés Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 108 / 118
  109. 109. Exigences (2) les GTIDs doivent être activés Les meta données de réplication doivent être sauvergardées dans des tables systèmes --master-info-repository=TABLE --relay-log-info-repository=TABLE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 109 / 118
  110. 110. Exigences (2) les GTIDs doivent être activés Les meta données de réplication doivent être sauvergardées dans des tables systèmes --master-info-repository=TABLE --relay-log-info-repository=TABLE L'extraction des "writesets" de réplication doit être activée --transaction-write-set-extraction=XXHASH64 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 110 / 118
  111. 111. Exigences (2) les GTIDs doivent être activés Les meta données de réplication doivent être sauvergardées dans des tables systèmes --master-info-repository=TABLE --relay-log-info-repository=TABLE L'extraction des "writesets" de réplication doit être activée --transaction-write-set-extraction=XXHASH64 log­slave­updates doit aussi être présent Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 111 / 118
  112. 112. Limites Le checksumdes évenements répliqués n'est pas supporté --binlog-checksum=NONE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 112 / 118
  113. 113. Limites Le checksumdes évenements répliqués n'est pas supporté --binlog-checksum=NONE Les "Savepoints" ne sont pas supportés Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 113 / 118
  114. 114. Limites Le checksumdes évenements répliqués n'est pas supporté --binlog-checksum=NONE Les "Savepoints" ne sont pas supportés On ne peut utiliser SERIALIZABLEcomme niveau d'isolation des transactions Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 114 / 118
  115. 115. Exemple d'architecures MySQL Group Replication est la fondation d'une future solution complète de Haute Disponibilité pour MySQL. En attendant l'avancement des autres composants de cette solution (comme mysql- router), il est déjà possible d'utiliser Group Replication avec d'autres logiciels. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 115 / 118
  116. 116. HAProxy Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 116 / 118
  117. 117. ProxySQL Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 117 / 118
  118. 118. Des Questions ? Merci !       Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 118 / 118

×