一种数据库实时同步系统数据一致性的检测方法及系统技术方案

技术编号:13278265 阅读:118 留言:0更新日期:2016-05-19 03:00
本发明专利技术公开了一种数据库实时同步系统数据一致性的检测方法及系统,在源端和目的端分别部署有一个源端数据代理和目的端数据代理,具体为:源端数据代理对源数据库表进行锁表操作,获取源端数据库表的操作序列号,将操作序列号发送给数据库同步系统;数据库同步系统执行数据同步到所述操作序列号并暂停;源端数据代理在源数据库表中查询所述操作序列号对应的数据,目的端数据代理在目的数据库表中查询所述操作序列号对应的数据;对比工具对源端数据代理和目的端数据代理查询到的数据进行对比,生成一致性对比报告。本发明专利技术在保证应用系统业务连续性的同时,提高同步数据一致性的检测效率,确保数据库同步系统的正确运行。

【技术实现步骤摘要】

本专利技术涉及数据库数据同步领域,具体涉及一种数据库实时同步系统数据一致性的检测方法及系统,用于判定同步复制过程中,源端数据和目的端数据的一致性,从而确定当前数据库同步系统工作的有效性。
技术介绍
随着信息化建设的高速发展,信息系统已经成为企业维持业务运转的关键,企业迫切需要提高信息系统的可用性,保证业务的连续性,最大限度地减少因灾难或故障所带来的损失。另一方面,多样化的业务类型导致数据访问需求的日趋复杂化,数据量的急剧攀升也导致数据库服务器不堪重负,企业同样迫切需要提高信息系统的运行效率。数据库实时同步系统基于成熟的关系数据模型和标准接口,能以极少的系统开支实现秒级数据实时同步,可广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、多业务中心等业务领域。目前数据同步一致性检测的方法可以简单分为离线检测和在线检测两大类。前者技术思路较为简单,即在实施数据一致性检测前,停止业务系统的工作,通过比较静止状态下的源端和目的端数据的一致性从而判定同步系统工作的有效性。这种检测方案以牺牲业务系统连续性为代价,因此对于业务连续性要求较高的数据同步系统实用性不高,往往只是作为补充技术手段。在线检测则较为复杂,表现在两个方面。一是业务系统工作的连续性使得源端数据可能总是处于变化中,需要确定比对的基准点以及相应的比对数据。二是数据同步的过程中,源端和目的端数据库之间存在一个称之为同步窗口的同步时间间隔,在这个窗口期间源库与目的库数据可能会存在不一致的情况。公开号“CN103927313A”、名称为“企业信息系统数据同步核查机制”的专利文献公开了一种自动核查系统,通过对原始记录进行标记来实施数据同步以及比对核定数据同步的信息一致性。该方法破坏了原始数据的固有结构,对应用系统的插入、更新操作提出了额外的工作要求。公开号“CN200710000456、名称为“一种验证数据同步的方法及系统”的专利文献公开的验证方法事先确定了待验证的同步数据,并且侧重于论述待验证同步数据的比对方法,因此可以归结为前述的离线检测方法,并不适合于数据库实时数据同步的在线检测。
技术实现思路
为了克服现有数据库同步系统中现有数据一致性检测技术的缺陷,本专利技术提供一种基于同步数据一致性在线检测方法及系统,其目的在于,在保证应用系统业务连续性的同时,提高同步数据一致性的检测效率,确保数据库同步系统的正确运行。—种数据库实时同步系统数据一致性的检测方法,在源端和目的端分别部署有一个源端数据代理和目的端数据代理,该方法具体为:源端数据代理对源数据库表进行锁表操作,获取源端数据库表的操作序列号,将操作序列号发送给数据库同步系统;数据库同步系统执行数据同步到所述操作序列号并暂停;源端数据代理在源数据库表中查询所述操作序列号对应的数据,目的端数据代理在目的数据库表中查询所述操作序列号对应的数据;对比工具对源端数据代理和目的端数据代理查询到的数据进行对比,生成一致性对比报告。—种数据库实时同步系统数据一致性的检测系统,包括:源端数据代理,用于对源数据库表进行锁表操作,获取源端数据库表的操作序列号,将操作序列号发送给数据库同步系统,在源数据库表中查询所述操作序列号对应的数据;数据库同步系统,用于执行数据同步到所述操作序列号并暂停;目的端数据代理,用于在目的数据库表中查询所述操作序列号对应的数据;对比工具,用于对源端数据代理和目的端数据代理查询到的数据进行对比,生成一致性对比报告。进一步地,所述源端数据代理对源数据库表进行锁表操作,源数据库表可继续响应读访问请求;所述源端数据代理获取到源端数据后,解除锁表,源端数据库表恢复正常工作。进一步地,在源端数据代理对源数据库表进行锁表操作前,源端数据代理首先向数据库同步系统发送同步暂停命令,数据库同步系统暂停数据同步。进一步地,源端数据代理将操作序列号发送给数据库同步系统,数据库同步系统执行数据同步直到所述操作序列号为止,然后暂停数据同步。进一步地,在生成一致性对比报告后,源端数据代理断掉与数据库同步系统的连接,数据库同步系统发现源端数据代理的连接断掉,则结束暂停,继续进行数据同步。本专利技术用于检测数据库实时同步系统数据同步工作的有效性。在进行实时同步的时候,需要了解同步的结果是否正确,因此需要对同步的数据进行对比,验证其一致性,并生成详细的对比报告,提供用户参考。本专利技术涉及的数据库实时同步系统,是一种基于日志的结构化数据同步软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目的数据库,实现源数据库与目的数据库同步。按照本专利技术提供的同步一致性检测方法,可以随时实施一致性检测,而不需要中止源端业务系统。【附图说明】图1是本专利技术数据同步一致性检测装置的结构示意图图2是按照本专利技术的数据同步一致性检测装置的结构示意图,图中实线是VERI与AGENT的命令流向,点划线是数据库的数据流向。【具体实施方式】为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本专利技术以数据库表为数据一致性检测对象,即每次检测只针对单一数据库表进行。本专利技术涉及的功能组件包括数据代理(AGENT,主要用作对比数据集获取,并计算其MD5摘要)、对比工具(VERI,主要用作数据对比,并且生成对比报告)以及被检测的数据库同步系统。数据库同步系统的源端和目的端都部署有一个AGENT,部署结构如图1所示。源端AGENT通过数据库管理系统的封锁机制临时停止待检测表上的更新操作,以获取该表数据一个稳定的最新版本,即通过对该表上共享锁(S锁)阻止后续的更新操作,通过执行查询语句获取当前表中的全部数据;源端AGENT计算出MD5摘要作为源端参与比对的对象。对于同步时间窗口问题,本专利技术利用数据库的系统日志序号(LSN)和数据库同步系统加以解决,即源端AGENT在锁表成功后获取源端数据库当前的系统日志序号(LSN当前第1页1 2 本文档来自技高网
...

【技术保护点】
一种数据库实时同步系统数据一致性的检测方法,在源端和目的端分别部署有一个源端数据代理和目的端数据代理,其特征在于,该方法具体为:源端数据代理对源数据库表进行锁表操作,获取源端数据库表的操作序列号,将操作序列号发送给数据库同步系统;数据库同步系统执行数据同步到所述操作序列号;源端数据代理在源数据库表中查询所述操作序列号对应的数据,目的端数据代理在目的数据库表中查询所述操作序列号对应的数据;对比工具对源端数据代理和目的端数据代理查询到的数据进行对比,生成一致性对比报告。

【技术特征摘要】

【专利技术属性】
技术研发人员:付铨孙峰陈琦李专
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1