文档章节

检查mysql数据主从一致性

小祁1124
 小祁1124
发布于 2016/07/14 13:48
字数 333
阅读 8
收藏 0
点赞 0
评论 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(从) 

© 著作权归作者所有

共有 人打赏支持
小祁1124
粉丝 15
博文 77
码字总数 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

mysql主从数据一致性校验及纠错工具

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

蓝狐乐队 ⋅ 2015/10/09 ⋅ 0

percona-toolkit工具检查mysql复制一致性及修复不一致性

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

crazy_charles ⋅ 2016/01/15 ⋅ 0

mysql主从一致性检测和修复

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

stone_ ⋅ 2016/07/28 ⋅ 0

MySQL SQL_ERROR 1032解决办法

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

xiaocao13140 ⋅ 05/30 ⋅ 0

如何监控MySQL主从同步情况

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

lwaif ⋅ 2016/03/03 ⋅ 0

基于GTID的主从复制搭建

前置检查 server-id = 10,master/slave不允许重复 log-bin gtid-mode = ON enforce-gtid-consistency = ON 1,利用mysqlpump复制master数据到slave,搭建基于GTID的主从复制,缺少GTID处理方...

titandeng ⋅ 2017/04/06 ⋅ 0

MySQL DBA必备工具使用的6大锦囊妙计

老张我呢不仅是个金庸迷,还是个三国迷。就是喜欢看后期蜀国诸葛亮与魏国司马懿之间的斗智斗勇。各种锦囊妙计的使用,堪称经典。针对管理MySQL数据库这块,张老师也有很多妙计,今后一一给大...

superZS ⋅ 2017/08/10 ⋅ 0

MySQL主从复制中常见的3个错误及填坑方案

主从复制错误一直是MySQL DBA一直填不完的坑,如鲠在喉,也有人说mysql主从复制不稳定云云,其实MySQL复制比我们想象中要坚强得多,而绝大部分DBA却认为只要跳过错误继续复制就好啦,接下来不...

刘日飞 ⋅ 2016/05/11 ⋅ 0

MySQL 数据库主从复制架构

前文《MySQL 数据库事务与复制》分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面。 原生复制架构 MySQ...

方墨大师 ⋅ 2016/01/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 55分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部