文档章节

检查mysql数据主从一致性

小祁1124
 小祁1124
发布于 2016/07/14 13:48
字数 333
阅读 9
收藏 0

 mysql数据库主从做起来不难,但是主从数据的一致性很重要,本脚本用于粗略检查mysql数据库主从重要表的数据一致性,主要是在主从正常的情况下,连接数据库统计表的条数是否一致,脚本分为两部分,一个是py脚本,一个是ini配置文件,py脚本源码如下:

 

#!/usr/bin/env python  
#This script is used check mysql replcation some table  
# -*- coding: utf-8 -*-  
import sys,time,MySQLdb,threading  
import ConfigParser  
 
class Check:  
    def __init__(self):  
        self.w =[]  
        self.table = table  
    def conf(self):  
        fp = ConfigParser.ConfigParser()  
        fp.readfp(open('config.ini'))  
        iplist = fp.get("global", "iplist")  
        return iplist  
 
    def wd(self,table):  
        iplist = self.conf()  
        hostlist = []  
        self.w = []  
        threads = []  
        for i in iplist.split(";"):  
            hostlist.append(i.split(","))  
        for i in range(len(hostlist)):  
            host = hostlist[i][0]  
            hostname = hostlist[i][1]  
            t = threading.Thread(target=self.mysql_check,args=(host,hostname,i))  
            threads.append(t)  
            t.start()  
            time.sleep(0.05)  
        for i in range(len(hostlist)):  
            threads[i].join()  
        self.w.sort()  
        for r in range(len(self.w)):  
            print self.w[r]  
 
    def mysql_check(self,host,hostname,i):  
        try:  
            conn = MySQLdb.connect(host = host,user = 'user',passwd = 'passwd',connect_timeout=5)  
            cursor = conn.cursor()   
            sql = "SELECT COUNT(*) FROM %s" % self.table  
            cursor.execute(sql)  
            alldata = cursor.fetchall()  
            count = alldata[0][0]  
            value = hostname + "\t" + str(count)  
            self.w.append(value)  
        except:  
            print "Can not Connect to " + host + " mysql server" 
            return 0 
 
if __name__ == "__main__":   
    table_list = ['adb.credit_log','adb.account','ddb.data']  
    for i in range(len(table_list)):  
        table = table_list[i]  
        print "Table Count:  " + table  
        print 
        boss = Check()  
        boss.wd(table)  
        print

 

config.ini文件格式如下:

 

 
  1. [global]  
  2. iplist = 192.168.50.1,沧海一笑_adb(主);192.168.50.2,沧海一笑_adb(从);192.168.50.3,落英缤纷_adb(主);192.168.50.4,落英缤纷_adb(从) 

本文转载自:http://www.centoscn.com/python/2013/0807/1157.html

共有 人打赏支持
上一篇: event权限配置
下一篇: sysbench部署的坑
小祁1124
粉丝 15
博文 78
码字总数 18220
作品 0
海淀
程序员
私信 提问
pt-table-checksum与pt-table-sync使用实践

--------------原文地址:http://www.cnblogs.com/gomysql/p/3662264.html mysql在工作中接触最多的就是mysql replication,由于现在公司也还在使用mysql 5.1.x版本,在复制方面还是比较多的...

arthur376
2017/09/07
0
0
mysql主从数据一致性校验及纠错工具

目录 1、概述 2、percona-tooldit工具的安装 3、新建用户 4、pt-table-checksum使用 5、pt-table-sync使用 6、个人总结 1、概述 假如你是一位运维人员,假如你生产环境上部署了mysql系统,再...

蓝狐乐队
2015/10/09
205
0
percona-toolkit工具检查mysql复制一致性及修复不一致性

percona-toolkit工具检查MySQL复制一致性及修复 一、pt-table-checksum检查主从库数据的一致性 pt-table-checksum在MASTER上校验指定库、表,将结果存在一个库表里,复制进程将检验sql传递到...

crazy_charles
2016/01/15
0
0
mysql主从一致性检测和修复

一、 简介 pt-table-checksum是著名的 percona-toolkit 工具集的工具之一。它通过在主库执行基于statement的sql语句来生成主库数据块的checksum,把相同的sql语句传递到从库,并在从库上计算...

stone_
2016/07/28
169
0
如何监控MySQL主从同步情况

在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要...

lwaif
2016/03/03
98
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
27分钟前
0
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
52分钟前
5
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
6
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部