[发明专利]数据库冗余数据一致性检验方法有效
申请号: | 201010609540.1 | 申请日: | 2010-12-28 |
公开(公告)号: | CN102004799A | 公开(公告)日: | 2011-04-06 |
发明(设计)人: | 徐岩;何清法;蒋志勇;李阳;顾云苏;冯柯;谢卫平;孟勃荣;关刚;车晓瑶 | 申请(专利权)人: | 天津神舟通用数据技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 天津盛理知识产权代理有限公司 12209 | 代理人: | 王来佳 |
地址: | 300384 天津市南开区华苑产业*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 冗余 数据一致性 检验 方法 | ||
技术领域
本发明属于数据库应用技术领域,尤其是一种数据库冗余数据一致性检验方法。
背景技术
可靠性是衡量数据库系统抗故障能力的重要指标。目前很多可靠性技术都是基于数据冗余原理来获得系统整体的高可靠性,例如双机热备技术、集群技术等。其基本原理是:为一份数据复制多份拷贝,分别存储在不同的数据库结点上,当系统正常运行时,所有结点可同时提供服务,当系统接收到一个服务请求时,系统通常根据服务请求涉及的冗余数据分布,以及各结点负载状态等信息,动态选择一个结点完成该服务,当一个结点发生断电、宕机等故障时,其它存储了冗余数据的结点仍可继续提供服务,实现了7×24的系统服务能力。
基于数据冗余原理的可靠性技术在提高系统可靠性能力的同时,也带来了一些新的问题,其中最重要的就是各冗余结点间的数据一致性问题。导致各冗余结点数据不一致的原因主要有两个:一是冗余数据同步策略,当一个结点的数据被更新时,该更新可能不会实时同步到其它冗余结点上,这将导致冗余结点上的数据版本并不是最新的,与其它结点不一致;二是系统数据受到篡改攻击,并且被篡改后的数据不能通过系统其它检测技术检测到,篡改操作可能发生在物理层或语义层,物理层篡改可能是直接修改数据文件,语义层篡改可能是绕过冗余数据同步机制在某个结点上以该结点提供的正常方式直接修改数据。物理层篡改通常被认为是一种较低级的攻击方式,可以被简单的物理层检验方法检测到,例如页面级CRC校验。语义层篡改更为隐蔽,攻击者通常直接登录到存储冗余数据的某个结点,执行会导致数据变化的SQL语句,并通过某种方式阻止存储相同冗余数据的其它结点得到数据更新。对于该结点来说,攻击者执行的操作都是合法的,因此能够通过结点内部的物理层检验,但对于由多个结点构成的整体系统来说,数据一致性已经被破坏了,此时若用户的操作请求涉及到被篡改数据,则可能得到错误的执行结果。综上所述,现有数据库冗余数据一致性校验方法主要是在物理层进行校验,难以对语义层篡改进行有效校验,不能有效地发现各冗余结点间的数据一致性问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种可在语义层对各冗余结点间数据进行一致性校验并且能够有效发现数据冗余数据不一致问题的数据库冗余数据一致性检验方法。
本发明解决现有的技术问题是采取以下技术方案实现的:
一种数据库冗余数据一致性检验方法,包括以下步骤:
步骤1:数据库主服务器接收到用户操作请求后,确认该操作请求所涉及的冗余数据分布情况,得到存储有相关冗余数据的备份服务器列表;
步骤2:数据库主服务器将用户操作请求发送至备份服务器列表中的各备份服务器;
步骤3:各备份服务器执行用户操作请求,得到操作结果;
步骤4:各备份服务器计算操作结果的语义校验码;
步骤5:各备份服务器将操作结果和相应的语义校验码发送到校验服务器;
步骤6:校验服务器接收到各备份服务器的操作结果和语义校验码后,对比各语义校验码是否一致,若一致则将操作结果发送给数据库主服务器,若不一致则向主服务器发送相应错误信息;
步骤7:数据库主服务器将接收到的操作结果或错误信息转发给用户。
而且,所述步骤4计算操作结果的语义校验码包括以下步骤:
步骤1:初始化语义校验码为全0;
步骤2:遍历操作结果的每条元组,为该条元组生成元组校验码,然后将该元组校验码与当前语义校验码进行按位异或操作;
步骤3:对语义校验码进行调整,消除因元组内部属性顺序、主机字节序导致的校验码差异。
而且,所述步骤2生成元组校验码的方法为:依次检查元组各属性并按照下述方式处理:
(1)若某个定长属性为空,则以全0填充,填充长度为该属性的长度;
(2)若某个变长属性长度小于等于N字节,则在其尾部以全0填充不足部分;
(3)若某个变长属性长度大于N字节,则将该属性分解为长度为N字节的多个子属性;若最后一个子属性不足N字节,则在其尾部以全0填充不足部分,然后将所有子属性进行按位异或操作,将该操作结果作为该属性在元组校验码中的值;
而且,所述的元组校验码的长度是固定的,元组校验码的长度等于元组所有定长属性长度之和加上变长属性个数乘以N字节。
而且,所述步骤3对语义校验码进行调整包括以下内容:
(1)调整元组内部属性顺序的过程为:按库名、模式名、表名、属性名进行组合排序,然后按排序结果调整校验码中各属性的位置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津神舟通用数据技术有限公司,未经天津神舟通用数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010609540.1/2.html,转载请声明来源钻瓜专利网。