2014-10-30 57 views
-1

我将MySQL服务器配置为只读只读副本。MySQL获取只读副本lag

如何找出它与正在复制的数据库之间的滞后秒数?

我尝试这样做:

SHOW STATUS LIKE 'seconds_behind_master'; 

但不支持这种语法。我想要一个单行SQL来检索这个值。可以做到吗?

回答

0

如何获取配置为只读副本的mysql服务器的只读副本滞后。

http://dev.mysql.com/doc/refman/5.6/en/show-slave-status.html

show slave status 

此字段Seconds_Behind_Master是如何“迟到”的奴隶是一个迹象。

我可以写一个小PHP脚本,抓取只是一个值:

$db = new pdo(
    "mysql:host=your_database_hostname;dbname=your_database_name", 
    'your_username', 'your_password'); 

$sql = 'show slave status'; 

$query = $db->query($sql); 
$res = $query->fetchall(); 

foreach($res as $item){ 
    print ">" . $item["Seconds_Behind_Master"]; 
} 

它打印0秒因为一切是最新的:

>0 

这里是一个小bash命令打印show slave状态的内容供你解析:

mysql --host=your_host -u your_username --password=your_password your_database_name -e "show slave status"