web-dev-qa-db-fra.com

Mettre en place une réplication pour les tables de myisam?

Avant de configurer une réplication dans MySQL, les données doivent d'abord être transférées à l'esclave.

Puisque les tables MyISAM peuvent être copiées en tant que fichiers. Serait-il correct de copier des fichiers myisam, .Myd .myi .frm, à l'esclave? Cela suffirait-il à démarrer la réplication?

7
Haluk

Depuis que tout est myisam, voici ce que vous devez faire

Étape 01) Configurez le maître pour être un maître de réplication

Si vous n'avez pas server-id défini dans /etc/my.cnf, ajoutez-en un

[mysqld]
server-id=1

et service mysql restart

Étape 02) Vérifiez la journalisation binaire sur le maître

Si la journalisation binaire est active sur le maître, faites ceci

RESET MASTER;

pour zaper toutes les journaux binaires et commencer fraîches.

Si la journalisation binaire n'est pas active, faites ceci

  • Ajouter log-bin=mysql-bin sous [mysqld] dans /etc/my.cnf
  • service mysql redémarrer

Étape 03) Copier /var/lib/mysql

Vous pouvez définir (( RSYNC Pour effectuer une copie d'octets-octets de force brute de vos tables myisam de /var/lib/mysql sur un serveur à /var/lib/mysql sur un autre serveur. Vous auriez effectué plusieurs rsyncs jusqu'à la dernière RSYNC, qui est très rapide. Ensuite, vous feriez une fermeture complète de MySQL et effectueriez une autre RSYNC. Démarrez MySQL sur le maître et l'esclave.

Étape 04) Créer un utilisateur de réplication sur l'esclave

GRANT REPLICATION CLIENT,REPLICATION SLAVE
ON *.* TO replicator@'PrivateIPofSlave' IDENTIFIED BY 'r3pl1cAt0r';

Étape 05) Configurer la réplication

Exécutez cette commande sur l'esclave

CHANGE MASTER TO
MASTER_Host='PrivateIPofMaster',
MASTER_PORT=3306,
MASTER_USER='replicator',
MASTER_PASSWORD='r3pl1cAt0r',
MASTER_LOG_FILE='XXXX',
MASTER_LOG_POS=YYYY;
START SLAVE;

Qu'est-ce que xxxx et yyyy ???

  • XXXX est le dernier fichier journal binaire au moment où vous effectuez finale RSYNC. Il y a une copie de ce fichier dans/var/lib/mysql sur l'esclave. Juste courir ls -l /var/lib/mysql/mysql-bin.0* Sur l'esclave et utilisez le dernier journal binaire.
  • YYYY est la position du dernier fichier journal binaire au moment où vous effectuez finale RSYNC. Fait intéressant, la position est également la variation du journal binaire. Juste courir ls -l /var/lib/mysql/mysql-bin.0* Sur l'esclave et prenez le dernier fichier du journal binaire pour être la position YYYY.

Étape 06) Vérifier la réplication

Lance ça

SHOW SLAVE STATUS\G

Si Slave_IO_Running est Yes et Slave_SQL_Running est Yes, félicitations que vous avez terminé !!!

J'ai écrit des messages similaires sur l'utilisation de rsync comme ceci:

7
RolandoMySQLDBA