Pb de Replication MySQL

Pb de Replication MySQL - SQL/NoSQL - Programmation

Marsh Posté le 04-06-2004 à 10:51:02    

Bonjour,
je suis sus Red Hat 9, Mysql 4.0.20
je souhaite faire de la réplication comme suit : j'écris toujours sur la base Master, et à chaque transaction le nouvel entegistrement est reporté sur le slave.
 
j'ai ajoute dans le fichier /etc/mycnf :
 
sur le master :
server-id = 1
log-bin = /var/log/mysql-bin.log
 
sur le slave :
server-id = 102
master-host
master-user
master-password
master-port
log-bin = /var/log/mysql-bin.log
 
 
Mes problèmes :
1/ chaque nouvelle modif sur le master n'est pas reportée sur le slave
2/ je ne vois nulle part mon fichier de log mysql-bin.log
3/ SHOW MASTER STATUS ne me renvoie rien ni sur le slave, ni sur le master
4/ Le fait de faire LOAD DATA FROM MASTER sur le slave réplique les enregistrements du master, donc ça c'est OK, mais c'est pas ce que je veux initialement !
 
Merci par avance

Reply

Marsh Posté le 04-06-2004 à 10:51:02   

Reply

Marsh Posté le 04-06-2004 à 14:02:27    

j'ai mysql 3.23 et j'avais justement ce probleme, a savoir les modifs sur le master ne sont pas reportees sur le slave
 
je te conseille donc de faire ces modifs dans tes my.cnf :
 
sur le master :
server-id = 1
log-bin
 
sur le slave :
server-id = 102
master-host
master-user
master-password
master-port
log-bin
 
j'ai donc juste vire la partie droite du parametre log-bin, et la replication s'est mise en route, et les logs sont enregistres dans /var/log

Reply

Marsh Posté le 07-06-2004 à 09:54:45    

j'ai compris pourquoi la réplication n'avait pas lieu :
c'était bien à cause du log binaire, mais parce que l'utilisateur n'avait les droits d'écrire dans /var/log. J'ai changé en
log-bin = /var/lib/mysql (datadir par défaut de mysql de mysql), et là ça marche !
Je pense que tu avais le même problème.
 
Donc la réplication marche (du Master -> Slave) quand les 2 PCs marchent.
 
Par contre, ce que je veux faire, c'est que si le MASTER s'arrête de fonctionner, je vais écrire sur le SLAVE (ça c'est OK), et quand le MASTER va revenir, je voudrais permuter les 2 configs. Je ne sais pas comment m'y prendre, car je ne comprends pas trop les interprétations de show master status et show slave status, qui sont différentes sur le slave et le master.
C'est que j'ai essayé de faire avec un CHANGE MASTER TO ...
et un LOAD DATA FROM MASTER

Reply

Marsh Posté le 10-06-2004 à 09:05:23    

pour la detection de panne, je suis en train de faire un script sur mon serveur dns qui detecte si le master est online ou non
 
s'il ne repond pas, faut faire un mysqladmin stop-slave sur le slave et rediriger l'adresse du master vers le slave
 
ensuite avec show master status (que tu fais sur le slave qui devient le nouveau master), tu dois noter la valeur des deux parametres file et position que tu dois reporter ensuite sur ton nouveau slave en faisant un :
 
mysql> change master to
mysql> master_log_pos=<position>,
mysql> master_log_file=<file_name>;
mysql> slave start;
mysql> show slave status;
=> t'indique si le slave est lance
 
edit : ne pas oublier de reconfigurer les my.cnf de chaque serveur, et de compresser et de copier ton /var/log/mysql de ton ancien slave - nouveau master sur ton ancien master - nouveau slave


Message édité par nartu elxe le 10-06-2004 à 09:20:59
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed