SlideShare une entreprise Scribd logo
1  sur  124
Télécharger pour lire hors ligne
1 / 124
2 / 124
MySQL InnoDB Cluster
Quand Haute Disponibilité et facilité de déploiement font bon ménage
 
Jeudis du Libre - Mars 2017
3 / 124
 
Safe Harbor Statement
The following is intended to outline our generalproduct direction. It isintended for
information purpose only, and may not be incorporated into any contract. It isnot a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. Thedevelopment, release and timing of any features or
functionality described for Oracle's product remains at thesole discretion of Oracle.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
4 / 124
about.me/lefred
Qui suis-je ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
5 / 124
Frédéric Descamps
@lefred
Évangéliste MySQL
BidouilleMySQLdepuis la version 3.23
devops croyant et praticant
MySQLCommunity Manager depuis mai
2016
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
6 / 124
MySQL InnoDB Cluster
Haute Dispo facile pour MySQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
7 / 124
InnoDB
cluster
Facilitéd'utilisation
Extrêmementév olutif
Solutionprêteàl'emploi
HauteDispoIntégrée
HauteP erformance
Intégrationdetouslescompos ants
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
8 / 124
Notre vision on 4 étapes
MySQLDocumentStore
ModèleRelationnel&Document
HauteDispoMySQL
HauteDispoprêteàl'emploi
"Sclale-Up"V ertical
Basculementautomatique
"Sclale-Up"Horizontal
Sharding
E1 E3
E2 E4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
9 / 124
Architecture de l´étape 2
Application
MySQLConnector
MySQLRouter
MySQLShell
InnoDB
cluster
Application
MySQLConnector
MySQLRouter
Mp
M
M
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
10 / 124
Architecture de l´étape 3
Application
MySQLConnector
MySQLRouter
MySQLShell
InnoDB
cluster
Application
MySQLConnector
MySQLRouter
Mp
M
M
S1 S2 S3 S4 S...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
11 / 124
Architecture de l´étape 4
Application
MySQLConnector
MySQLRouter
MySQLShell
Application
MySQLConnector
MySQLRouter
InnoDB
cluster
Mp
M
M
S2 S3 S4 S...S1
InnoDB
cluster
Mp
M
M
S1 S2 S3 S4 S...
InnoDB
cluster
Mp
M
M
S1 S2 S3 S4 S...
Application
MySQLConnector
MySQLRouter
Application
MySQLConnector
MySQLRouter
Application
MySQLConnector
MySQLRouter
replicaset1
replicaset2
replicaset3
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
12 / 124
Group Replication: le coeur de MySQL InnoDB
Cluster
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
13 / 124
Group Replication: le coeur de MySQL InnoDB
Cluster
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
14 / 124
Mais avant d'aller plus loin...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
15 / 124
Qu´est-que la
Haute Disponibilité
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
16 / 124
Haute Disponibilité
La haute disponibilité est un termesouventutiliséeninformatique,àproposd
´architecture de système ou d´unservicepour désigner lefaitquecettearchitectureouce
service a un taux de disponibilitéconvenable.
Deux moyens complémentairessont 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
basantsur de la redondance matérielle. Est alors créé un cluster de haute-
disponibilité (par opposition àun cluster de calcul) : une grappe d´ordinateursdont le
but est d´assurer un service en évitant aumaximum les 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. ITILcontient de nombreux processus de ce type.
Source: WikipédiaCopyright @ 2017 Oracle and/or its affiliates. All rights reserved.
17 / 124
Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
18 / 124
Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Réduire l'impact d´une panne
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
19 / 124
Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Réduire l'impact d´une panne
Basculement lors d´un problèmeou en casde maintenance
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
20 / 124
Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Réduire l'impact d´une panne
Basculement lors d´un problèmeou en casde maintenance
Récupération de la perte de redoncance
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
21 / 124
Redondance de bases de données
Comment y parvient-on ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
22 / 124
Redondance de bases de données
Comment y parvient-on ?
Il existe plusieurs solutions, certaines bien pires que d´autres ;-)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
23 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
24 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
25 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
26 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
27 / 124
Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
28 / 124
Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
réplication asynchrone (async)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
29 / 124
Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
réplication asynchrone (async)
réplication semi-synchrone (semi-sync)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
30 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
31 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
32 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
33 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
34 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest assummée et nécessite une vérification
manuelle
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
35 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest assummée et nécessite une vérification
manuelle
des topologies très complexes peuvent être construites
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
36 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest 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 @ 2017 Oracle and/or its affiliates. All rights reserved.
37 / 124
Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest 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 @ 2017 Oracle and/or its affiliates. All rights reserved.
38 / 124
Architectures de HA avec la réplication
asynchrone
Les architectures sont multiples et les outils pour les mettre en oeuvre également.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
39 / 124
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êmeprincipe:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
40 / 124
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êmeprincipe:
1 maître (master)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
41 / 124
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êmeprincipe:
1 maître (master)
1 ou plusieurs replicas (slaves)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
42 / 124
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êmeprincipe:
1 maître (master)
1 ou plusieurs replicas (slaves)
Si le maître a un problème, leslave le plus à jours doit prendre le relaiset être promu
maître aux yeux des autres escalves encore en ligne.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
43 / 124
Automatisation
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
44 / 124
Automatisation
Et c´est là que c´est plus compliqué ;-)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
45 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
46 / 124
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 sysadminpour
pouvoir maintenir ces solutions:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
47 / 124
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 sysadminpour
pouvoir maintenir ces solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
48 / 124
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 sysadminpour
pouvoir maintenir ces solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Pacemaker avec un OCF dédié àMySQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
49 / 124
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 sysadminpour
pouvoir maintenir ces solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Pacemaker avec un OCF dédié àMySQL
MHA
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
50 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
51 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
52 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
53 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
54 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
55 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Il détecte les conflits
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
56 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
57 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
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
Supporté surtoutes les plateformesMySQL!!
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
58 / 124
MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
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
Supporté surtoutes les plateformesMySQL!!
Linux, Windows, Solaris, OSX,FreeBSD
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
59 / 124
Et pour les utilisateurs ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
60 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
61 / 124
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 surdes serveurs Actifs/Actifs
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
62 / 124
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 surdes serveurs Actifs/Actifs
Gère les pannes distribuées (quorum)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
63 / 124
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 surdes serveurs Actifs/Actifs
Gère les pannes distribuées (quorum)
Facilite grandement la mise en place d´un service MySQLhautement disponible !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
64 / 124
Mais comment ça marche ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
65 / 124
Mais comment ça marche ?
par magie !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
66 / 124
Mais comment ça marche ?
par magie !
Non, au fait, la réplication des"transactions" se faitde manière synchrone, ensuite la
certification et l'application des changements se font de manière asynchrone...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
67 / 124
Mais comment ça marche ?
par magie !
Non, au fait, la réplication des"transactions" se faitde 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... et commedessinvaut mieux qu'un long
discours...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
68 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
69 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
70 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
71 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
72 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
73 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
74 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
75 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
76 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
77 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
78 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
79 / 124
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
80 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
81 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
82 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
83 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
84 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
85 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
86 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
87 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
88 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Échec: la transaction est rejetée
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
89 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Échec: la transaction est rejetée
Sérialisée par l´ordre établi dans GCS/XCOM+ GTID
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
90 / 124
Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) 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 du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Échec: la transaction est rejetée
Sérialisée par l´ordre établi dans GCS/XCOM+ GTID
Le coût varie en fonction du nombres d'index et d'enregistrements
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
91 / 124
GTID
Les GTIDs utilisés sont identiques aux GTIDutilisé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 @ 2017 Oracle and/or its affiliates. All rights reserved.
92 / 124
Mais c'est le GTID du cluster qui est mélangé aux éventuels 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 @ 2017 Oracle and/or its affiliates. All rights reserved.
93 / 124
Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
94 / 124
Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
95 / 124
Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
96 / 124
Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Un bon réseau avec peu de latence est important
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
97 / 124
Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Un bon réseau avec peu de latence est important
Un maximum de 9 membres par groupe
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
98 / 124
Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Un bon réseau avec peu de latence est important
Un maximum de 9 membres par groupe
log-bin doit être activé et seul le format ROWest supporté
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
99 / 124
Exigences (2)
les GTIDs doivent être activés
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
100 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
101 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
102 / 124
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 @ 2017 Oracle and/or its affiliates. All rights reserved.
103 / 124
Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
104 / 124
Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
105 / 124
Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1
On ne peut utiliserSERIALIZABLEcomme niveau d'isolation des transactions
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
106 / 124
Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1
On ne peut utiliserSERIALIZABLEcomme niveau d'isolation des transactions
http://lefred.be/content/mysql-group-replication-limitations-savepoints/
http://lefred.be/content/mysql-group-replication-and-table-design/
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
107 / 124
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
108 / 124
MySQL Router
MySQLRouter est un middleware léger qui fournit un routage transparent entre l
´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété
de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant
efficacement le trafic vers les serveursMySQLappropriés.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
109 / 124
MySQL Router
MySQLRouter est un middleware léger qui fournit un routage transparent entre l
´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété
de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant
efficacement le trafic vers les serveursMySQLappropriés.
MySQLRouter ne nécessite aucune configuration, ilse configure automatiquement grâce
aux meta-données duMySQLInnoDB Cluster.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
110 / 124
MySQL Router
MySQLRouter est un middleware léger qui fournit un routage transparent entre l
´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété
de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant
efficacement le trafic vers les serveursMySQLappropriés.
MySQLRouter ne nécessite aucune configuration, ilse configure automatiquement grâce
aux meta-données duMySQLInnoDB Cluster.
Le dévelopement deMySQLRouter est focalisé sur les étapes suivantes du cluster: le
sharding.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
111 / 124
ProxySQL
Pour des besoins plus avancés, nous collaborons également avec ProxySQL pour avoir le
support natif de Group Replication &de MySQLInnoDB Cluster.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
112 / 124
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
113 / 124
MySQL Shell
MySQLShell est in interface interactive en Javascript, Python, ou SQL qui prend en charge
le développment et l´administration du serveur MySQL. MySQLShell peut être utilisé pour
effectuer des requêtes et des modifications de données ainsi que diverses opérations d
´administration.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
114 / 124
MySQL Shell (2)
MySQLShell fournit:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
115 / 124
MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
116 / 124
MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
117 / 124
MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
des résultats sous le format traditionnels (tables), JSON, Tab Separated
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
118 / 124
MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
des résultats sous le format traditionnels (tables), JSON, Tab Separated
un accès aux protocolesMySQLStandard and X
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
119 / 124
MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
des résultats sous le format traditionnels (tables), JSON, Tab Separated
un accès aux protocolesMySQLStandard and X
et plus encore...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
120 / 124
Commandes pour déployer un cluster en
utilisant l'adminAPI du MySQL Shell:
mysql-js> var i1 = 'root@instance01.jdl:3306';
mysql-js> var i2 = 'root@instance02.jdl:3306';
mysql-js> var i3 = 'root@instance03.jdl:3306';
mysql-js> dba.checkInstanceCon guration(i1);
mysql-js> dba.checkInstanceCon guration(i2);
mysql-js> dba.checkInstanceCon guration(i3);
mysql-js> shell.connect(i1);
mysql-js> var cluster = dba.createCluster('JeudisDuLibre');
mysql-js> cluster.checkInstanceState(i2);
mysql-js> cluster.addInstance(i2);
mysql-js> cluster.checkInstanceState(i3);
mysql-js> cluster.addInstance(i3);
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
121 / 124
instance01.yaml :
classes:
- innodbcluster
innodbcluster::mysql_serverid: 1
grâce au Shell on peut tout automatiser ;-)
https://github.com/lefred/puppet-lefred-innodbcluster
Super facile à configurer via hiera:
common.yaml:
innodbcluster::mysql_root_password: MegaMotDePasse
innodbcluster::mysql_bind_interface: eth1
innodbcluster::cluster_name: JeudisDuLibre
innodbcluster::grant::user: fred
innodbcluster::grant::password: fred
innodbcluster::seed: instance01.jdl
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
122 / 124
Ressources
http://lefred.be/content/mysql-innodb-cluster-mysql-shell-starter-guide/
http://lefred.be/content/mysql-innodb-cluster-automated-installation-with-puppet/
http://lefred.be/content/category/mysql/group-replication/
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
123 / 124
Merci
Des Questions ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
124 / 124

Contenu connexe

Tendances

Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Severalnines
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniOlivier DASINI
 
Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Olivier DASINI
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g noble Bajoli
 
Oracle Database Vault
Oracle Database VaultOracle Database Vault
Oracle Database VaultKhalid ALLILI
 

Tendances (7)

Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 
Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
 
Redis
RedisRedis
Redis
 
Spark
SparkSpark
Spark
 
Oracle Database Vault
Oracle Database VaultOracle Database Vault
Oracle Database Vault
 

En vedette

Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Frederic Descamps
 
MySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howMySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howBernt Marius Johnsen
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?Norvald Ryeng
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17Alkin Tezuysal
 
SQL window functions for MySQL
SQL window functions for MySQLSQL window functions for MySQL
SQL window functions for MySQLDag H. Wanvik
 
MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions oysteing
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server DefaultsMorgan Tocker
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationKenny Gryp
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagJean-François Gagné
 
Using Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query PerformanceUsing Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query Performanceoysteing
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
Deploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and SolrDeploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and SolrJordi Llonch
 
Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminFrederic Descamps
 
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio  in a nutshell - MySQL InnoDB ClusterMySQL Group Replicatio  in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio in a nutshell - MySQL InnoDB ClusterFrederic Descamps
 
4 Minutes pour comprendre le statut d'auto-entrepreneur
4 Minutes pour comprendre le statut d'auto-entrepreneur4 Minutes pour comprendre le statut d'auto-entrepreneur
4 Minutes pour comprendre le statut d'auto-entrepreneurBenjamin Poisson
 
Are we doing things for live
Are we doing things for liveAre we doing things for live
Are we doing things for liveWily Pietro
 

En vedette (20)

Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
 
MySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & howMySQL 8.0 & Unicode: Why, what & how
MySQL 8.0 & Unicode: Why, what & how
 
MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?MySQL 8.0: GIS — Are you ready?
MySQL 8.0: GIS — Are you ready?
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
 
SQL window functions for MySQL
SQL window functions for MySQLSQL window functions for MySQL
SQL window functions for MySQL
 
MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions MySQL 8.0: Common Table Expressions
MySQL 8.0: Common Table Expressions
 
MySQL Server Defaults
MySQL Server DefaultsMySQL Server Defaults
MySQL Server Defaults
 
What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...What you wanted to know about MySQL, but could not find using inernal instrum...
What you wanted to know about MySQL, but could not find using inernal instrum...
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
How Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lagHow Booking.com avoids and deals with replication lag
How Booking.com avoids and deals with replication lag
 
Using Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query PerformanceUsing Optimizer Hints to Improve MySQL Query Performance
Using Optimizer Hints to Improve MySQL Query Performance
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Deploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and SolrDeploying Immutable infrastructures with RabbitMQ and Solr
Deploying Immutable infrastructures with RabbitMQ and Solr
 
Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadmin
 
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio  in a nutshell - MySQL InnoDB ClusterMySQL Group Replicatio  in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
 
