之前写的检测mysql 从服务器延迟的脚本

超简易的查看mysql主从延时的脚本

1 代码逻辑

很简单,就是python连mysql,然后show slave status,然后取2个参数,后面加了一个log模块,然后做了一个循环,5s一次。

2. 代码本体

隐掉了一些敏感信息:

import MySQLdb
import logging
import time

FORMAT = ‘%(asctime)-15s  %(message)s‘
logging.basicConfig(filename=‘/tmp/slave.log‘,level=logging.DEBUG,format=FORMAT)
#logging.basicConfig(format=FORMAT)

dbuser = "xx"
dbpass = "xx"
dbname = "xx"
d=[]
d.append(‘xx.mysql.rds.aliyuncs.com‘)
d.append(‘xx.mysql.rds.aliyuncs.com‘)
d.append(‘xx.mysql.rds.aliyuncs.com‘)
d.append(‘xx.mysql.rds.aliyuncs.com‘)

def get_vars(thedb ):
    db1 = MySQLdb.connect(thedb,dbuser,dbpass,dbname)
#db1 = MySQLdb.connect(‘rdso8nxo733x5hq8q2a1.mysql.rds.aliyuncs.com‘,dbuser,dbpass,dbname)
    c = db1.cursor()
    c.execute("show slave status")
    ret = c.fetchone()
    c.close()
    db1.close()
    return (ret[32],ret[42])

while True:
    for i in d:
        print i
        (v1,v2) = get_vars(i)
    #print "Seconds_Behind_Master:%s \nSQL_Delay:%s\n" %(ret[32],ret[42])
        logging.debug(‘Seconds_Behind_Master:%s|SQL_Delay:%s‘,v1,v2)
        print "Seconds_Behind_Master:%s \nSQL_Delay:%s\n" %(v1,v2)
    logging.debug(‘end‘)
    time.sleep(5)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 12:24:49

之前写的检测mysql 从服务器延迟的脚本的相关文章

MySql从服务器延迟解决方案

在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下:Master_Log_File:                      SLAVE中的I/O线程当前正在读取的主服务器二进制日志文件的名称Read_Master_Log_Pos:        在当前的主服务器二进制日志中,SLAVE中的I/O线程已经读取的位置Relay_Log_File:                        SQL线程当前正在读取和执行的中继日志文件的名称R

如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个iPhone/iPad开发者,能够自己写一个简单的web服务器将是很有用的. 例如,你可能希望在软件启动时显示一些来自服务器的更新,或者在服务器端保存一些用户数据.除了你的想象力,没有什么能限制你了. 在第一篇中,我们将会一步一步的建立一个web服务器,基于promo code system(促销码系

Haproxy+多台MySQL从服务器(Slave) 实现负载均衡

本系统采用MySQL一主多从模式设计,即1台 MySQL"主"服务器(Master)+多台"从"服务器(Slave),"从"服务器之间通过Haproxy进行负载均衡,对外只提供一个访问IP,当程序需要访问多台"从"服务器时,只需要访问Haproxy,再由Haproxy将请求分发到各个数据库节点. 我们的程序可以有俩个数据源(DataSourceA,DataSourceB),一个(DataSourceA)直接连接主库,另外一个(

2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种情况属于异步复制,无需维持长连接 通过配置,可以复制所有库或者几个库,甚至库中的一些表 它是MySQL内建的,自带 Replication的原理 主服务器master将数据库的改变写入二进制日志文件,从服务器slave同步这些二进制日志,并生成中继日志,从服务器根据中继日志,执行这些改变 DML:S

如何实时检测mysql主从状态,并做邮件告警?

实时检测mysql主从状态,并做邮件告警 需求分析: 当我们做完主从后,主从成功的话,Slave_IO_Running和Slave_SQL_Running两个进程的状态就为yes,但是在做主从同步时也不排除,会发生一些意外的情况,所以我们需要写个脚本来实时检测Slave_IO_Running和Slave_SQL_Running的状态,一旦mysql主从状态出现了状况,就通过邮件发送告警,然后再做维护. 脚本思路: 定时检测mysql主从状态,说白的了就是通过脚本让系统去自我检测主从状态,如果是主

搭建mysql主从服务器

搭建mysql主从服务器: //注:注释掉my.cn文件中的skip-federated字段[[email protected] ]# /bin/cp -r /usr/local/mysql/share/mysql/my-huge.cnf  /etc/my.cnf 配置主服务器:修改my.cnf文件server-id=1 //每个数据库服务器都要指定唯一一个server-id log-bin=mysql-bin //mysql进行主从复制时通过二进制日志文件来进行的,所以必须开启mysql日志功

使用MySQL Proxy解决MySQL主从同步延迟

MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利.但这种方式有个比较大的缺陷在于MySQL的同步机制 是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载.网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的.短在1秒内,长则几秒.几十秒甚至更长都有可能. 由于数据延迟问题的存在,当应用程序在Master 上进行数据更新,然后又立刻需要从数据库中读取数据时,这时候如果应用程序从Slave上取数据(这也是

Zabbix 检测Mysql数据库的主从同步

Zabbix 检测Mysql数据库的主从同步 在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成检测网站正常运行的重要环节. MySQL同步功能由3个线程(master上1个,slave上2个)来实现,简单的说就是:master发送日志一个,slave接收日志一个,slave运行日志一个. Slave_io_Running:yes Slave_SQL_Running: ye

Mysql 主从服务器数据同步

安装2台windows Server 服务器,分别安装Mysql,配置环境变量,完成安装确认在CMD窗口可以使用Mysql命令 在Master服务器上创建同步账号,确保Slave服务器能访问Master服务器数据库Master DB Server IP:10.10.0.144Slave DB Server IP:10.10.0.145Mysql > grant replication slave on *.* to [email protected] identified by 'Passwor