文档章节

检查mysql数据主从一致性

小祁1124
 小祁1124
发布于 2016/07/14 13:48
字数 333
阅读 8
收藏 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

共有 人打赏支持
小祁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 SQL_ERROR 1032解决办法

MySQLSQL_ERROR 1032解决办法 一、缘由:   在主主同步的测试环境,由于业务侧没有遵循同一时间只写一个点的原则,造成A库上删除了一条数据,B库上在同时更新这条数据。 由于异步和网络延时...

xiaocao13140
05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

以太坊总结

一、概念说明 1.以太坊(Ethereum blockchain)由V神(Vitalik Buterin)发明,是一个交易记录的永久数据库,它以一个“无信任”的交易系统来运行,不需要任何第三方信任机构即可进行点对点的...

盼望明天
30分钟前
1
0
Java并发工具类——AtomicInteger

基本类型int的递增等操作并不是线程安全的,加上synchronized又会影响性能,因此在并发情况下我们应该使用AtomicInteger,下面通过一个例子验证一哈。 public class TestAtomicInteger {...

东都大狼狗
32分钟前
1
0
基于CentOS7.2系统对RabbitMQ单机版安装过程

准备虚拟机系统 我的系统如下 系统版本7.2 安装perl yum install perl 安装wget工具 yum install -y wget 安装相关依赖工具 yum install ncurses ncurses-base ncurses-devel ncurses-libs ...

凌晨一点
36分钟前
1
0
Maven常用命令

Maven常用命令 说到命令,则不得不提一下环境变量,在之前的博文中简单提了一下环境变量的配置,这里具体说一下。说完环境变量的配置,然后就是Maven的常用命令,这里说的是常用的几个命令,...

星汉
52分钟前
0
0
Flink操作mysql kafka和hbase

主程序 package com.streaming.flink;import java.util.Properties;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functi......

守望者之父
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部