MySQL Replikasyon Durumunu Kontrol Etmek
Eğer, Mysql sereverlarınız arasında master to master çalışan bir replikasyon uygulamanız varsa sürekli gözlem altında tutmak epey iyi bir fikirdir. Zira db replikasyon işleri, osmaniçin oldum olası pis işler statüsündedir.
İşte nasıl yapıldığı:
Öncelikle kontrol etmek istediğiniz Mysql serverda bir kullanıcı açıyoruz.
CREATE USER 'check'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
Sonrasında, bu user için gerekli hak hukuk düzenlemelerini yapıyoruz.
GRANT SUPER , REPLICATION CLIENT ON * . * TO 'check'@'localhost' IDENTIFIED BY 'YOURPASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
Mysql user işleminden sonra, /root dizini altında aşağıdaki satırları içeren bir sh scripti oluşturup, kendimize göre düzenliyoruz.
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ###check if already notified### cd /root if [ -f slave_problem.txt ]; then exit 1; fi ###Check if slave running### ( echo "show slave status G;" ) | mysql -u check -pYOURPASSWORD 2>&1 | grep "Slave_IO_Running: No" if [ "$?" -ne "1" ]; then echo "Replication failed" > /root/slave_problem.txt fi ###Send notification if replication down### cd /root if [ -f slave_problem.txt ]; then mail -s "Replication problem" admin@example.com < /root/slave_problem.txt fi
Scripte gerekli hakları verip uygun bir cron girdisi ile çalışmasını sağlarsanız, replikasyon problemlerinde belirttiğiniz e-mail adresine alert gönderilmesini sağlayabilirsiniz.
Kaynak: http://www.howtoforge.com/script-to-check-if-mysql-master-master-replication-is-working-correctly