MySQL fournit une réplication asynchrone dans lequel un serveur de base de données maître est répliqué sur un ou plusieurs serveur esclave. Vous pouvez configurer la réplication pour inclure toutes ou certaines bases de données ou uniquement les tableaux sélectionnés. La réplication vous permet de répartir la charge de travail sur plusieurs esclaves , d'effectuer des sauvegardes sur les esclaves sans corrompre le maître, effectuez l'analyse des esclaves sans affecter la performance du maître et de distribuer les données sur de longues distances. Les bases
réplication
est effectuée à travers les logs binaires . Ces journaux contiennent toutes les déclarations que les données de mise à jour , y compris des énoncés qui pourraient potentiellement mettre à jour les données, mais n'en ont pas. Le serveur maître enregistre toutes les instructions , et le serveur est configuré pour recevoir une copie du journal . Les esclaves peuvent être configurés pour exécuter l'ensemble du journal ou seulement des parties de celui-ci (comme les seuls événements sur certaines bases de données ) .
Les informations de réplication sont stockées dans un fichier appelé " master.info , " qui est créé avec le " CHANGE MASTER TO" déclaration. Ce fichier contient des informations sur le nom d'hôte du maître, le nom du fichier de log et la position à lire dans le fichier journal.
La réplication utilisateur
L'esclave se connecter au maître en utilisant un compte MySQL standard avec la «réplication esclave " privilège. Le nom d'utilisateur et mot de passe pour ce compte seront stockées sous forme d'une entrée de texte en clair dans le fichier " master.info " , il est donc préférable de créer un utilisateur qui ne dispose que des privilèges de réplication.
< br > fichiers de configuration
le maître doit avoir le log binaire activé pour l'échange de données . Il doit également être configuré avec une valeur server-id unique. Ces valeurs sont définies dans le fichier " my.cnf " qui est lu au démarrage du serveur . Les valeurs sont placées dans la section « [mysqld] " avec la syntaxe suivante:
[mysqld] log-bin = mysql- binserver -id = 1
L'esclave doit également être configuré avec un " server-id " unique dans le fichier " my.cnf " . Le log binaire n'a pas besoin d' être activé , mais il peut être utile pour les sauvegardes de données et de reprise après sinistre.
Réplication
Pour que la réplication démarre pas correctement, supprimez d'abord le maître log binaire avec les « FLUSH TABLES WITH verrou en lecture ; « déclaration . Ensuite, utilisez l'instruction " SHOW MASTER STATUS " pour déterminer le nom du fichier de log et la position de décalage.
Créer un instantané des données sur la base de données principale avec l'utilitaire " mysqldump " . De la commande du système d'exploitation , tapez " mysqldump - all -databases - lock -all- tables > dbdump.db " . Puis, à partir du client MySQL , tapez les " UNLOCK TABLES ; « déclaration de libérer le verrou en lecture . Copiez le fichier " dbdump.db " pour chacun des esclaves avec la commande "mysql < dbdump.db " issu de l'invite de commande du système d'exploitation .
Enfin, mettre en place les esclaves à se connecter au maître avec l' suivant la commande :
CHANGE MASTER TO MASTER_HOST = ' master_host_name », MASTER_USER =' replication_user_name », MASTER_PASSWORD = ' replication_password », MASTER_LOG_FILE =' recorded_log_file_name », MASTER_LOG_POS = recorded_log_position ;
Changer les valeurs des variables pour refléter les informations de votre système.