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.
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
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. 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. 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. 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. Redondance de bases de données
Comment y parvient-on ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
12 / 118
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
35. Automatisation
Et c'est là que c'est plus compliqué ;-)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
35 / 118
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. 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. 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. 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. 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. MySQL Group Replication
Mais qu'est-ce que c'est ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
41 / 118
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. 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. 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. 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. Et pour les utilisateurs ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
46 / 118
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. 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. 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. 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. Mais comment ça marche ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
51 / 118
52. Mais comment ça marche ?
par magie !
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
52 / 118
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. 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. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
55 / 118
56. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
56 / 118
57. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
57 / 118
58. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
58 / 118
59. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
59 / 118
60. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
60 / 118
61. MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
61 / 118
62. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
62 / 118
63. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
63 / 118
64. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
64 / 118
65. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
65 / 118
66. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
66 / 118
67. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
67 / 118
68. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
68 / 118
69. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
69 / 118
70. MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
70 / 118
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
logbin doit être activé et seul le format ROWest supporté
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
107 / 118
108. Exigences (2)
les GTIDs doivent être activés
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
108 / 118
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. 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. 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
logslaveupdates doit aussi être présent
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
111 / 118
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. 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. 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. 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