[发明专利]用于MySQL主从服务器数据一致性检测的方法和装置有效
申请号: | 201310593859.3 | 申请日: | 2013-11-21 |
公开(公告)号: | CN104657382B | 公开(公告)日: | 2018-09-14 |
发明(设计)人: | 林晓斌 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 mysql 主从 服务器 数据一致性 检测 方法 装置 | ||
本申请公开了一种用于MySQL主从服务器数据一致性检测的方法,包括:设置主、从服务器的默认存储引擎为InnoDB;在主服务器上执行特定的数据库操作,该操作将被写入主服务器的二进制日志binlog文件中;主服务器执行写binlog文件时,判断要写入binlog文件中的当前数据库操作是否是所述特定的数据库操作;若是,导出主服务器数据;从服务器读取上述主服务器所写的binlog文件的内容并执行时,判断当前执行的数据库操作是否是所述特定的数据库操作;若是,导出从服务器数据;判断导出的主、从服务器数据是否相同;若相同,说明主从服务器数据一致。本申请同时提供一种用于MySQL主从服务器数据一致性检测的装置。本申请提供的方法能够一次性、准确地检测出主从服务器数据是否一致。
技术领域
本申请涉及主从服务器数据一致性检测领域,具体涉及一种用于MySQL的主从服务器数据一致性检测的方法;本申请同时提供一种用于MySQL主从服务器数据一致性检测的装置。
背景技术
MySQL是一个关系型数据库管理系统,通过将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,加快了数据访问速度并提高了灵活性。为了实现服务器的负载均衡,以及增强数据库系统抵御灾难的能力,MySQL数据库系统,同其他流行的数据库系统一样,也采用了主从同步的架构方式,即:系统中包括两台服务器:主服务器和从服务器。采用上述架构方式的目的有以下两个方面。首先,可以在主服务器上只实现数据的更新操作,而将数据的查询请求全部发送给从服务器来执行,通过将数据更新与查询分别放在不同的服务器上执行,能够缩短对用户操作的响应时间、提高系统的性能。其次,在主服务器发生故障时,能够将数据库操作请求直接切换到从服务器继续提供服务,可以保证用户业务的稳定运行。显然,为了实现上述两个目的,必然要求从服务器的数据与主服务器的数据保持一致。特别是在金融类业务中,要求主、从服务器数据必须保持完全一致,否则可能会给用户带来难以弥补的损失。
为达到上述主、从服务器数据完全一致的目的,MySQL利用二进制日志binlog实现。其实现方式具体如下:主服务器将执行的数据更新动作写入二进制日志binlog中,并将二进制日志binlog发送给从服务器,从服务器接收二进制日志binlog并应用,即:将主服务器上的数据更新动作,在从服务器上执行一次,从而达到主、从服务器数据的一致;这个过程通常被称作MySQL主从复制过程。但在具体实施中,由于binlog是一种逻辑日志,记录的是数据库的逻辑操作,因此可能存在由于主、从服务器的初始状态不一致、从服务器数据被应用更新等原因造成的主、从服务器数据不一致的问题。
基于上述原因,在MySQL主从复制过程中,常常需要对某些重要的数据库和/或表进行主从一致性检测。MySQL系统目前进行主从一致性检测的主要方法是:分别在主、从服务器上进行查询,将需要进行一致性检测的数据库和/或表中的记录逐行读出来进行比对。该方法简便易行,但是由于下述原因,导致该方法无法准确判断主、从服务器的数据是否一致:
首先,由于主、从服务器的数据在进行复制时存在一定的延迟,数据在复制完全结束之前,一直处于不断变化且并不完整的状态下,因此直接读取主、从服务器数据的方式无法严格保证获取数据的一致性。
其次,因为主、从服务器是动态更新,无法保证从主、从两个服务器上发起一致性检测的查询请求的逻辑时间点严格相同,即:无法保证在主、从服务器上发起查询请求时看到的是主、从服务器相同时刻的视图。由于发起查询请求的逻辑时间点不同,甚至可能导致将主、从服务器数据一致的状态,误判为不一致。
针对上述主从一致性检测方法的缺陷,现有的改进方案是采用多次查询的方式,也就是说如果第一次查询得到的主、从服务器的数据不一致,则再次针对主、从服务器分别发起第二次查询请求,并判断查询结果是否一致。现有的改进方案希望通过多次重试来减少误判,但这种做法同样存在缺陷:
第一、无法从根本上避免存在误判的可能性。因为主从在动态更新过程中,如果主、从服务器繁忙(例如:更新请求量大的情况),第二次查询仍然有可能误判,甚至出现多次误判。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310593859.3/2.html,转载请声明来源钻瓜专利网。