Comment installer le cluster Percona XtraDB sur Rocky Linux 9
Percona XtraDB Cluster est une solution de clustering de bases de données entièrement open source pour MySQL. Il vous permet de créer un déploiement de serveur MySQL haute disponibilité avec des performances robustes et élevées. La dernière version de Percona XtraDB Cluster est la 8.0, qui est entièrement compatible avec MySQL Server Comunity Edition 8.0.
Percona XtraDB Cluster fournit des fonctionnalités telles que la réplication synchrone, la réplication multi-source, le provisionnement automatique des nœuds, la configuration automatique du chiffrement SSL et des performances optimisées.
Percona XtraDB Cluster garantit la haute disponibilité de votre serveur de base de données, offre une évolutivité linéaire et évite les temps d'arrêt et la perte de données.
Ce guide vous montrera comment configurer le cluster MySQL via Percona XtraDB Cluster (PXC) sur les serveurs Rocky Linux 9. Vous installerez Percona XtraDB Cluster sur plusieurs systèmes Rocky Linux et configurerez Percona XtraDB Cluster pour activer la réplication de base de données entre les serveurs, puis vous vérifierez également en insérant des données sur un serveur et en vérifiant les données d'un autre serveur.
Prérequis
Pour compléter ce guide, vous devez disposer d'au moins deux serveurs exécutant Rocky Linux 9. Vous devez également disposer d'un utilisateur non root doté des privilèges d'administrateur sudo/root sur tous les serveurs. Et également SELinux fonctionnera en mode permissif.
Pour cet exemple, trois serveurs Rocky Linux 9 seront utilisés. Ci-dessous les détails des serveurs :
Hostname IP Address
--------------------------
pxc-rock01 192.168.5.80
pxc-rock02 192.168.5.81
pxc-rock03 192.168.5.82
Si toutes les conditions requises sont prêtes, vous pouvez démarrer l'installation du cluster Percona XtraDB.
Configuration de /etc/hosts et Firewalld
Dans cette première étape, vous configurerez le fichier /etc/hosts et le pare-feu sur tous les serveurs Rocky Linux. Vous modifierez le fichier /etc/hosts et ajouterez des détails sur les adresses IP et le nom d'hôte pour chaque serveur, puis vous ajouterez quelques ports qui seront utilisés par Percona XtraDB Cluster.
Vous trouverez ci-dessous les détails des ports du cluster Percona XtraDB que vous devez ouvrir sur votre pare-feu.
Ports Used for
---------------------------
3306 MySQL client connection and SST (State Snapshot Transfer)
4444 SST via Percona XtraBackup
4567 write-set replication traffic (over TCP) and multicast replication (over TCP and UDP)
4568 IST (Incremental State Transfer)
Pour commencer, ouvrez le fichier '/etc/hosts' à l'aide de la commande nano editor suivante.
sudo nano /etc/hosts
Ajoutez des détails sur le nom d'hôte et l'adresse IP qui seront utilisés pour le cluster. Assurez-vous de modifier les détails avec votre environnement de serveur.
192.168.5.80 pxc-rock01
192.168.5.81 pxc-rock02
192.168.5.82 pxc-rock03
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, entrez la commande « firewall-cmd » suivante pour ajouter votre sous-réseau de réseau interne comme source fiable. Avec cela, seuls les réseaux de confiance seront autorisés à accéder à tous les serveurs.
sudo firewall-cmd --permanent --add-source=192.168.5.0/24
Ouvrez maintenant certains ports pour Percona XtraDB Cluster et rechargez le pare-feu pour appliquer les modifications. Un résultat « succès » confirme que la nouvelle règle a été ajoutée à firewalld.
sudo firewall-cmd --add-port={3306/tcp,4444/tcp,4567/tcp,4567/udp,4568/tcp} --permanent
sudo firewall-cmd --reload
Enfin, entrez la commande 'firewall-cmd' suivante pour vérifier la liste des règles activées sur firewalld.
sudo firewall-cmd --list-all
La sortie suivante sera imprimée sur le shell de votre terminal. Assurez-vous que tous les ports qui seront utilisés par le cluster Percona XtraDB sont répertoriés.
Une fois le fichier /etc/hosts et firewalld configurés, vous installerez ensuite les packages Percona XtraDB Cluster.
Installation du cluster Percona XtraDB
Dans sa section, vous installerez Percona XtraDB Cluster sur tous vos serveurs Rocky Linux. Vous allez configurer le référentiel Percona XtraDB, puis installer le package Percona XtraDB Cluster. À la fin également, vous modifierez le mot de passe root MySQL par défaut sur tous vos serveurs.
Tout d’abord, vous devez ajouter et activer le référentiel EPEL. Entrez la commande « dnf install » suivante pour ajouter le référentiel EPEL.
sudo dnf install epel-release
Entrez maintenant la commande suivante pour installer l'application de version Percona. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer. Ce package fournit un outil de ligne de commande « percona-release » qui peut être utilisé pour gérer les référentiels Percona.
sudo dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y
Ensuite, exécutez la commande « percona-release » suivante pour activer le référentiel Percona XtraDB Cluster v8.0. Au cours du processus, vous serez invité à désactiver le référentiel MySQL par défaut, à saisir y pour confirmer et à appuyer sur ENTRÉE pour continuer.
sudo percona-release setup pxc-80
Un message de sortie « Tout est terminé ! » confirme que l'opération a réussi.
Vérifiez la liste des référentiels activés en entrant la commande « dnf repolist » ci-dessous. Vous devriez voir le référentiel « pxc-80-release » activé et répertorié sur la sortie avec quelques référentiels supplémentaires tels que « prel-release » et « tools-release ».
sudo dnf repolist
Entrez maintenant la commande 'dnf install' suivante pour installer le package Percona XtraDB Cluster. Saisissez y lorsque vous êtes invité à confirmer et appuyez sur ENTRÉE pour continuer.
sudo dnf install percona-xtradb-cluster
Lorsque vous êtes invité à accepter la clé Percona GPG, saisissez y et appuyez sur ENTRÉE pour confirmer.
Une fois Percona XtraDB Cluster installé, entrez l'utilitaire de commande systemctl suivant pour démarrer et activer le service MySQL.
sudo systemctl start mysql
sudo systemctl enable mysql
Vérifiez maintenant l'état du service MySQL à l'aide de la commande ci-dessous. Une sortie 'active (running)' confirme que MySQL est en cours d'exécution. Et la sortie '..; activé..' confirme que MySQL démarrera automatiquement au démarrage du système.
sudo systemctl status mysql
Une fois le cluster Percona XtraDB en cours d'exécution, vous allez maintenant modifier le mot de passe root par défaut pour tous vos serveurs MySQL.
Entrez la commande suivante pour vérifier le mot de passe généré par défaut pour votre utilisateur root MySQL. Copiez le mot de passe root MySQL par défaut.
sudo grep 'temporary password' /var/log/mysqld.log
Ensuite, connectez-vous au shell MySQL via la commande 'mysql' ci-dessous. Lorsque vous êtes invité à saisir le mot de passe, collez le mot de passe MySQL par défaut que vous avez copié.
sudo mysql -u root -p
Une fois connecté, vous devriez voir le shell MySQL avec une invite comme celle-ci « mysql> ».
Entrez la requête MySQL suivante pour modifier le mot de passe par défaut de l'utilisateur root MySQL, quitter et quitter.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewP4ssr00tMySQL';
quit
Enfin, avant de configurer le cluster Percona XtraDB, vous devez arrêter le service MySQL. Entrez l'utilitaire de commande 'systemctl' suivant pour arrêter le service MySQL sur tous les serveurs.
sudo systemctl stop mysql
Une fois le cluster Percona XtraDB installé, la configuration racine MySQL et le service MySQL arrêté, vous serez maintenant prêt à configurer et installer le cluster.
Copier les certificats SSL/TLS
Depuis le Percona XtraDB Cluster 8.0, la connexion par défaut entre les serveurs du cluster doit être chiffrée. Pour configurer le chiffrement entre les serveurs, vous devez disposer des mêmes certificats SSL/TLS sur tous les serveurs.
Dans cette section, vous allez copier les certificats SSL/TLS générés par défaut du serveur 'pxc-rock01' vers le serveur 'pxc-rock02' et 'pxc- serveurs rock03.
Sur le serveur « pxc-rock01 », entrez la commande suivante pour vérifier les certificats disponibles. Avec cela, vous devez copier les fichiers de certificat 'server-cert.pem', 'server-key.pem' et 'ca.pem. ' aux serveurs pxc-rock02 et pxc-rock03.
ls /var/lib/mysql/*.pem
Déplacez votre répertoire de travail vers '/var/lib/mysql'.
cd /var/lib/mysql
Entrez maintenant la commande scp suivante pour copier les fichiers de certificat SSL/TLS sur les serveurs pxc-rock02 et pxc-rock03.
scp server-key.pem server-cert.pem ca.pem root@pxc-rock02:/var/lib/mysql
scp server-key.pem server-cert.pem ca.pem root@pxc-rock03:/var/lib/mysql
Vous trouverez ci-dessous le résultat du processus de copie des certificats SSL/TLS du pxc-rock01 vers le serveur pxc-rock02.
Et ci-dessous se trouve le résultat lors du processus de copie des certificats SSL/TLS du pxc-rock01 vers le serveur pxc-rock03.
Initialiser le cluster Percona XtraDB sur pxc-rock01
Tout d'abord, vous initialiserez le cluster Percona XtraDB à partir du serveur pxc-rock01. Pour y parvenir, vous devrez modifier le fichier de configuration du serveur MySQL '/etc/my.cnf', puis démarrer le service 'mysql@bootstrap'.
Ouvrez le fichier de configuration MySQL '/etc/my.cnf' à l'aide de la commande suivante de l'éditeur nano.
sudo nano /etc/my.cnf
Ajoutez la liste des adresses IP de votre serveur Percona XtraDB Cluster au paramètre 'wsrep_cluster_address' et ajoutez le paramètre 'default_storage_engine=InnoDB'.
# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82
# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB
Remplacez le "wsrep_node_address" par l'adresse IP actuelle du serveur, le "wsrep_node_name" par le nom d'hôte du système et le "wsrep_cluster_name" par le nom. de votre cluster le sera.
# Node 1 address
wsrep_node_address=192.168.5.80
# Node Name
wsrep_node_name=pxc-rock01
# Cluster name
wsrep_cluster_name=pxc-cluster
Enfin, en bas de la ligne, ajoutez la configuration suivante pour activer une connexion SSL/TLS sécurisée entre les serveurs du cluster Percona XtraDB et la connexion sst.
# enable ssl/tls connection
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, entrez l'utilitaire de commande systemctl suivant pour démarrer le service « mysql@bootstrap » et initialiser le premier serveur de cluster Percona XtraDB.
systemctl start [email
Pour vérifier et garantir le succès de l'initialisation du cluster Percona XtraDB, vous devez vous connecter au shell MySQL et vérifier l'état « wsrep% ».
Entrez la commande 'mysql' suivante pour vous connecter au serveur MySQL en tant qu'utilisateur 'root'. Saisissez votre nouveau mot de passe root MySQL lorsque vous y êtes invité.
sudo mysql -u root -p
Une fois connecté, saisissez la requête suivante pour vérifier le statut détaillé de « wsrep% ».
SHOW STATUS LIKE 'wsrep%';
Vous devriez recevoir un résultat comme celui-ci - Dans la section 'wsrep_cluster_size', vous verrez la valeur '1', ce qui signifie que le cluster Percona XtraDB est initialisé avec 1 serveur. Vous obtiendrez également les adresses IP des serveurs dans la section « wsrep_incoming_address ». Enfin, le nœud est dans l'état Synchronisé, ce qui signifie qu'il est entièrement connecté et prêt pour la réplication en écriture.
Avec cela, le premier serveur du serveur Percona XtraDB Cluster 'pxc-rock01' est initialisé. À l'étape suivante, vous ajouterez les serveurs « pxc-rock02 » et « pxc-rock03 » au cluster.
Ajout du serveur pxc-rock02 au cluster Percona XtraDB
Une fois le premier cluster Percona XtraDb initialisé, vous allez maintenant ajouter le serveur pxc-rock02 au cluster. La manière d'ajouter un serveur à Percona XtraDB Cluster est similaire au processus d'initialisation, vous devez modifier le fichier de configuration du serveur MySQL par défaut '/etc/my.cnf' et définir la liste des serveurs pour le cluster, puis démarrez le service MySQL normalement.
Entrez la commande suivante de l'éditeur nano pour ouvrir le fichier de configuration MySQL '/etc/my.cnf'.
sudo nano /etc/my.cnf
Ajoutez la liste des adresses IP de votre serveur Percona XtraDB Cluster au paramètre 'wsrep_cluster_address' et ajoutez le paramètre 'default_storage_engine=InnoDB'.
# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82
# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB
Remplacez le "wsrep_node_address" par l'adresse IP actuelle du serveur, le "wsrep_node_name" par le nom d'hôte du système et le "wsrep_cluster_name" par le nom. de votre cluster le sera.
# Node #2 address
wsrep_node_address=192.168.5.81
# Node Name
wsrep_node_name=pxc-rock02
# Cluster name
wsrep_cluster_name=pxc-cluster
Enfin, en bas de la ligne, ajoutez la configuration suivante pour activer une connexion SSL/TLS sécurisée entre les serveurs du cluster Percona XtraDB et la connexion sst.
# enable ssl/tls connection
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, entrez l'utilitaire de commande systemctl suivant pour démarrer le service MySQL. Cela permettra également au serveur « pxc-rock02 » de rejoindre le cluster Percona XtraDB initialisé.
sudo systemctl start mysql
Enfin, pour vous assurer que le serveurpxc-rock02 est ajouté au cluster Percona XtraDB, vous devez vous connecter au shell MySQL en tant qu'utilisateur root via la commande suivante. Lorsque vous y êtes invité, saisissez votre mot de passe root MySQL.
sudo mysql -u root -p
Saisissez maintenant la requête suivante pour vérifier le statut détaillé de « wsrep% ».
SHOW STATUS LIKE 'wsrep%';
Vous devriez recevoir un résultat comme celui-ci : dans la section « wsrep_cluster_size », vous verrez la valeur « 2 », ce qui signifie qu'il y a deux serveurs disponibles sur le cluster Percona XtraDB. Vous obtiendrez également les adresses IP des serveurs dans la section « wsrep_incoming_address », qui sont les adresses IP des serveurs pxc-rock01 et pxc-rock02. Enfin, le nœud est dans l'état Synchronisé, ce qui signifie qu'il est entièrement connecté et prêt pour la réplication en écriture.
Ajout du serveur pxc-rock03 au cluster Percona XtraDB
Dans cette section, vous allez maintenant ajouter le troisième serveur pxc-rock03 au cluster Percona XtraDB.
Ouvrez le fichier de configuration '/etc/my.cnf' à l'aide de la commande suivante de l'éditeur nano.
sudo nano /etc/my.cnf
Ajoutez la liste des adresses IP de votre serveur Percona XtraDB Cluster au paramètre 'wsrep_cluster_address' et ajoutez le paramètre 'default_storage_engine=InnoDB'.
# Cluster connection URL contains the IPs of pxc-rock01, pxc-rock02, and pxc-rock03
wsrep_cluster_address=gcomm://192.168.5.80,192.168.5.81,192.168.5.82
# Using the MyISAM storage engine is not recommended.
default_storage_engine=InnoDB
Remplacez "wsrep_node_address" par l'adresse IP actuelle du serveur, "wsrep_node_name" par le nom d'hôte du système et "wsrep_cluster_name" par le nom. de votre cluster le sera.
# Node #3 address
wsrep_node_address=192.168.5.82
# Node Name
wsrep_node_name=pxc-rock02
# Cluster name
wsrep_cluster_name=pxc-cluster
Enfin, en bas de la ligne, ajoutez la configuration suivante pour activer une connexion SSL/TLS sécurisée entre les serveurs du cluster Percona XtraDB et la connexion sst.
# enable ssl/tls connection
wsrep_provider_options="socket.ssl_key=server-key.pem;socket.ssl_cert=server-cert.pem;socket.ssl_ca=ca.pem"
[sst]
encrypt=4
ssl-key=server-key.pem
ssl-ca=ca.pem
ssl-cert=server-cert.pem
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, entrez l'utilitaire de commande systemctl suivant pour démarrer le service MySQL et joignez le serveur actuel pxc-rock03 au cluster Percona XtraDB.
sudo systemctl start mysql
Enfin, entrez la commande mysql suivante pour vous connecter au shell MySQL et vérifier l'état « wsrep% ». Lorsque vous y êtes invité, saisissez votre mot de passe root MySQL.
sudo mysql -u root -p
Saisissez maintenant la requête suivante pour vérifier le statut détaillé de « wsrep% ».
SHOW STATUS LIKE 'wsrep%';
Vous devriez recevoir un résultat comme celui-ci : dans la section « wsrep_cluster_size », vous verrez la valeur « 3 », ce qui signifie qu'il y a trois serveurs disponibles sur le cluster Percona XtraDB. Vous obtiendrez également les adresses IP du serveur dans la section « wsrep_incoming_address », qui sont pxc-rock01, pxc-rock02 et pxc-rock03. adresses IP du serveur. Enfin, le nœud est dans l'état Synchronisé, ce qui signifie qu'il est entièrement connecté et prêt pour la réplication en écriture.
À ce stade, vous avez maintenant configuré Percona XtraDB Cluster avec trois serveurs Rocky Linux 9 différents. Et avec cela, la réplication de la base de données devrait fonctionner entre les serveurs du cluster Percona XtraDB. Dans l'étape suivante, vous vérifierez la réplication de votre base de données entre plusieurs serveurs.
Test de la réplication de la base de données
Dans cette section, vous vérifierez la réplication de la base de données sur Percona XtraDB Clustrer. Cela garantira que votre installation est réussie et terminée.
Tout d'abord, connectez-vous au shell MySQL à partir du serveur pxc-rock02 et créez une nouvelle base de données appelée « testdb ».
sudo mysql -u root -p
CREATE DATABASE testdb;
Passez maintenant au serveur pxc-rock03, connectez-vous au shell MySQL via un utilisateur root, puis modifiez la base de données de travail par défaut en 'testdb'.
sudo mysql -u root -p
USE testdb;
Saisissez la requête suivante pour créer une nouvelle table appelée « table1 ».
CREATE TABLE table1 (node_id INT PRIMARY KEY, node_name VARCHAR(30));
Ensuite, accédez au serveur pxc-rock01, connectez-vous au shell MySQL, puis insérez de nouvelles données dans la base de données 'testdb' via l'option 'INSERT' requête ci-dessous.
sudo mysql -u root -p
INSERT INTO testdb.table1 VALUES (1, 'pxc-rock01');
INSERT INTO testdb.table1 VALUES (2, 'pxc-rock02');
INSERT INTO testdb.table1 VALUES (3, 'pxc-rock03');
Une fois les données ajoutées, revenez sur le serveur pxc-rock02 et saisissez la requête SELECT ci-dessous pour récupérer toutes les données disponibles sur la base de données 'testdb' et la table 'table1'.
SELECT * FROM testdb.table1;
Si la réplication réussit, vos données insérées devraient être disponibles sur le serveur pxc-rock02. Vos données seront stockées sur tous les serveurs du cluster Percona XtraDB.
Cela confirme que l'installation du cluster Percona XtraDB sur les serveurs Rocky Linux 9 a réussi.
Conclusion
Vous avez installé et déployé Percona XtraDB Cluster dans ce guide sur trois serveurs Rocky Linux 9. Vous avez appris à installer Percona XtraDB Cluster, à sécuriser le déploiement via firewalld, à initialiser le cluster et également à ajouter des nœuds au cluster.
En plus de cela, vous avez également sécurisé l'installation de Percona XtraDB Cluster en chiffrant le trafic entre tous les serveurs à l'aide de certificats SSL/TLS et de l'option « pxc-encrypt-cluster-traffic », qui est activée par défaut sur Percona XtraDB Cluster 8.0.
Avec cela, vous pouvez ajouter plus de serveurs à votre cluster Percona XtraDB actuel en suivant les étapes que vous avez apprises lors de l'ajout de serveurs pxc-rock02 et pxc-rock03. Vous pouvez également configurer l'équilibrage de charge et la haute disponibilité avec des applications tierces telles que ProxySQL et HAPROXY. Pour en savoir plus, visitez la documentation officielle du cluster Percona XtraDB.