Haute disponibilité my sql avec group réplication

118
1 / 118

Transcript of Haute disponibilité my sql avec group réplication

1 / 118

6 septembre 2016

MySQL Meetup, OpenTech - Paris

Frédéric Descamps

MySQL Community Manager

MySQL Group Replication - Haute Disponibilitéavec Multi-Masters

MySQL High Availability made easy

 

     

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

2 / 118

 

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended forinformation purpose only, and may not be incorporated into any contract. It is not acommitment to deliver any material, code, or functionality, and should not be relied up inmaking purchasing decisions. The development, release and timing of any features orfunctionality described for Oracle's product remains at the sole discretion of Oracle.

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

3 / 118

about.me/lefred

Qui suis-je ?

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

4 / 118

Frédéric Descamps@lefredMySQL EvangelistManaging MySQL since 3.23devops believerhttp://lefred.be

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

5 / 118

Qu'est-que la

Haute Disponibilité

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

6 / 118

Haute DisponibilitéLa haute disponibilité est un terme souvent utilisé en informatique, à proposd'architecture de système ou d'un service pour désigner le fait que cette architecture ou ceservice a un taux de disponibilité convenable.

Deux moyens complémentaires sont utilisés pour améliorer la haute disponibilité :

la mise en place d'une infrastructure matérielle spécialisée, généralement en sebasant sur de la redondance matérielle. Est alors créé un cluster de haute-disponibilité (par opposition à un cluster de calcul) : une grappe d'ordinateurs dont lebut est d'assurer un service en évitant au maximum les indisponibilités ;la mise en place de processus adaptés permettant de réduire les erreurs, etd'accélérer la reprise en cas d'erreur. ITIL contient de nombreux processus de ce type.

Source: Wikipédia  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

7 / 118

Les principes de la Haute DisponibilitéRedondance des services/des données

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

8 / 118

Les principes de la Haute DisponibilitéRedondance des services/des donnéesRéduire l'impact d'une panne

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

9 / 118

Les principes de la Haute DisponibilitéRedondance des services/des donnéesRéduire l'impact d'une panneBasculement lors d'un problème ou en cas de maintenance

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

10 / 118

Les principes de la Haute DisponibilitéRedondance des services/des donnéesRéduire l'impact d'une panneBasculement lors d'un problème ou en cas de maintenanceRécupération de la perte de redoncance

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

11 / 118

Redondance de bases de données

Comment y parvient-on ?

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

12 / 118

Redondance de bases de données

Comment y parvient-on ?

Il existe plusieurs solutions, certaines bien pires que d'autres ;-)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

13 / 118

Redondance de bases de données

Comment y parvient-on ?

Il existe plusieurs solutions, certaines bien pires que d'autres ;-)

utilisation d'un disque partagé (SAN)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

14 / 118

Redondance de bases de données

Comment y parvient-on ?

Il existe plusieurs solutions, certaines bien pires que d'autres ;-)

utilisation d'un disque partagé (SAN)utilisation de blocs partagés via le réseau (drbd)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

15 / 118

Redondance de bases de données

Comment y parvient-on ?

Il existe plusieurs solutions, certaines bien pires que d'autres ;-)

utilisation d'un disque partagé (SAN)utilisation de blocs partagés via le réseau (drbd)utilisation de la réplication

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

16 / 118

Redondance de bases de données

Comment y parvient-on ?

Il existe plusieurs solutions, certaines bien pires que d'autres ;-)

utilisation d'un disque partagé (SAN)utilisation de blocs partagés via le réseau (drbd)utilisation de la réplication

C'est effectivement cette dernière technique qui est la plus fiable et la plus répendue.

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

17 / 118

Réplication MySQLIl existe plusieurs types de réplication dans MySQL:

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

18 / 118

Réplication MySQLIl existe plusieurs types de réplication dans MySQL:

réplication asynchrone (async)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

19 / 118

Réplication MySQLIl existe plusieurs types de réplication dans MySQL:

réplication asynchrone (async)réplication semi-synchrone (semi-sync)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

20 / 118

Réplication MySQLIl existe plusieurs types de réplication dans MySQL:

réplication asynchrone (async)réplication semi-synchrone (semi-sync)réplication de groupe (group replication) - Nouveau!!

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

21 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître unique

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

22 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître uniqueles esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (saufsemi-sync)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

23 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître uniqueles esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (saufsemi-sync)l'initialisation (provisioning) des esclaves est manuelle

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

