CN102004799A - 数据库冗余数据一致性检验方法 - Google Patents
数据库冗余数据一致性检验方法 Download PDFInfo
- Publication number
- CN102004799A CN102004799A CN 201010609540 CN201010609540A CN102004799A CN 102004799 A CN102004799 A CN 102004799A CN 201010609540 CN201010609540 CN 201010609540 CN 201010609540 A CN201010609540 A CN 201010609540A CN 102004799 A CN102004799 A CN 102004799A
- Authority
- CN
- China
- Prior art keywords
- attribute
- check code
- tuple
- length
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明涉及一种数据库冗余数据一致性检验方法,包括如下步骤:数据库主服务器接收到用户操作请求后确认相关备份服务器;数据库主服务器将用户操作请求发送至备份服务器列表中的各备份服务器;各备份服务器执行用户操作请求得到操作结果;各备份服务器计算操作结果的语义校验码;各备份服务器将操作结果和相应的语义校验码发送到校验服务器;校验服务器对操作结果和语义校验码后进行校验并将操作结果或错误信息发送给数据库主服务器;数据库主服务器将接收到的操作结果或错误信息转发给用户。本发明克服了物理层检验方法的局限性,能直接针对执行结果进行检验,有效地降低了需要进行检验操作的数据量,也降低小了检验操作的系统资源消耗。
Description
技术领域
本发明属于数据库应用技术领域,尤其是一种数据库冗余数据一致性检验方法。
背景技术
可靠性是衡量数据库系统抗故障能力的重要指标。目前很多可靠性技术都是基于数据冗余原理来获得系统整体的高可靠性,例如双机热备技术、集群技术等。其基本原理是:为一份数据复制多份拷贝,分别存储在不同的数据库结点上,当系统正常运行时,所有结点可同时提供服务,当系统接收到一个服务请求时,系统通常根据服务请求涉及的冗余数据分布,以及各结点负载状态等信息,动态选择一个结点完成该服务,当一个结点发生断电、宕机等故障时,其它存储了冗余数据的结点仍可继续提供服务,实现了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)调整元组内部属性顺序的过程为:按库名、模式名、表名、属性名进行组合排序,然后按排序结果调整校验码中各属性的位置;
(2)调整各定长属性的字节序为网络字节序;
(3)调整各定长属性的变长数组内部字节序为网络字节序:若变长属性为字节流类型的属性,则保持现有字节序不变,若变长属性为定长属性的数组类型,则将其按照定长属性长度分组,然后调整各组的字节序为网络字节序。
本发明的优点和积极效果是:
本发明将用户操作请求同时发往多个存储有相关冗余数据的备份服务器执行,并为每一份执行结果生成一个语义校验码,然后备份服务器通过对比语义校验码判断执行结果是否正确,本方法可在语义层进行检验,克服了现有物理层检验方法的局限性,能够直接针对执行结果进行检验,有效地降低了需要进行检验操作的数据量,也降低了检验操作的系统资源消耗。
附图说明
图1是本发明所基于的数据库冗余数据一致性校验系统的连接示意图;
图2是本发明的处理流程图;
图3是语义校验码生成算法的处理流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述。
一种数据库冗余数据一致性检验方法,是在如图1所示的数据库冗余数据一致性校验系统上实现的。在该校验系统中,用户发出操作请求后,数据库主服务器向各个备份服务器发出操作请求,各个备份服务器进行相应的备份处理并向校验服务器发送操作结果和语义校验码,校验服务器通过对比语义校验码判断执行结果是否正确并将操作结果通过数据库主服务器发送给用户。
如图2所示,本数据库冗余数据一致性检验方法的具体步骤包括:
步骤1:数据库主服务器接收到用户操作请求后,确认该操作请求所涉及的冗余数据分布情况,得到存储有相关冗余数据的备份服务器列表。
步骤2:数据库主服务器将用户操作请求发送至备份服务器列表中的各备份服务器。
步骤3:各备份服务器执行用户操作请求,得到操作结果。
步骤4:各备份服务器计算操作结果的语义校验码。
由于数据库数据冗余技术实现方式的多样性和数据库支持数据类型的多样性,因此,各备份服务器计算操作结果的语义校验码时,需要对下述各种情况进行正确处理:
1、冗余数据所处各结点主机字节序不同;。
2、网络字节序与各结点主机字节序不同;
3、多条元组在物理存储层排列顺序不同;
4、元组多个属性在物理存储层排列顺序不同。
5、元组可能包含定长属性、变长属性,属性可能为空值。
如图3所示,备份服务器计算操作结果的语义校验码的具体步骤为:
1、初始化语义校验码为全0。
2、遍历操作结果的每条元组,为该条元组生成元组校验码,然后将该元组校验码与当前语义校验码进行按位异或操作。
本步骤中的生成元组校验码方法为:依次检查元组各属性,并进行如下处理:
(1)若某个定长属性为空,则以全0填充,填充长度为该属性的长度;
(2)若某个变长属性长度小于等于N字节,则在其尾部以全0填充不足部分;
(3)若某个变长属性长度大于N字节,则将该属性分解为长度为N字节的多个子属性;若最后一个子属性不足N字节,则在其尾部以全0填充不足部分,然后将所有子属性进行按位异或操作,将该操作结果作为该属性在元组校验码中的值。
在本步骤中,设定N字节的目的是将变长属性在元组校验码中的值长度设为定长。
经过上述过程生成的元组校验码的长度是固定的,元组校验码的长度等于元组所有定长属性长度之和加上变长属性个数乘以N字节。
3、对语义校验码进行调整,消除因元组内部属性顺序、主机字节序导致的校验码差异,其中对语义校验码进行调整包括以下内容:
(1)调整元组内部属性顺序的过程为:按库名、模式名、表名、属性名进行组合排序,然后按排序结果调整校验码中各属性的位置,因为数据库中不会存在库名、模式名、表名、属性名都完全相同的属性,因此上述排序方式可以保证得到没有二义性的唯一结果;
(2)调整各定长属性的字节序为网络字节序;
(3)调整各定长属性的变长数组内部字节序为网络字节序:若变长属性为字节流类型的属性,如大对象,则保持现有字节序不变,若变长属性为定长属性的数组类型,如整型数组,则将其按照定长属性长度分组,然后调整各组的字节序为网络字节序。
通过上述步骤,各备份服务器即可计算出操作结果的语义校验码。
步骤5:各备份服务器将操作结果和相应的语义校验码发送到校验服务器。
步骤6:校验服务器接收到各备份服务器的操作结果和语义校验码后,对比各语义校验码是否一致,若一致则将操作结果发送给数据库主服务器,若不一致则向主服务器发送相应错误信息。
步骤7:数据库主服务器将接收到的操作结果或错误信息转发给用户。
通过上述步骤即可实现数据库冗余数据一致性的校验功能。
本发明所述的实施例是说明性的,而不是限定性的,因此发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (5)
1.一种数据库冗余数据一致性检验方法,其特征在于:包括以下步骤:
步骤1:数据库主服务器接收到用户操作请求后,确认该操作请求所涉及的冗余数据分布情况,得到存储有相关冗余数据的备份服务器列表;
步骤2:数据库主服务器将用户操作请求发送至备份服务器列表中的各备份服务器;
步骤3:各备份服务器执行用户操作请求,得到操作结果;
步骤4:各备份服务器计算操作结果的语义校验码;
步骤5:各备份服务器将操作结果和相应的语义校验码发送到校验服务器;
步骤6:校验服务器接收到各备份服务器的操作结果和语义校验码后,对比各语义校验码是否一致,若一致则将操作结果发送给数据库主服务器,若不一致则向主服务器发送相应错误信息;
步骤7:数据库主服务器将接收到的操作结果或错误信息转发给用户。
2.根据权利要求1所述的数据库冗余数据一致性检验方法,其特征在于:所述步骤4计算操作结果的语义校验码包括以下步骤:
步骤1:初始化语义校验码为全0;
步骤2:遍历操作结果的每条元组,为该条元组生成元组校验码,然后将该元组校验码与当前语义校验码进行按位异或操作;
步骤3:对语义校验码进行调整,消除因元组内部属性顺序、主机字节序导致的校验码差异。
3.根据权利要求2所述的数据库冗余数据一致性检验方法,其特征在于:所述步骤2生成元组校验码的方法为:依次检查元组各属性并按照下述方式处理:
(1)若某个定长属性为空,则以全0填充,填充长度为该属性的长度;
(2)若某个变长属性长度小于等于N字节,则在其尾部以全0填充不足部分;
(3)若某个变长属性长度大于N字节,则将该属性分解为长度为N字节的多个子属性;若最后一个子属性不足N字节,则在其尾部以全0填充不足部分,然后将所有子属性进行按位异或操作,将该操作结果作为该属性在元组校验码中的值;
4.根据权利要求3所述的数据库冗余数据一致性检验方法,其特征在于:所述的元组校验码的长度是固定的,元组校验码的长度等于元组所有定长属性长度之和加上变长属性个数乘以N字节。
5.根据权利要求2所述的数据库冗余数据一致性检验方法,其特征在于:所述步骤3对语义校验码进行调整包括以下内容:
(1)调整元组内部属性顺序的过程为:按库名、模式名、表名、属性名进行组合排序,然后按排序结果调整校验码中各属性的位置;
(2)调整各定长属性的字节序为网络字节序;
(3)调整各定长属性的变长数组内部字节序为网络字节序:若变长属性为字节流类型的属性,则保持现有字节序不变,若变长属性为定长属性的数组类型,则将其按照定长属性长度分组,然后调整各组的字节序为网络字节序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010609540A CN102004799B (zh) | 2010-12-28 | 2010-12-28 | 数据库冗余数据一致性检验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010609540A CN102004799B (zh) | 2010-12-28 | 2010-12-28 | 数据库冗余数据一致性检验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004799A true CN102004799A (zh) | 2011-04-06 |
CN102004799B CN102004799B (zh) | 2012-10-03 |
Family
ID=43812161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010609540A Active CN102004799B (zh) | 2010-12-28 | 2010-12-28 | 数据库冗余数据一致性检验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004799B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102437910A (zh) * | 2011-10-18 | 2012-05-02 | 国家超级计算深圳中心(深圳云计算中心) | 数据加/解密校验方法及其系统 |
CN103944787A (zh) * | 2014-04-30 | 2014-07-23 | 国家电网公司 | 智能变电站站控层双网模式切换测试方法 |
CN114157674A (zh) * | 2020-08-17 | 2022-03-08 | 中移(上海)信息通信科技有限公司 | 无线通信方法、装置、系统、服务器以及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889325B (zh) * | 2019-01-21 | 2023-06-02 | Oppo广东移动通信有限公司 | 校验方法、装置、电子设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963642A (en) * | 1996-12-30 | 1999-10-05 | Goldstein; Benjamin D. | Method and apparatus for secure storage of data |
CN1564161A (zh) * | 2004-03-23 | 2005-01-12 | 中国科学院计算技术研究所 | 一种构造和浏览语义链的方法 |
CN101827125A (zh) * | 2010-03-31 | 2010-09-08 | 吉林大学 | 语义Web服务本体及其应用 |
-
2010
- 2010-12-28 CN CN201010609540A patent/CN102004799B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963642A (en) * | 1996-12-30 | 1999-10-05 | Goldstein; Benjamin D. | Method and apparatus for secure storage of data |
CN1564161A (zh) * | 2004-03-23 | 2005-01-12 | 中国科学院计算技术研究所 | 一种构造和浏览语义链的方法 |
CN101827125A (zh) * | 2010-03-31 | 2010-09-08 | 吉林大学 | 语义Web服务本体及其应用 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102437910A (zh) * | 2011-10-18 | 2012-05-02 | 国家超级计算深圳中心(深圳云计算中心) | 数据加/解密校验方法及其系统 |
CN103944787A (zh) * | 2014-04-30 | 2014-07-23 | 国家电网公司 | 智能变电站站控层双网模式切换测试方法 |
CN103944787B (zh) * | 2014-04-30 | 2015-09-30 | 国家电网公司 | 智能变电站站控层双网模式切换测试方法 |
CN114157674A (zh) * | 2020-08-17 | 2022-03-08 | 中移(上海)信息通信科技有限公司 | 无线通信方法、装置、系统、服务器以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102004799B (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9589041B2 (en) | Client and server integration for replicating data | |
US8161070B2 (en) | Efficient delta handling in star and snowflake schemes | |
EP2330519A1 (en) | Distributed file system and data block consistency managing method thereof | |
US11775560B1 (en) | Method and system for using before images of changes for continuously comparing two databases which are actively being kept synchronized | |
CN107209704A (zh) | 检测丢失的写入 | |
CN101673289B (zh) | 分布式文件存储构架的构建方法和装置 | |
CN102004799B (zh) | 数据库冗余数据一致性检验方法 | |
US20180101589A1 (en) | High-performance database replication systems and methods | |
WO2022174537A1 (zh) | 一种条带数据存储结构及其构建、修复和更新方法 | |
CN103034739A (zh) | 一种分布式存储系统及其更新和查询方法 | |
CN103795754A (zh) | 多系统间的数据同步方法和系统 | |
CN109739831A (zh) | 数据库之间数据校验方法及装置 | |
Tyulenev et al. | Implementation of cluster-wide logical clock and causal consistency in mongodb | |
US20240037119A1 (en) | A method and device for storing data in a distributed database | |
CN112256698B (zh) | 一种基于多哈希函数的表关系自动关联方法 | |
CN109614262A (zh) | 业务校验方法、装置及计算机可读存储介质 | |
WO2014087287A1 (en) | Replication control using eventually consistent meta-data | |
CN110515927A (zh) | 数据处理方法及其系统、电子设备和介质 | |
CN111522811B (zh) | 数据库的处理方法及装置、存储介质、终端 | |
Tang et al. | Achieving convergent causal consistency and high availability for cloud storage | |
CN106850724A (zh) | 数据推送方法及装置 | |
US20120303593A1 (en) | Geo-Verification And Repair | |
CN107038088A (zh) | 一种数据恢复方法和装置 | |
JP2006185220A (ja) | データ処理装置、データ管理装置、データ処理方法、データ管理方法、データ処理プログラム、データ管理プログラム、及び情報システム | |
CN107276914A (zh) | 基于cmdb的自助资源分配调度的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |