mysql_replication_init.sh 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/sh
  2. . ./params.inc
  3. # Première synchro (pour gagner du temps après)
  4. echo "MASTER : Première synchro locale (master=>backup)"
  5. rsync -av $db_folder/ $db_folder_backup/
  6. echo "SLAVE : Première synchro distante (backup=>recup)"
  7. rsync -avz $db_folder_backup/ root@$slave_server:$db_folder_backup/
  8. # Seconde synchro (pour gagner du temps après)
  9. echo "MASTER : Seconde synchro locale (master=>backup)"
  10. rsync -av $db_folder/ $db_folder_backup/
  11. #echo "SLAVE : Seconde synchro distante (backup=>recup)"
  12. #rsync -avz $db_folder_backup/ root@$slave_server:$db_folder_backup/
  13. echo "MASTER : Recup master status (obsolète puisque reset master+slave)"
  14. echo "--" >> master_status
  15. echo `date` >> master_status
  16. mysql -u root -p$db_password -e "SHOW MASTER STATUS;" >> master_status
  17. # Flush and Lock tables
  18. # Reset Master Replication
  19. echo "MASTER : FLUSH, LOCK TABLES, RESET Replication"
  20. mysql -u root -p$db_password -e "FLUSH TABLES WITH READ LOCK; RESET MASTER;"
  21. # ATTENTION ! Bien noter l'�tat de la réplication maitre ! Dans master_status ;-)
  22. # Stop Master MySQL
  23. echo "MASTER : STOP Mysql"
  24. /etc/init.d/mysql stop
  25. # Obligatoire de facon a recuperer proprement les données en cache des tables innodb
  26. # Stop et reinit replication slave
  27. echo "SLAVE : Reset Replication"
  28. ssh root@$slave_server "mysql -u root -p$db_password -e \"STOP SLAVE;\""
  29. # Resynchro et finalisation copie base Master
  30. echo "MASTER : Synchro finale (vers backup/recup)"
  31. rsync -av $db_folder/ $db_folder_backup/
  32. # Suppression log binaire Master (pas forcement utile, normalement le reset master s'en est chargé)
  33. echo "MASTER : Suppression binlog"
  34. rm -f /var/log/mysql/mariadb-bin*
  35. # Start Master MySQL
  36. echo "MASTER : START Mysql"
  37. /etc/init.d/mysql start
  38. # Unlock tables
  39. echo "MASTER : UNLOCK TABLES"
  40. mysql -u root -p$db_password -e "UNLOCK TABLES;"
  41. # Start Slave
  42. echo "SLAVE : Synchro finale (backup=>recup)"
  43. rsync -avz $db_folder_backup/ root@$slave_server:$db_folder_backup/
  44. echo "SLAVE : Reset Replication"
  45. ssh root@$slave_server "mysql -u root -p$db_password -e \"RESET SLAVE;\""
  46. echo "SLAVE : STOP Mysql"
  47. ssh root@$slave_server "/etc/init.d/mysql stop"
  48. echo "SLAVE : Synchro finale (recup=>slave)"
  49. ssh root@$slave_server "rsync -av $db_folder_backup/ $db_folder/"
  50. echo "SLAVE : START Mysql"
  51. ssh root@$slave_server "/etc/init.d/mysql start"
  52. echo "SLAVE : Restart Replication"
  53. ssh root@$slave_server "mysql -u root -p$db_password -e \"CHANGE MASTER TO MASTER_HOST='$master_server', MASTER_USER='$master_replication_user', MASTER_PASSWORD='$master_replication_password', MASTER_LOG_FILE='mariadb-bin.000001', MASTER_LOG_POS=0; START SLAVE;\""