24 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître uniqueles esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (saufsemi-sync)l'initialisation (provisioning) des esclaves est manuellela cohérense (consistency) des esclaves est assummée et nécessite une vérificationmanuelle

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

25 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître uniqueles esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (saufsemi-sync)l'initialisation (provisioning) des esclaves est manuellela cohérense (consistency) des esclaves est assummée et nécessite une vérificationmanuelledes topologies très complexes peuvent être construites

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

26 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître uniqueles esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (saufsemi-sync)l'initialisation (provisioning) des esclaves est manuellela cohérense (consistency) des esclaves est assummée et nécessite une vérificationmanuelledes topologies très complexes peuvent être construitesil est possible (et fort déconseillé) de créer des replications circulaires

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

27 / 118

Réplication(s) Asynchrone(s)les esclaves (slaves) "stream" les logs de réplication à partir d'un maître uniqueles esclaves peuvent être retardés (lag), il n' y a aucune garantie de livraison (saufsemi-sync)l'initialisation (provisioning) des esclaves est manuellela cohérense (consistency) des esclaves est assummée et nécessite une vérificationmanuelledes topologies très complexes peuvent être construitesil est possible (et fort déconseillé) de créer des replications circulairesles écritures ne sont sûr qu'à partir d'un unique maître global

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

28 / 118

Architectures de HA avec la réplicationasynchroneLes architectures sont multiples et les outils pour les mettre en oeuvre également.

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

29 / 118

Architectures de HA avec la réplicationasynchroneLes architectures sont multiples et les outils pour les mettre en oeuvre également.

Elles se basent toutes sur le même principe:

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

30 / 118

Architectures de HA avec la réplicationasynchroneLes architectures sont multiples et les outils pour les mettre en oeuvre également.

Elles se basent toutes sur le même principe:

1 maître (master)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

31 / 118

Architectures de HA avec la réplicationasynchroneLes architectures sont multiples et les outils pour les mettre en oeuvre également.

Elles se basent toutes sur le même principe:

1 maître (master)1 ou plusieurs esclaves (slaves)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

32 / 118

Architectures de HA avec la réplicationasynchroneLes architectures sont multiples et les outils pour les mettre en oeuvre également.

Elles se basent toutes sur le même principe:

1 maître (master)1 ou plusieurs esclaves (slaves)

Si le maître a un problème, le slave le plus à jours doit prendre le relais et être promumaître aux yeux des autres escalves encore en ligne.

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

33 / 118

Automatisation

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

34 / 118

AutomatisationEt c'est là que c'est plus compliqué ;-)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

35 / 118

AutomatisationEt 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. Lamajorité ne sont compatible qu'avec GNU/Linux.

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

36 / 118

AutomatisationEt 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. Lamajorité ne sont compatible qu'avec GNU/Linux.

Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pourpouvoir maintenir ces solutions:

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

37 / 118

AutomatisationEt 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. Lamajorité ne sont compatible qu'avec GNU/Linux.

Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pourpouvoir maintenir ces solutions:

MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

38 / 118

AutomatisationEt 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. Lamajorité ne sont compatible qu'avec GNU/Linux.

Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pourpouvoir maintenir ces solutions:

MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)Pacemaker avec un OCF dédié à MySQL

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

39 / 118

AutomatisationEt 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. Lamajorité ne sont compatible qu'avec GNU/Linux.

Leur problème est qu'ils viennent complexifier l'architecture. Il faut être sysadmin pourpouvoir maintenir ces solutions:

MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)Pacemaker avec un OCF dédié à MySQLMHA

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

40 / 118

MySQL Group Replication

Mais qu'est-ce que c'est ?

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

41 / 118

MySQL Group Replication

Mais qu'est-ce que c'est ?

C'est un plugin pour MySQL fourni avec MySQL par MySQL !

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

42 / 118

MySQL Group Replication

Mais qu'est-ce que c'est ?

C'est un plugin pour MySQL fourni avec MySQL par MySQL !Il permet d'écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

43 / 118

MySQL Group Replication

Mais qu'est-ce que c'est ?

C'est un plugin pour MySQL fourni avec MySQL par MySQL !Il permet d'écrire sur tous les membres du groupe (noeuds du cluster) si nécessaireIl détecte les conflits

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

44 / 118

MySQL Group Replication

Mais qu'est-ce que c'est ?

C'est un plugin pour MySQL fourni avec MySQL par MySQL !Il permet d'écrire sur tous les membres du groupe (noeuds du cluster) si nécessaireIl détecte les conflitsEt permet la récupération distribuée automatique

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

45 / 118

Et pour les utilisateurs ?

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

46 / 118

Et pour les utilisateurs ?Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellementou avec un script compliqué

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

47 / 118

Et pour les utilisateurs ?Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellementou avec un script compliquéMise à jours des données sur des serveurs Actifs/Actifs

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

48 / 118

Et pour les utilisateurs ?Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellementou avec un script compliquéMise à jours des données sur des serveurs Actifs/ActifsGère les pannes distribuées (quorum)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

49 / 118

Et pour les utilisateurs ?Il n'est plus nécessaire d'effectuer un basculement du rôle des serveurs manuellementou avec un script compliquéMise à jours des données sur des serveurs Actifs/ActifsGère les pannes distribuées (quorum)Facilite grandement la mise en place d'un service MySQL hautement disponible !

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

50 / 118

Mais comment ça marche ?

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

51 / 118

Mais comment ça marche ?par magie !

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

52 / 118

Mais comment ça marche ?par magie !

Non, au fait, la réplication des "writesets" se fait de manière synchrone, ensuite lacertification et l'application des changements se font de manière asynchrone...

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

53 / 118

Mais comment ça marche ?par magie !

Non, au fait, la réplication des "writesets" se fait de manière synchrone, ensuite lacertification et l'application des changements se font de manière asynchrone...

C'est peut-être un peu compliqué comme ça... voyons voir avec un dessin..

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

54 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

55 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

56 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

57 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

58 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

59 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

60 / 118

MySQL Group Replication (autocommit)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

61 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

62 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

63 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

64 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

65 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

66 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

67 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

68 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

69 / 118

MySQL Group Replication (full transaction)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

70 / 118

Optimistic LockingTraditional locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

71 / 118

Optimistic LockingTraditional locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

72 / 118

Optimistic LockingTraditional locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

73 / 118

Optimistic LockingTraditional locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

74 / 118

Optimistic LockingTraditional locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

75 / 118

Optimistic LockingTraditional locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

76 / 118

Optimistic LockingOptimistic Locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

77 / 118

Optimistic LockingOptimistic Locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

78 / 118

Optimistic LockingOptimistic Locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

79 / 118

Optimistic LockingOptimistic Locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

80 / 118

Optimistic LockingOptimistic Locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

81 / 118

Optimistic LockingOptimistic Locking

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

82 / 118

Optimistic Lockingon renvoie l'erreur 149 -> ERROR 1180 (HY000): Got error 149 during COMMIT

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

83 / 118

Réplication et CommunicationComme on a vu, la réplication des données comme on la perçoit en asynchrone est icidivisée en 4 parties:

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

84 / 118

Réplication et CommunicationComme on a vu, la réplication des données comme on la perçoit en asynchrone est icidivisée en 4 parties:

la réplication des writesets (transactions) via GCS/XCOM (Group CommunicationSystem & une solution interne dérivée de Paxos)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

85 / 118

Réplication et CommunicationComme on a vu, la réplication des données comme on la perçoit en asynchrone est icidivisée en 4 parties:

la réplication des writesets (transactions) via GCS/XCOM (Group CommunicationSystem & une solution interne dérivée de Paxos)la certification

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

86 / 118

Réplication et CommunicationComme on a vu, la réplication des données comme on la perçoit en asynchrone est icidivisée en 4 parties:

la réplication des writesets (transactions) via GCS/XCOM (Group CommunicationSystem & une solution interne dérivée de Paxos)la certificationl'application (apply)

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

87 / 118

Réplication et CommunicationComme on a vu, la réplication des données comme on la perçoit en asynchrone est icidivisée en 4 parties:

la réplication des writesets (transactions) via GCS/XCOM (Group CommunicationSystem & une solution interne dérivée de Paxos)la certificationl'application (apply)le commit

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

88 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

89 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

90 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquées

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

91 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

92 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupe

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

93 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupeDoit être déterministe sur chaque noeud

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

94 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupeDoit être déterministe sur chaque noeudLe résultat n'est pas communiqué au cluster en retour

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

95 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupeDoit être déterministe sur chaque noeudLe résultat n'est pas communiqué au cluster en retour

Réussite: entre dans la queue pour être appliqué

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

96 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupeDoit être déterministe sur chaque noeudLe résultat n'est pas communiqué au cluster en retour

Réussite: entre dans la queue pour être appliquéÉchec: la transaction est rejetée

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

97 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupeDoit être déterministe sur chaque noeudLe résultat n'est pas communiqué au cluster en retour

Réussite: entre dans la queue pour être appliquéÉchec: la transaction est rejetée

Sérialisé par l'ordre établi dans GCS/XCOM + GTID

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

98 / 118

CertificationLa certification est le processus qui a pour but de répondre à cette unique question:

est-ce-que cette écriture (writeset) peut être appliquée ?en se basant sur les transactions précédentes qui ne sont pas encore appliquéesce type de conflit provient toujours des autres membres

La certification se fait sur chaque membre du groupeDoit être déterministe sur chaque noeudLe résultat n'est pas communiqué au cluster en retour

Réussite: entre dans la queue pour être appliquéÉchec: la transaction est rejetée

Sérialisé par l'ordre établi dans GCS/XCOM + GTIDLe coût varie en fonction du nombres d'index et d'enregistrements

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

99 / 118

GTIDLes GTIDs utilisés sont identiques aux GTID utilisés en réplication asynchrone.

mysql> SELECT * FROM performance_schema.replication_connection_status\G ************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57, f037578b-46b1-11e6-8005-08002774c31b:1-48937 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

100 / 118

Mais c'est le GTID du cluster qui est mélangé aux autres

mysql> show master status\G ************************** 1. row *************************** File: mysql4-bin.000001 Position: 1501 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57, f037578b-46b1-11e6-8005-08002774c31b:1-48937

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

101 / 118

ExigencesLes données doivent impérativement être sauvergardées dans des tables en InnoDB

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

102 / 118

ExigencesLes données doivent impérativement être sauvergardées dans des tables en InnoDBChaques tables doivent avoir une clé primaire

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

103 / 118

ExigencesLes données doivent impérativement être sauvergardées dans des tables en InnoDBChaques tables doivent avoir une clé primaireNe fonctionne qu'en IPV4

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

104 / 118

ExigencesLes données doivent impérativement être sauvergardées dans des tables en InnoDBChaques tables doivent avoir une clé primaireNe fonctionne qu'en IPV4Un bon réseau avec peu de latence est important

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

105 / 118

ExigencesLes données doivent impérativement être sauvergardées dans des tables en InnoDBChaques tables doivent avoir une clé primaireNe fonctionne qu'en IPV4Un bon réseau avec peu de latence est importantUn maximum de 9 membres par groupe

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

106 / 118

ExigencesLes données doivent impérativement être sauvergardées dans des tables en InnoDBChaques tables doivent avoir une clé primaireNe fonctionne qu'en IPV4Un bon réseau avec peu de latence est importantUn maximum de 9 membres par groupelog­bin doit être activé et seul le format ROW est supporté

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

107 / 118

Exigences (2)les GTIDs doivent être activés

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

108 / 118

Exigences (2)les GTIDs doivent être activésLes meta données de réplication doivent être sauvergardées dans des tablessystèmes

--master-info-repository=TABLE --relay-log-info-repository=TABLE

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

109 / 118

Exigences (2)les GTIDs doivent être activésLes meta données de réplication doivent être sauvergardées dans des tablessystèmes

--master-info-repository=TABLE --relay-log-info-repository=TABLE

L'extraction des "writesets" de réplication doit être activée

--transaction-write-set-extraction=XXHASH64

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

110 / 118

Exigences (2)les GTIDs doivent être activésLes meta données de réplication doivent être sauvergardées dans des tablessystèmes

--master-info-repository=TABLE --relay-log-info-repository=TABLE

L'extraction des "writesets" de réplication doit être activée

--transaction-write-set-extraction=XXHASH64

log­slave­updates doit aussi être présent

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

111 / 118

LimitesLe checksum des évenements répliqués n'est pas supporté

--binlog-checksum=NONE

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

112 / 118

LimitesLe checksum des évenements répliqués n'est pas supporté

--binlog-checksum=NONE

Les "Savepoints" ne sont pas supportés

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

113 / 118

LimitesLe checksum des évenements répliqués n'est pas supporté

--binlog-checksum=NONE

Les "Savepoints" ne sont pas supportésOn ne peut utiliser SERIALIZABLE comme niveau d'isolation des transactions

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

114 / 118

Exemple d'architecuresMySQL Group Replication est la fondation d'une future solution complète de HauteDisponibilité pour MySQL.

En attendant l'avancement des autres composants de cette solution (comme mysql-router), il est déjà possible d'utiliser Group Replication avec d'autres logiciels.

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

115 / 118

HAProxy

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

116 / 118

ProxySQL

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

117 / 118

Des Questions ?

Merci !   

  Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.

118 / 118