Nous sommes dans la situation ou il faut redémarrer le serveur maitre
connection ssh sur les deux serveurs:
sur le maitre
#ssh maitre@IP
Arrêt du service heartbeat sur les deux serveurs
# service heartbeat stop
ou
#/etc/init.d/heartbeat stop
Même chose sur l’esclave
A partir de la, plus personne n’a accès à l’application web
MySql:
on va ce placer dans votre homedir sur les deux serveurs.
#cd /home
sur le serveur esclave on va récuperer la base mysql et la copier sur le serveur maitre:
[esclave]# mysqldump -u root -pMDP votre_bdd > votre_bdd.sql
[esclave]# scp votre_bdd.sql maitre@IP:/home
Passons sur le serveur maitre:
[maitre]#cd /home
on inject la la base:
[maitre]# mysql -u root -pMDP votre_bdd.sql > votre_bdd.sql
Maintenant, on va activer la replication de la base MySql du serveur maitre sur l’esclave: sur le serveur maitre: tout d’abord on va se connecter sur la base
[maitre]# mysql -u root -pMDP
Puis on bloque la base en lecture seul
mysql>: FLUSH TABLES WITH READ LOCK;
On repère la position de la base:
mysql > SHOW MASTER STATUS;
+---------------------+------------+---------------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------------+------------+---------------------+--
| mysql-bin.000003 | 73 | test,bar | foo,manual,mysql |
+---------------------+------------+---------------------------+
1 row in set (0.06 sec)
et on note:
mysql-bin.000003 ← le log bin à utiliser
73 ← la position du log
évidemment à adpater suivant le cas.
sur le serveur esclave:
on se connect aussi à la base mysql
[esclave]# mysql -u root -pMDP
on stop la réplication en cours
mysql>stop slave;
on fait une RAZ de la réplication
mysql>reset slave;
On va positioner le serveur esclave comme le maitre:
mysql> CHANGE MASTER TO MASTER_HOST = 'IP', MASTER_USER = 'repli', MASTER_PASSWORD = 'repli', MASTER_LOG_FILE = 'mysql-bin.000003', MASTER_LOG_POS = 73;
on démarre la réplication
mysql> start slave;
on vérifie qu’on a pas d’erreur
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.94.8.58
Master_User: repli
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 73
Relay_Log_File: GLPI_esclave-relay-bin.000024
Relay_Log_Pos: 660186
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
******
Last_Errno: 0
Last_Error:
******
Seconds_Behind_Master: 0
1 row in set (0.00 sec)
on se déconnect de mysql
mysql>exit;
sur le serveur maitre on dévérouille l’écriture sur la base
mysql> UNLOCK TABLES;
on se déconnect de mysql
mysql>exit;
et pour finir on lance le script de lancement automatique des services heartbeat/mon/http/myslq:
[maitre]#./startHA
sur le serveur maitre c’est le même script sauf le service Mon en moins:
[sclave]#./startHA
on vérifie que l’IP virtuel est actif sur le serveur maitre
[maitre]#ifconfig
eth0:0 Link encap:Ethernet HWaddr 00:22:19:D7:73:48
inet adr:10.94.8.56 Bcast:10.94.15.255 Masque:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
Interruption:16
et dans le navigateur firefox, on fait un test de connection:
http://appliweb.com
SI TABLE CRASHED :
d’après le log on répère la table dite crashed
connexion à mysql :
#mysql -u root -pMDP ;
on selectionne la base
mysql>use votre_bdd ;
on répare la table
mysql>repair table nomdelatable ;
on sort de mysql
mysql>exit;