Solutions
Exercice 1 : Configurer une réplication Master-Slave
Solution :
Configurer le Master :
Éditez le fichier de configuration MySQL (
my.cnf
) sur le master et activez les logs binaires :Redémarrez MySQL après avoir modifié le fichier de configuration :
Créez un utilisateur pour la réplication et donnez-lui les permissions nécessaires :
Obtenez l’état du master pour configurer le slave :
Vous verrez quelque chose comme :
Configurer le Slave :
Sur le slave, modifiez le fichier de configuration
my.cnf
:Redémarrez MySQL sur le slave :
Connectez le slave au master avec la commande suivante (remplacez les valeurs par celles obtenues sur le master) :
Démarrez la réplication sur le slave :
Si tout est configuré correctement, vous devriez voir
Slave_IO_Running: Yes
etSlave_SQL_Running: Yes
dans la sortie deSHOW SLAVE STATUS\G
.
Exercice 2 : Configurer une réplication Master-Master
Solution :
Configurer le serveur Master 1 :
Éditez le fichier de configuration MySQL pour activer les logs binaires et définir un
server-id
unique.Redémarrez MySQL :
Créez un utilisateur pour la réplication :
Obtenez l’état du master :
Configurer le serveur Master 2 :
Répétez la même procédure sur le serveur Master 2 en utilisant un identifiant de serveur différent dans
my.cnf
:Créez un utilisateur de réplication et redémarrez MySQL.
Mettre en place la réplication bidirectionnelle :
Sur le Master 1, configurez la réplication en direction du Master 2 en utilisant les informations du
SHOW MASTER STATUS
du Master 2.Démarrez la réplication sur le Master 1 :
Sur le Master 2, configurez la réplication en direction du Master 1 :
Démarrez la réplication sur le Master 2 :
Test :
Effectuez une modification sur l’un des serveurs (par exemple, une insertion dans une table).
Vérifiez si cette modification a été répliquée sur l’autre serveur en exécutant une requête de sélection.
Exercice 3 : Implémenter un système de sharding rudimentaire
Solution :
Dans cet exemple, nous allons diviser une base de données de clients en deux shards, chaque shard étant sur un serveur MySQL différent. Le sharding sera effectué manuellement via une logique de répartition en fonction de l'ID du client (les clients avec un ID pair iront sur le Shard 1 et ceux avec un ID impair sur le Shard 2).
Préparation des shards :
Créez deux instances MySQL sur différents serveurs.
Sur le Shard 1, créez une table
clients
:Sur le Shard 2, créez la même table
clients
:
Insérer des données dans les shards :
Définissez une logique au niveau de votre application pour répartir les données entre les shards. Voici un exemple en pseudo-code :
Requête sur les shards :
Pour interroger les données, utilisez la même logique pour rediriger les requêtes vers le shard approprié.
Vous pouvez également gérer les requêtes globales en agrégeant les résultats des deux shards si nécessaire.
Last updated