检查mysql数据库主从重要表的数据一致性

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/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  in  iplist.split( ";" ):
             hostlist.append(i.split( "," ))
         for  in  range ( len (hostlist)):
             host  =  hostlist[i][ 0 ]
             hostname  =  hostlist[i][ 1 ]
             =  threading.Thread(target = self .mysql_check,args = (host,hostname,i))
             threads.append(t)
             t.start()
             time.sleep( 0.05 )
         for  in  range ( len (hostlist)):
             threads[i].join()
         self .w.sort()
         for  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  =  [ 'aa.aa' , 'bb.bb' , 'cc.cc' ]
     for  in  range ( len (table_list)):
         table  =  table_list[i]
         print  "Table Count:  "  +  table
         print
         boss  =  Check()
         boss.wd(table)
         print


config.ini文件格式如下:

1
2
[ global ]
iplist  =  192.168 . 50.1 ,vvv(主); 192.168 . 50.2 ,vvv(从); 192.168 . 50.3 ,ttt(主); 192.168 . 50.




 本文转自 lover007 51CTO博客,原文链接:http://blog.51cto.com/wangwei007/837898 ,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Oracle 关系型数据库 MySQL
【mysql】—— 表的内连和外连
【mysql】—— 表的内连和外连
|
1月前
|
存储 关系型数据库 MySQL
【mysql】—— 表的增删改查
【mysql】—— 表的增删改查
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
726 0
|
1月前
|
SQL 关系型数据库 MySQL
解决MySQL主从慢同步问题的常见的解决方案:
解决MySQL主从慢同步问题的方法有很多,以下是一些常见的解决方案: 1. 检查网络连接:确保主从服务器之间的网络连接稳定,避免网络延迟或丢包导致数据同步缓慢。 2. 优化数据库配置:调整MySQL的配置参数,如增大binlog文件大小、调整innodb_flush_log_at_trx_commit等参数,以提高主从同步性能。 3. 检查IO线程和SQL线程状态:通过SHOW SLAVE STATUS命令检查IO线程和SQL线程的状态,确保它们正常运行并没有出现错误。 4. 检查主从日志位置:确认主从服务器的binlog文件和位置是否正确,避免由于错误的日志位置导致同步延迟。 5.
116 1
|
1月前
|
分布式计算 DataWorks 关系型数据库
DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
【2月更文挑战第14天】DataWorks支持将ODPS表拆分并回流到MySQL的多个库和表中
56 8
|
16天前
|
存储 SQL 关系型数据库
【MySQL】4. 表的操作
【MySQL】4. 表的操作
19 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
99 1
|
15天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
15天前
|
缓存 关系型数据库 MySQL
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
MySQL 查询优化:提速查询效率的13大秘籍(索引设计、查询优化、缓存策略、子查询优化以及定期表分析和优化)(中)
|
9天前
|
SQL 关系型数据库 MySQL
mysql主从同步出错解决办法
mysql主从同步出错解决办法
7 0