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

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir