1
você pode usar o mk-heartbeat do maatkit
2
você pode ver o resultado de
show slave status;
é executado no escravo sql, mas o Seconds_Behind_Master é incompreensivelmente impreciso, às vezes.
3
você pode hackear sua própria solução, semelhante à minha - eu a uso para nagios monitorar e para alimentar munin gráficos mostrando 'segundos atrás do mestre'.
no servidor mestre eu tenho um trabalho cron simples:
* * * * * root /usr/local/bin/repltest
em que repltest é:
#!/bin/bash
start='date +%s'
d=0
while [ $d -lt 60 ] ; do
echo "update repl_test set t= NOW(); " |mysql --defaults-file=/etc/mysql/debian.cnf repl_test
sleep 3
d=$(( 'date +%s' - $start ))
done
no escravo eu monitoro o valor retornado por:
echo "select UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(t) from repl_test" | mysql --defaults-file=/etc/mysql/debian.cnf -N repl_test
hora local em todos os servidores é sincronizada via ntp.
repl_test db contém:
CREATE TABLE IF NOT EXISTS 'repl_test' ('t' datetime NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO 'repl_test' ('t') VALUES(NOW());
se você executar a replicação - sugiro que você também configure mk-table-checksum para compare o conteúdo de seus servidores SQL de tempos em tempos.