MySQL 8.0 est disponible depuis un certain temps et Percona XtraDB Cluster 8.0 est également disponible depuis un certain temps également. De plus, MySQL 5.6 approche de sa fin de vie et les utilisateurs de PXC 5.6 voudront également migrer bientôt vers une version plus récente. Jetons un coup d'œil au processus et partageons quelques conseils à ce sujet.
Rappelez-vous, c'est MySQL Underneath...
Pour commencer, vous devez garder à l'esprit que Galera n'est qu'un plugin qui fonctionne avec MySQL, vous devez donc vous assurer que vous respectez les règles et processus de migration pour votre version MySQL particulière utilisée dans votre PXC. Si nous exécutons PXC 5.7 et que vous souhaitez effectuer une mise à niveau vers PXC 8.0, vous devez d'abord cocher toutes les cases de la liste de contrôle de mise à niveau MySQL. Nous en avons couvert une partie dans notre blog décrivant le processus de mise à niveau entre MySQL 5.7 et MySQL 8.0. Cela signifie également que seuls les chemins de mise à niveau pris en charge par MySQL sont viables - par exemple, vous ne pouvez pas mettre à niveau PXC 5.6 directement vers PXC 8.0 car la mise à niveau directe de MySQL de 5.6 à 8.0 n'est pas prise en charge.
Lire la documentation de mise à niveau
Comme d'habitude, chaque fois que vous planifiez une mise à niveau, vous devez vous familiariser avec la documentation préparée par le fournisseur. Percona a une page Web dédiée à l'explication du processus de mise à niveau et des mises en garde qui l'entourent. Nous passerons en revue certains de ces points dans cet article de blog.
Modifications de configuration
Il y a quelques changements dans les paramètres de configuration par défaut qui peuvent déclencher des problèmes dans le processus de mise à niveau - pxc_strict_mode est défini sur ENFORCING par défaut. Ce mode bloque tout type de configuration expérimentale et peut affecter la stabilité du cluster. Les vérifications couvrent, entre autres, les moteurs de stockage utilisés, le format de journal binaire, l'existence de clés primaires et quelques autres choses. Lors de la mise à niveau, vous souhaiterez peut-être le définir sur PERMISSIVE pour suivre les incompatibilités dans le journal des erreurs, mais sinon, laissez le PXC s'exécuter même si certaines choses ne sont pas au mieux.
Un autre paramètre, pxc_encrypt_cluster_traffic, est également activé par défaut, appliquant le chiffrement de la communication Galera entre les nœuds. Il n'est pas possible de mélanger des nœuds avec des nœuds chiffrés et non chiffrés dans le même cluster, vous devez donc soit le configurer sur tous les nœuds, soit vous assurer de désactiver le pxc_encrypt_cluster_traffic sur les nouveaux nœuds PXC 8.0.
Modification du plugin d'authentification par défaut
Nous l'avons mentionné dans notre article de blog sur la migration vers MySQL 8.0, mais le changement est si important que nous voulons le réitérer ici également - avec MySQL 8.0, le plugin d'authentification par défaut passe à caching_sha2_password - cela peut rendre certaines des anciennes applications incompatibles avec MySQL 8.0. Bien sûr, vous pouvez modifier ce paramètre, mais si vous ne le prenez pas en considération, il peut se retourner contre vous une fois la mise à niveau terminée.
Processus de mise à niveau
Pour commencer, veuillez garder à l'esprit que, même si cela n'est pas recommandé, avec certains, il est possible que les nœuds PXC 5.7 et PXC 8.0 s'exécutent dans le même cluster. Cela ouvre la possibilité d'effectuer une mise à niveau en direct sur place. Le processus serait assez simple - arrêtez le nœud PXC 5.7, mettez-le à niveau vers PXC 8.0 en installant une nouvelle version et en la démarrant. Le répertoire de données de processus sera mis à niveau vers la nouvelle version et le nouveau nœud PXC 8.0 devrait pouvoir démarrer correctement et rejoindre le cluster. Ensuite, vous procédez avec les nœuds un par un, en les migrant de PXC 5.7 vers PXC 8.0. Veuillez garder à l'esprit que vous devez éviter SST car un répertoire de données du nœud PXC 8.0 ne peut pas être utilisé sur 5.7. L'inverse devrait fonctionner correctement. Pour empêcher SST de se produire, assurez-vous que la taille de gcache est suffisamment grande pour accueillir les écritures et permettre à IST de se produire. IST lui-même fonctionnera très bien.
Si vous avez plus de nœuds libres, vous pouvez toujours effectuer la mise à niveau avec deux clusters sur différentes versions majeures exécutées en parallèle et connectées via une réplication asynchrone. Ce qui est important, une telle approche vous permettra de tester le PXC 8.0 de manière plus approfondie car vous l'aurez opérationnel pendant un certain temps (essentiellement aussi longtemps que vous en aurez besoin) et vous pourrez tester votre application sur ce cluster - à tout moment dans fois, vous pouvez déplacer une partie de la charge de travail en lecture seule vers le PXC 8.0 en voyant comment les requêtes sont traitées, s'il y a des erreurs ou des problèmes de performances.
Si vous utilisez ClusterControl, cela peut être accompli en utilisant la tâche "Créer un cluster esclave".
Il vous sera demandé de décider d'où les données initiales doivent provenir, maître Noeud PXC ou depuis la sauvegarde.
Vous devrez également transmettre les détails de connectivité tels que l'utilisateur SSH et le chemin de la clé .
Ensuite, il vous sera demandé de choisir le fournisseur et la version - vous voulez probablement pour utiliser PXC 5.7 pour l'instant, vous mettrez à niveau les nœuds plus tard, en testant le processus de mise à niveau lui-même.
Enfin, vous devez transmettre les noms d'hôte ou les adresses IP du nœud pour ClusterControl à connectez-vous et commencez à configurer les nœuds.
En conséquence, vous aurez un deuxième cluster Percona XtraDB exécuté dans la version 5.7 , en répliquant à partir du cluster d'origine. Ce cluster peut être mis à niveau vers la nouvelle version et, éventuellement, vous pouvez y transférer votre trafic. Nous avons expliqué ce processus en détail dans notre précédent article de blog.
Nous espérons que ce court article de blog vous aidera à mieux préparer la mise à niveau de votre cluster Percona XtraDB vers la version 8.0.