Management et Leadership
Management et LeadershipManagement et Leadership
Management et Leadership
 
4 Minutes pour comprendre le statut d'auto-entrepreneur
4 Minutes pour comprendre le statut d'auto-entrepreneur4 Minutes pour comprendre le statut d'auto-entrepreneur
4 Minutes pour comprendre le statut d'auto-entrepreneur
 
FolienMagie Seminar-Programm 2018
FolienMagie Seminar-Programm 2018FolienMagie Seminar-Programm 2018
FolienMagie Seminar-Programm 2018
 
Are we doing things for live
Are we doing things for liveAre we doing things for live
Are we doing things for live
 
"Africa: amor e dor"
"Africa: amor e dor" "Africa: amor e dor"
"Africa: amor e dor"
 

Similaire à Jeudis du Libre - MySQL InnoDB Cluster

Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceRSD
 
Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Christophe Villeneuve
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Jean-Philippe PINTE
 
GUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS
 
Automatisation et Gestion de Cluster de Bases de Données MariaDB Roadshow
Automatisation et Gestion de Cluster de Bases de Données MariaDB RoadshowAutomatisation et Gestion de Cluster de Bases de Données MariaDB Roadshow
Automatisation et Gestion de Cluster de Bases de Données MariaDB RoadshowMariaDB Corporation
 
Les architectures du Software Defined Storage
Les architectures du Software Defined StorageLes architectures du Software Defined Storage
Les architectures du Software Defined StorageRSD
 
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & RéalitésReprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & RéalitésMicrosoft Technet France
 
Presentation mariaDB 10 and fork
Presentation mariaDB 10 and forkPresentation mariaDB 10 and fork
Presentation mariaDB 10 and forkLEQUOY Aurélien
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateMor THIAM
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPriscilleGANKIA
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysVictor Coustenoble
 
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...AZUG FR
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 
OpenStack stratégie: fondation, acteurs et composants
OpenStack stratégie: fondation, acteurs et composantsOpenStack stratégie: fondation, acteurs et composants
OpenStack stratégie: fondation, acteurs et composantsJonathan Le Lous
 

Similaire à Jeudis du Libre - MySQL InnoDB Cluster (20)

ISDay 2017 - Atelier Arcserve
ISDay 2017 - Atelier ArcserveISDay 2017 - Atelier Arcserve
ISDay 2017 - Atelier Arcserve
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a Service
 
Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
ISDay 2017 - Atelier HPE
ISDay 2017 - Atelier HPEISDay 2017 - Atelier HPE
ISDay 2017 - Atelier HPE
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)
 
GUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the WebGUSS - CRITEO Meetup Scale SQL for the Web
GUSS - CRITEO Meetup Scale SQL for the Web
 
Automatisation et Gestion de Cluster de Bases de Données MariaDB Roadshow
Automatisation et Gestion de Cluster de Bases de Données MariaDB RoadshowAutomatisation et Gestion de Cluster de Bases de Données MariaDB Roadshow
Automatisation et Gestion de Cluster de Bases de Données MariaDB Roadshow
 
