[发明专利]主、备数据库及其数据一致性检测、修复方法和装置在审
申请号: | 201310135758.1 | 申请日: | 2013-04-18 |
公开(公告)号: | CN104111937A | 公开(公告)日: | 2014-10-22 |
发明(设计)人: | 谢东;喻红宇 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳鼎合诚知识产权代理有限公司 44281 | 代理人: | 薛祥辉 |
地址: | 518057 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 及其 数据一致性 检测 修复 方法 装置 | ||
技术领域
本发明涉及电信业务数据库应用领域,尤其涉及数据库复制过程中,通过对主、备数据库数据一致性检测和修复,提高数据库复制系统稳定性的技术。
背景技术
在软件行业,数据库作为存储中心,各种数据库应用都是在数据库上开展。在电信业务数据库软件行业,人们对数据库要求越来越高。一方面需要在平时提供7×24小时的不间断服务,保证关键数据完整性;另一方面,当发生灾难主数据库数据遭受损坏时,需要在不丢失或者少丢失数据的前提下,迅速恢复数据库,保证业务的连续性。为此,人们发明了数据库复制技术,该技术建立主、备两个数据库,将主数据库数据的变化同步到备数据库,备数据库处于待命状态。此外,数据库复制技术还应用于数据分发与集中、负荷分担等各种场景。
保证主、备数据库数据的一致性非常重要。当发生主数据库发生故障时,系统发生切换,备数据库升级为主用状态。这种机制只有在主备数据库的数据完全一致时,才能保证业务正常进行。如果主备数据库的数据不一致,当主数据库数据的变化同步到备数据库的时候,会发生数据冲突。数据冲突将使系统稳定性降低,需要尽快解决。如果没有及时解决,相应的复制进程将暂停或终止,数据库复制功能将失效。
在实现本发明的过程中,发明人发现现有的复制技术没有提供任何有效的措施对主、备份数据的一致性进行检测和修复,至少存在以下缺点:目前主流数据库厂商提供了数据库复制技术,但是缺少数据一致性检测、修复功能或产品;在电信业务数据库应用软件领域,由应用软件实现的主备数据库复制系统缺乏一种快速、有效的主备数据库数据比较方法,不能在线发现主备数据不一致性,当发生数据冲突以后,也不能及时修复不一致的数据,造成复制系统稳定性下降。
所以,主、备数据库数据的一致性检测和修复是一项重要的工作,如何实时地检测主、备数据库的数据是否一致,在系统不繁忙时,对不一致的数据进行修复以使主、备数据库的数据达到一致,成为了一个亟待解决的重要问题。
发明内容
本发明要解决的主要技术问题是,提供一种主、备数据库及其数据一致性检测、修复方法和装置。
为解决上述技术问题,本发明提供一种主备数据库数据一致性检测方法,所述方法包括:
从主数据库导出待检测的主文件;并从备数据库导出与所述主文件对应的备文件;
将所述主文件和所述备文件进行比较,根据比较结果判断所述主文件和所述备文件的一致性。
在本发明的一种实施例中,所述将所述主文件和所述备文件比较包括:
比较所述主文件和所述备文件的文件大小是否相同,和/或比较所述主文件和所述备文件存储数据的行数是否相同,和/或基于唯一索引比较所述主文件和所述备文件是否相同,和/或比较所述主文件和所述备文件的摘要值是否相同。
在本发明的一种实施例中,判断主文件和备文件是否相同包括:
分别计算所述主文件和所述备文件的消息摘要得到主文件摘要值和备文件摘要值;
比较所述主文件摘要值和所述备文件摘要值是否一致;如是,则所述主文件和所述备文件一致;否则,将所述主文件和所述备文件进行进一步比较。
在本发明的一种实施例中,所述从主数据库导出待检测的主文件包括:
确定所述主数据库中待检测的主数据表,所述主数据表包括主唯一索引字段;
获取所述主数据表的表属性信息和主唯一索引字段并保存在所述主文件中,并根据所述主唯一索引字段从所述主数据表中导出对应的数据保存在所述主文件中;
所述从备数据库导出与所述主文件对应的备文件包括:
确定所述备数据库中与所述主数据表对应的备数据表,所述备数据表包括备唯一索引字段;
获取所述备数据表的表属性信息和备唯一索引字段并保存在所述备文件中,并根据所述备唯一索引字段从所述备数据表中导出对应的数据保存在所述备文件中。
在本发明的一种实施例中,将所述主文件和所述备文件进行进一步比较为基于唯一索引比较所述主文件和所述备文件是否相同,包括:
分别依次按行读取所述主文件和所述备文件的数据;
分别获取所述主文件和所述备文件中当前行数据中的主唯一索引列数据和备唯一索引列数据;
将所述主唯一索引列数据和所述备唯一索引列数据进行比较判断是否一致,如否,根据比较结果生成修复指令;如是,则分别获取所述主文件和所述备文件中当前行的其他列数据进行比较判断是否一致,如不一致,根据比较结果生成修复指令后转至下一行,如一致,直接转至下一行,直至所述主文件或所述备文件的最后一行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310135758.1/2.html,转载请声明来源钻瓜专利网。