Épreuve de Pratique des Techniques Informatiques Lycée Cassin - Frey Compte rendu d’Activité Session 2011 Fiche n°5 Nom et prénom : SKANDARAJAH Thanushan Réplication de bases de données MySQL sous Windows Contexte : Une entreprise X a besoin de répliquer sa base de données pour des raisons de performances et de sécurité. Pour cela elle veut répliquer sa base de données MySQL sur une autre machine. Objectifs : Mettre en place une réplication de base de données automatisée d’un serveur maître à un serveur esclave. C15 C24 C37 Compétences mises en œuvre pour la réalisation de cette activité Identifier les éléments de coûts, mesurer ces coûts pour un réseau local, une liaison à distance Installer un SGBD Administrer une base de données Matériel : -2 postes sous Windows Conditions de réalisations Logiciel : -Windows 7 -MySQL 5.1.32 -VirtualBox Durée : 7h Autres contraintes et difficultés : Description de l'activité réalisée Situation initiale : Un seul serveur gère les requêtes donc on a une surcharge du SGBD, dégradation du temps de réponse, faible tolérance aux pannes Situation finale : Equilibrage de charge du travail, meilleur temps de réponse, disponibilité d’une réplique même lorsque la base de référence n’est pas disponible et une probabilité de panne très faible. Outils utilisés : MySQL5.1.32 VirtualBox Académie de Strasbourg Page 1 Épreuve de Pratique des Techniques Informatiques Session 2011 Déroulement de l’activité : I- Coût et matériel II- Quand répliquer ? III- Mise en place du serveur maître IV- Mise en place du serveur esclave V- Synchroniser les serveurs VI- Test de la réplication VII- Contraintes I- Afin de réaliser une réplication de base de données il faut disposer au minimum de 2 postes, un maître et un autre esclave. Comparé à une mise en place d’une base de données sans réplication, celui avec une réplication a un coût plus élevé mais donne de meilleures performances par la suite. II. Une réplication doit se dérouler quand le réseau est dans une tranche d’horaire ou les requêtes sont moindres. Pour les sites de e-commerce leur site doit être accessible 24/7 car les clients affluent à n’importe qu’elle heure. Pour cela il faut prévoir des jours précis et des heures précises dédiées à la réplication de la base de données et mettre le site en maintenance. III. Après avoir installé MySQL5.1.32 nous aller créer une base nommée <réplication>. Pour la mise en place du serveur maître, nous allons créer les tables et les remplir à l’aide d’un fichier qu’on va importer en format ********.sql. La base servira de test pour avoir un aperçu de la réplication plus tard. Nous allons maintenant créer un compte réplication avec le droit <replication slave> et lui attribué un mot de passe. On a juste à importer un fichier en .sql qui contient les requêtes pour faire la création du compte et pour que le fichier my.ini soit créé. Dans le fichier my.ini, il faudra ajouter quelques lignes comme : server-id= ** log-bin=nom_journal →Activer le log binaire. Le serveur enregistre toutes les déclarations que la base de données a changées dans le log binaire, qui est utilisé pour la sauvegarde et la réplication binlog-do-db=replication →Indique au maître qu'il doit enregistrer les modifications si la base courante est celui-ci sélectionné. Toutes les autres bases de données qui ne sont pas explicitement mentionnées sont ignorées. language=french →Permet d’avoir certains message d’erreur en français. IV. Le serveur esclave est juste une copie intégrale du maître, il faut installer MySql comme pour le serveur maître et copier le dossier de la base de données sur celuici, normalement c’est un dossier caché se trouvant sur le disque racine. Mais avant de copier il faut bloquer les mises à jour sur le serveur maître avec la commande FLUSH TABLES WITH READ LOCK. Académie de Strasbourg Page 2 Épreuve de Pratique des Techniques Informatiques Session 2011 V. Pour que la réplication marche, il faut avoir sur le serveur esclave le nom et contenu à l’identique du maître. Je bloque les mises à jour sur le serveur maître, je copie le dossier se trouvant à la racine du maître et je le colle dans la racine du serveur esclave, ne surtout pas oublier d’arrêter le serveur MySql avant de copier et coller avec la commande <NET STOP MySql >. A la fin de la procédure il suffit de redémarrer les serveurs avec la commande <NET START MySql> VI. Après avoir fini d’installer et configuré la réplication, je fais une coupure du réseau et je regarde ce qu’il se passe. Je remets le réseau en marche et je regarde si la réplication se produit ou non. VII. La réplication MySQL est de type unidirectionnelle c'est-à-dire du maître vers l’esclave et asynchrone c'est-à-dire un délai entre les mises à jour sur le maître et la répercussion sur le serveur esclave. Une réplication n’est en aucun cas une sauvegarde car toute modification de la base de données est faite en temps réel. Analyse des résultats obtenus Objectif atteint : La réplication se passe parfaitement du serveur maître au serveur esclave, toute la base de donnée concerné est copié à l’identique sur le serveur esclave. Bilan de l’activité : Vérifier toujours la connectivité entre le maître et l’esclave, mettre le port de communication ouvert dans le pare-feu. Faire les modifications seulement sur le serveur maître car c’est une réplication unidirectionnel. Académie de Strasbourg Page 3