Les architectures du Software Defined Storage
Les architectures du Software Defined StorageLes architectures du Software Defined Storage
Les architectures du Software Defined Storage
 
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & RéalitésReprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
 
Presentation mariaDB 10 and fork
Presentation mariaDB 10 and forkPresentation mariaDB 10 and fork
Presentation mariaDB 10 and fork
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
Presentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptxPresentation du SGBD Oracle DATABASE.pptx
Presentation du SGBD Oracle DATABASE.pptx
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Administration glassfish 3
Administration glassfish 3Administration glassfish 3
Administration glassfish 3
 
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
 
OpenStack stratégie: fondation, acteurs et composants
OpenStack stratégie: fondation, acteurs et composantsOpenStack stratégie: fondation, acteurs et composants
OpenStack stratégie: fondation, acteurs et composants
 

Plus de Frederic Descamps

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionFrederic Descamps
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsFrederic Descamps
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfFrederic Descamps
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8Frederic Descamps
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022Frederic Descamps
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesFrederic Descamps
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021Frederic Descamps
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDSFrederic Descamps
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...Frederic Descamps
 

Plus de Frederic Descamps (20)

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
 

Jeudis du Libre - MySQL InnoDB Cluster

  • 3. MySQL InnoDB Cluster Quand Haute Disponibilité et facilité de déploiement font bon ménage   Jeudis du Libre - Mars 2017 3 / 124
  • 4.   Safe Harbor Statement The following is intended to outline our generalproduct direction. It isintended for information purpose only, and may not be incorporated into any contract. It isnot a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. Thedevelopment, release and timing of any features or functionality described for Oracle's product remains at thesole discretion of Oracle. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 4 / 124
  • 5. about.me/lefred Qui suis-je ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 5 / 124
  • 6. Frédéric Descamps @lefred Évangéliste MySQL BidouilleMySQLdepuis la version 3.23 devops croyant et praticant MySQLCommunity Manager depuis mai 2016 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 6 / 124
  • 7. MySQL InnoDB Cluster Haute Dispo facile pour MySQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 7 / 124
  • 9. Notre vision on 4 étapes MySQLDocumentStore ModèleRelationnel&Document HauteDispoMySQL HauteDispoprêteàl'emploi "Sclale-Up"V ertical Basculementautomatique "Sclale-Up"Horizontal Sharding E1 E3 E2 E4 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 9 / 124
  • 10. Architecture de l´étape 2 Application MySQLConnector MySQLRouter MySQLShell InnoDB cluster Application MySQLConnector MySQLRouter Mp M M Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 10 / 124
  • 11. Architecture de l´étape 3 Application MySQLConnector MySQLRouter MySQLShell InnoDB cluster Application MySQLConnector MySQLRouter Mp M M S1 S2 S3 S4 S... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 11 / 124
  • 12. Architecture de l´étape 4 Application MySQLConnector MySQLRouter MySQLShell Application MySQLConnector MySQLRouter InnoDB cluster Mp M M S2 S3 S4 S...S1 InnoDB cluster Mp M M S1 S2 S3 S4 S... InnoDB cluster Mp M M S1 S2 S3 S4 S... Application MySQLConnector MySQLRouter Application MySQLConnector MySQLRouter Application MySQLConnector MySQLRouter replicaset1 replicaset2 replicaset3 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 12 / 124
  • 13. Group Replication: le coeur de MySQL InnoDB Cluster Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 13 / 124
  • 14. Group Replication: le coeur de MySQL InnoDB Cluster Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 14 / 124
  • 15. Mais avant d'aller plus loin... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 15 / 124
  • 16. Qu´est-que la Haute Disponibilité Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 16 / 124
  • 17. Haute Disponibilité La haute disponibilité est un termesouventutiliséeninformatique,àproposd ´architecture de système ou d´unservicepour désigner lefaitquecettearchitectureouce service a un taux de disponibilitéconvenable. Deux moyens complémentairessont 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 basantsur de la redondance matérielle. Est alors créé un cluster de haute- disponibilité (par opposition àun cluster de calcul) : une grappe d´ordinateursdont le but est d´assurer un service en évitant aumaximum les 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. ITILcontient de nombreux processus de ce type. Source: WikipédiaCopyright @ 2017 Oracle and/or its affiliates. All rights reserved. 17 / 124
  • 18. Les principes de la Haute Disponibilité Redondance des services/desdonnées Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 18 / 124
  • 19. Les principes de la Haute Disponibilité Redondance des services/desdonnées Réduire l'impact d´une panne Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 19 / 124
  • 20. Les principes de la Haute Disponibilité Redondance des services/desdonnées Réduire l'impact d´une panne Basculement lors d´un problèmeou en casde maintenance Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 20 / 124
  • 21. Les principes de la Haute Disponibilité Redondance des services/desdonnées Réduire l'impact d´une panne Basculement lors d´un problèmeou en casde maintenance Récupération de la perte de redoncance Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 21 / 124
  • 22. Redondance de bases de données Comment y parvient-on ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 22 / 124
  • 23. Redondance de bases de données Comment y parvient-on ? Il existe plusieurs solutions, certaines bien pires que d´autres ;-) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 23 / 124
  • 24. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 24 / 124
  • 25. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 25 / 124
  • 26. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 26 / 124
  • 27. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 27 / 124
  • 28. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 28 / 124
  • 29. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: réplication asynchrone (async) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 29 / 124
  • 30. Réplication MySQL Il existe plusieurs types de réplication dans MySQL: réplication asynchrone (async) réplication semi-synchrone (semi-sync) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 30 / 124
  • 31. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 31 / 124
  • 32. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 32 / 124
  • 33. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf semi-sync) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 33 / 124
  • 34. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf semi-sync) l'initialisation (provisioning) des replicasest manuelle Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 34 / 124
  • 35. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf semi-sync) l'initialisation (provisioning) des replicasest manuelle la cohérense (consistency) desreplicasest assummée et nécessite une vérification manuelle Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 35 / 124
  • 36. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf semi-sync) l'initialisation (provisioning) des replicasest manuelle la cohérense (consistency) desreplicasest assummée et nécessite une vérification manuelle des topologies très complexes peuvent être construites Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 36 / 124
  • 37. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf semi-sync) l'initialisation (provisioning) des replicasest manuelle la cohérense (consistency) desreplicasest 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 37 / 124
  • 38. Réplication(s) Asynchrone(s) les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf semi-sync) l'initialisation (provisioning) des replicasest manuelle la cohérense (consistency) desreplicasest 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 38 / 124
  • 39. Architectures de HA avec la réplication asynchrone Les architectures sont multiples et les outils pour les mettre en oeuvre également. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 39 / 124
  • 40. 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êmeprincipe: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 40 / 124
  • 41. 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êmeprincipe: 1 maître (master) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 41 / 124
  • 42. 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êmeprincipe: 1 maître (master) 1 ou plusieurs replicas (slaves) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 42 / 124
  • 43. 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êmeprincipe: 1 maître (master) 1 ou plusieurs replicas (slaves) Si le maître a un problème, leslave le plus à jours doit prendre le relaiset être promu maître aux yeux des autres escalves encore en ligne. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 43 / 124
  • 44. Automatisation Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 44 / 124
  • 45. Automatisation Et c´est là que c´est plus compliqué ;-) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 45 / 124
  • 46. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 46 / 124
  • 47. 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 sysadminpour pouvoir maintenir ces solutions: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 47 / 124
  • 48. 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 sysadminpour pouvoir maintenir ces solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 48 / 124
  • 49. 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 sysadminpour pouvoir maintenir ces solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Pacemaker avec un OCF dédié àMySQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 49 / 124
  • 50. 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 sysadminpour pouvoir maintenir ces solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Pacemaker avec un OCF dédié àMySQL MHA Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 50 / 124
  • 51. MySQL Group Replication Mais qu´est-ce que c´est ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 51 / 124
  • 52. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 52 / 124
  • 53. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 53 / 124
  • 54. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" MySQLGroup Communication System(GCS) est basé sur Paxos Mencius Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 54 / 124
  • 55. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" MySQLGroup Communication System(GCS) est basé sur Paxos Mencius Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 55 / 124
  • 56. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" MySQLGroup Communication System(GCS) est basé sur Paxos Mencius Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire Il détecte les conflits Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 56 / 124
  • 57. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" MySQLGroup Communication System(GCS) est basé sur Paxos Mencius 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 57 / 124
  • 58. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" MySQLGroup Communication System(GCS) est basé sur Paxos Mencius 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 Supporté surtoutes les plateformesMySQL!! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 58 / 124
  • 59. MySQL Group Replication Mais qu´est-ce que c´est ? C´est un plugin pourMySQLfourni avecMySQLparMySQL! GR est l´implémentation de la théorie"Replicated Database State Machine" MySQLGroup Communication System(GCS) est basé sur Paxos Mencius 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 Supporté surtoutes les plateformesMySQL!! Linux, Windows, Solaris, OSX,FreeBSD Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 59 / 124
  • 60. Et pour les utilisateurs ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 60 / 124
  • 61. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 61 / 124
  • 62. 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 surdes serveurs Actifs/Actifs Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 62 / 124
  • 63. 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 surdes serveurs Actifs/Actifs Gère les pannes distribuées (quorum) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 63 / 124
  • 64. 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 surdes serveurs Actifs/Actifs Gère les pannes distribuées (quorum) Facilite grandement la mise en place d´un service MySQLhautement disponible ! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 64 / 124
  • 65. Mais comment ça marche ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 65 / 124
  • 66. Mais comment ça marche ? par magie ! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 66 / 124
  • 67. Mais comment ça marche ? par magie ! Non, au fait, la réplication des"transactions" se faitde manière synchrone, ensuite la certification et l'application des changements se font de manière asynchrone... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 67 / 124
  • 68. Mais comment ça marche ? par magie ! Non, au fait, la réplication des"transactions" se faitde 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... et commedessinvaut mieux qu'un long discours... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 68 / 124
  • 69. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 69 / 124
  • 70. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 70 / 124
  • 71. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 71 / 124
  • 72. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 72 / 124
  • 73. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 73 / 124
  • 74. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 74 / 124
  • 75. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 75 / 124
  • 76. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 76 / 124
  • 77. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 77 / 124
  • 78. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 78 / 124
  • 79. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 79 / 124
  • 80. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 80 / 124
  • 81. Certification La certification est le processus qui a pour but de répondre à cette unique question: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 81 / 124
  • 82. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) peutêtreappliquée? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 82 / 124
  • 83. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) peutêtreappliquée? en se basant sur les transactions précédentes qui ne sont pas encore appliquées Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 83 / 124
  • 84. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 84 / 124
  • 85. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 85 / 124
  • 86. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 86 / 124
  • 87. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n´est pas communiqué aucluster en retour Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 87 / 124
  • 88. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n´est pas communiqué aucluster en retour Réussite: entre dans la queuepour être appliquée Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 88 / 124
  • 89. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n´est pas communiqué aucluster en retour Réussite: entre dans la queuepour être appliquée Échec: la transaction est rejetée Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 89 / 124
  • 90. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n´est pas communiqué aucluster en retour Réussite: entre dans la queuepour être appliquée Échec: la transaction est rejetée Sérialisée par l´ordre établi dans GCS/XCOM+ GTID Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 90 / 124
  • 91. Certification La certification est le processus qui a pour but de répondre à cette unique question: est-ce-que cette écriture (transaction) 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 du groupe La certification se fait sur chaque membre du groupe Doit être déterministe sur chaque noeud Le résultat n´est pas communiqué aucluster en retour Réussite: entre dans la queuepour être appliquée Échec: la transaction est rejetée Sérialisée par l´ordre établi dans GCS/XCOM+ GTID Le coût varie en fonction du nombres d'index et d'enregistrements Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 91 / 124
  • 92. GTID Les GTIDs utilisés sont identiques aux GTIDutilisé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 @ 2017 Oracle and/or its affiliates. All rights reserved. 92 / 124
  • 93. Mais c'est le GTID du cluster qui est mélangé aux éventuels 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 93 / 124
  • 94. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 94 / 124
  • 95. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques table doit avoir une clé primaire Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 95 / 124
  • 96. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques table doit avoir une clé primaire Ne fonctionne qu´en IPV4 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 96 / 124
  • 97. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques table doit avoir une clé primaire Ne fonctionne qu´en IPV4 Un bon réseau avec peu de latence est important Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 97 / 124
  • 98. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques table doit avoir une clé primaire Ne fonctionne qu´en IPV4 Un bon réseau avec peu de latence est important Un maximum de 9 membres par groupe Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 98 / 124
  • 99. Exigences Les données doivent impérativement être sauvergardées dans des tables en InnoDB Chaques table doit avoir une clé primaire Ne fonctionne qu´en IPV4 Un bon réseau avec peu de latence est important Un maximum de 9 membres par groupe log-bin doit être activé et seul le format ROWest supporté Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 99 / 124
  • 100. Exigences (2) les GTIDs doivent être activés Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 100 / 124
  • 101. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 101 / 124
  • 102. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 102 / 124
  • 103. 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 @ 2017 Oracle and/or its affiliates. All rights reserved. 103 / 124
  • 104. Limites Le checksum des évenements répliqués n´est passupporté --binlog-checksum=NONE Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 104 / 124
  • 105. Limites Le checksum des évenements répliqués n´est passupporté --binlog-checksum=NONE Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 105 / 124
  • 106. Limites Le checksum des évenements répliqués n´est passupporté --binlog-checksum=NONE Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1 On ne peut utiliserSERIALIZABLEcomme niveau d'isolation des transactions Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 106 / 124
  • 107. Limites Le checksum des évenements répliqués n´est passupporté --binlog-checksum=NONE Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1 On ne peut utiliserSERIALIZABLEcomme niveau d'isolation des transactions http://lefred.be/content/mysql-group-replication-limitations-savepoints/ http://lefred.be/content/mysql-group-replication-and-table-design/ Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 107 / 124
  • 108. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 108 / 124
  • 109. MySQL Router MySQLRouter est un middleware léger qui fournit un routage transparent entre l ´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant efficacement le trafic vers les serveursMySQLappropriés. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 109 / 124
  • 110. MySQL Router MySQLRouter est un middleware léger qui fournit un routage transparent entre l ´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant efficacement le trafic vers les serveursMySQLappropriés. MySQLRouter ne nécessite aucune configuration, ilse configure automatiquement grâce aux meta-données duMySQLInnoDB Cluster. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 110 / 124
  • 111. MySQL Router MySQLRouter est un middleware léger qui fournit un routage transparent entre l ´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant efficacement le trafic vers les serveursMySQLappropriés. MySQLRouter ne nécessite aucune configuration, ilse configure automatiquement grâce aux meta-données duMySQLInnoDB Cluster. Le dévelopement deMySQLRouter est focalisé sur les étapes suivantes du cluster: le sharding. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 111 / 124
  • 112. ProxySQL Pour des besoins plus avancés, nous collaborons également avec ProxySQL pour avoir le support natif de Group Replication &de MySQLInnoDB Cluster. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 112 / 124
  • 113. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 113 / 124
  • 114. MySQL Shell MySQLShell est in interface interactive en Javascript, Python, ou SQL qui prend en charge le développment et l´administration du serveur MySQL. MySQLShell peut être utilisé pour effectuer des requêtes et des modifications de données ainsi que diverses opérations d ´administration. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 114 / 124
  • 115. MySQL Shell (2) MySQLShell fournit: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 115 / 124
  • 116. MySQL Shell (2) MySQLShell fournit: la possibilité d´effectuer des opérations interactives et de "batch" Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 116 / 124
  • 117. MySQL Shell (2) MySQLShell fournit: la possibilité d´effectuer des opérations interactives et de "batch" l´utilisation d'API CRUD Document et relationnelles Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 117 / 124
  • 118. MySQL Shell (2) MySQLShell fournit: la possibilité d´effectuer des opérations interactives et de "batch" l´utilisation d'API CRUD Document et relationnelles des résultats sous le format traditionnels (tables), JSON, Tab Separated Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 118 / 124
  • 119. MySQL Shell (2) MySQLShell fournit: la possibilité d´effectuer des opérations interactives et de "batch" l´utilisation d'API CRUD Document et relationnelles des résultats sous le format traditionnels (tables), JSON, Tab Separated un accès aux protocolesMySQLStandard and X Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 119 / 124
  • 120. MySQL Shell (2) MySQLShell fournit: la possibilité d´effectuer des opérations interactives et de "batch" l´utilisation d'API CRUD Document et relationnelles des résultats sous le format traditionnels (tables), JSON, Tab Separated un accès aux protocolesMySQLStandard and X et plus encore... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 120 / 124
  • 121. Commandes pour déployer un cluster en utilisant l'adminAPI du MySQL Shell: mysql-js> var i1 = 'root@instance01.jdl:3306'; mysql-js> var i2 = 'root@instance02.jdl:3306'; mysql-js> var i3 = 'root@instance03.jdl:3306'; mysql-js> dba.checkInstanceCon guration(i1); mysql-js> dba.checkInstanceCon guration(i2); mysql-js> dba.checkInstanceCon guration(i3); mysql-js> shell.connect(i1); mysql-js> var cluster = dba.createCluster('JeudisDuLibre'); mysql-js> cluster.checkInstanceState(i2); mysql-js> cluster.addInstance(i2); mysql-js> cluster.checkInstanceState(i3); mysql-js> cluster.addInstance(i3); Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 121 / 124
  • 122. instance01.yaml : classes: - innodbcluster innodbcluster::mysql_serverid: 1 grâce au Shell on peut tout automatiser ;-) https://github.com/lefred/puppet-lefred-innodbcluster Super facile à configurer via hiera: common.yaml: innodbcluster::mysql_root_password: MegaMotDePasse innodbcluster::mysql_bind_interface: eth1 innodbcluster::cluster_name: JeudisDuLibre innodbcluster::grant::user: fred innodbcluster::grant::password: fred innodbcluster::seed: instance01.jdl Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 122 / 124
  • 124. Merci Des Questions ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 124 / 124