CN107832383A - 一种跨机房数据库的数据一致性校验方法 - Google Patents
一种跨机房数据库的数据一致性校验方法 Download PDFInfo
- Publication number
- CN107832383A CN107832383A CN201711039064.2A CN201711039064A CN107832383A CN 107832383 A CN107832383 A CN 107832383A CN 201711039064 A CN201711039064 A CN 201711039064A CN 107832383 A CN107832383 A CN 107832383A
- Authority
- CN
- China
- Prior art keywords
- database
- verification
- data
- node database
- child node
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Abstract
一种跨机房数据库数据一致性校验的方法,包括:1:一致性校验环境的设置,具体为:在各个地域的机房内分别部署主节点数据库和子节点数据库,且每个数据库中设有相同的表结构;2)配置校验任务信息,校验任务信息包括校验执行的频率、有校验需求的数据库表及有校验需求的表字段;3)按照校验执行的频率,每隔固定的时间段,主节点数据库主动触发校验任务;4)各个子节点数据库接收到校验任务信息后,提取信息中数据库、数据表及表字段信息指令;5)主节点数据库一直保持接收各子节点数据库发送数据的状态,一边接收校验结果,一边对校验结果进行比对,并判断各个子节点的校验结果是否一致。
Description
技术领域
本发明属于多数据库的联机数据交互领域,具体涉及一种跨机房数据库的数据一致性校验方法。
背景技术
伴随着B2B电子商务行业的发展,互联网服务业务越来越多,用户基数也越来越大,为保障可靠性的需求,网站多会部署在在不同地域的机房中,各机房中部署数据库系统,并提供完整的网站服务,各机房数据库之间数据互相复制,保证各机房都有一套完整的数据。然而,多机房最大的挑战是机房之间因网络延迟而带来的数据更新延迟,最终导致各机房数据库之间的数据不一致。现有主备数据库校验一致性技术中都是将在同一时间的主数据库和备用数据库进行比对以确定两个数据库之间的数据是否已实现同步,然而,因数据同步一般是在主数据库发生数据更新后,主数据库再将更新的数据同步到备用数据库中,这样就导致数据同步过程中会存在一定的延时,如果以同一时间点两个数据库之间的数据进行比对的话,往往会因为时间延迟问题导致本该判定为一直的数据被判为不一致;常用的数据库一致性技术校验方法是先对数据库中的表关键字排序,随后再以相应的算法比较,这类解决方案占用诸如内存、swap空间能大量数据库资源,在数据量巨大的时候尤为明显,甚至影响数据库的性能。
为在不影响数据库性能的前提下解决数据库不一致的问题,专利“数据库一致性校验方法及系统、定位数据库差异的方法及系统(申请号:201310704107.X)”做了技术探究,提出一种校验数据库不一致性的方法,具体步骤包括:a.按照预定条件将主数据库与备数据库中的数据行分组;b.计算主数据库每一分组及备数据库每一分组的md5值;c.将所计算的主数据库的每一分组的md5值与相应的备数据库分组的md5值比较,如果主数据库所有分组的md5值与相应的备数据库分组的md5值一致,则表明主数据库与备数据库一致。还提供相应的系统,以及基于该方法的定位数据库差异的方法及系统。该专利虽然能够以较小的计算量及网络数据传输量,定位到存在差异的数据,但该专利仍旧还仅停留在主备数据库一致性校验的研究上,而且采用分组形式校验并不适用于大量不一致数据,反而将带来因不一致数据分散在不同分组而导致需要重复查询数据的问题,同时该专利也没有对如何实现跨地域数据库间的数据自动化定时校验给予明确的解决方案。
发明内容
为解决现有技术存在的缺陷,本发明目的是,提供一种跨机房数据库数据一致性校验的方法,通过在跨地域的数据库间部署消息系统,并预先配置校验任务信息,包括校验频率、有校验需要的数据库表及校验字段;当校验启动后,能按照预先设置的校验频率,定时地启动校验操作,并在校验任务过程中持续地收集各个数据库表内某一具体数据的校验值,实时反馈校验结果,不仅保证在跨地域环境中自动化且高效地发现不一致的问题,而且能准确定位到具体的数据,有利于提高数据库不一致性问题的解决速度。
本发明的技术方案是,一种跨机房数据库数据一致性校验的方法,具体步骤包括:步骤1:一致性校验环境的设置,具体为:在各个地域的机房内分别部署主节点数据库和子节点数据库,且每个数据库中设有相同的表结构;主节点数据库和子节点数据库之间构建消息系统,实现跨地域数据库间以消息传递的方式传输校验值;
步骤2:配置校验任务信息,校验任务信息包括校验执行的频率、有校验需求的数据库表及有校验需求的表字段;
步骤3:按照校验执行的频率,每隔固定的时间段,主节点数据库主动触发校验任务,待校验任务开始后,主节点数据库将校验任务信息,包括“有校验需求的数据库、表及有校验需求的表字段”,以消息传递的形式,通过数据库间的消息系统发送至各个子节点数据库;
步骤4:各个子节点数据库接收到校验任务信息后,提取信息中数据库、数据表及表字段信息指令,当前子节点数据库中从本数据库中查询数据表的特定表字段,并按照表主键排序提取具体数据并通过加密算法的计算,生成唯一的校验值,并将最终的校验值结果以消息传递的形式,通过数据库间的消息系统批量发送至主节点数据库;
步骤5:主节点数据库一直保持接收各子节点数据库发送数据的状态,一边接收校验结果,一边对校验结果进行比对,并判断各个子节点的校验结果是否一致;
如果一致,表明各机房数据库中的数据是一致的;
如果不一致,表明各机房数据库中的数据是不一致的,记录不一致的数据;
步骤6:待主节点数据库将所有子节点数据库发送的校验值全部比对结束后,将所有已记录的不一致数据存储,以做后续的分析;
步骤7:按照校验的频率,每当过一个间隔期,特定数据表中特定字段的校验任务重新开启,转步骤2:
有益效果:本发明与现有技术相比,具备的技术效果有:
(1)本发明通过构建消息系统,搭建跨地域数据库之间的消息传递机制,并以提前配置校验任务信息的方式,控制数据一致性校验的按需执行和执行频率,实现跨地域数据库一致性校验的自动化;
(2)本发明通过对每一条数据单独计算校验值,以最小的成本,不仅准确定位到存在差异的主或子节点数据库,而且能具体到数据库中的某一个数据,有利于提高数据库不一致性问题的解决速度;
(3)本发明通过为数据库及表校验配置校验信息,将校验以任务的形式交由主节点管理和控制,实现针对特定表及表内特定字段的定时校验,提高校验过程的自动化和定制化。
附图说明
图1为本发明实施例中数据库一致性校验结构示意图
图2为本发明实施例中数据库一致性校验流程图;
图3本发明实施例中主数据库发送数据校验信息命令的示意图
图4本发明实施例中各子节点反馈校验值结果的示意图
具体实施方式
为了使本发明的目的、技术方案更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明实施例中数据库一致性校验结构示意图,本发明实施例中有4个数据中心,即IDC1、IDC2、IDC3及IDC4,4个数据中心可设置在不同地域,也可设置在不同地域;每一个机房内部署一个数据库,即DB1、DB2、DB3、DB4,且4个数据库的表结构保持一致;根据实际的校验需求,选取任意数据中心内的数据库作为主节点和子节点;本发明实施例选用IDC1中的数据库DB1作为主节点,其余3个数据库作为子节点;主节点数据库和子节点数据库之间构建消息系统MQ,通过消息系统MQ,跨地域数据库间以消息传递的方式传输校验值;
图2是本发明实施例中数据库一致性校验方法的流程图,应用于校验主数据库与备数据库之间的一致性。以验证数据表A内数据一致性为例,校验步骤具体包括:
步骤201:配置数据表A校验的任务信息,具体包括校验执行的频率、有校验需求的数据库表及有校验需求的表字段,并交由主节点数据库DB1管理此任务;
步骤202:按照校验频率,每隔固定的时间段,主节点数据库DB1主动触发校验任务,待校验任务开始后,主节点数据库DB1将校验任务信息,包括“有校验需求的数据库、表及有表A的表字段;接着,按照表主键排序提取表A中的具体数据,结合任意加密算法计算,生成关于表A的唯一校验值,并将最终的校验值结果以消息传递的形式,通过数据库间的消息系统MQ批量发送至主节点数据库DB1,如图4;
步骤204:主节点数据库DB1一直保持接收各子节点发送数据的状态,一边接收校验结果,一边对校验结果进行比对,并判断各个子节点的校验结果是否保持一致;
如果一致,表明各机房数据库中的数据是一致的,删除已参与校验的结果;
如果不一致,表明各机房数据库中的数据是不一致的,记录不一致的数据库及数据中心;
步骤205:待主节点将所有子节点发送的校验值全部比对结束后,将所有已记录的不一致数据存储,以便后续提取进行分析;
步骤206:按照校验的频率,每当过一个间隔期,特定数据表中特定字段的校验任务重新开启,转步骤201:
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种跨机房数据库数据一致性校验的方法,其特步骤包括:步骤1:一致性校验环境的设置,具体为:在各个地域的机房内分别部署主节点数据库和子节点数据库,且每个数据库中设有相同的表结构;主节点数据库和子节点数据库之间构建消息系统,实现跨地域数据库间以消息传递的方式传输校验值;
步骤2:配置校验任务信息,校验任务信息包括校验执行的频率、有校验需求的数据库表及有校验需求的表字段;
步骤3:按照校验执行的频率,每隔固定的时间段,主节点数据库主动触发校验任务,待校验任务开始后,主节点数据库将校验任务信息,包括“有校验需求的数据库、表及有校验需求的表字段”,以消息传递的形式,通过数据库间的消息系统发送至各个子节点数据库;
步骤4:各个子节点数据库接收到校验任务信息后,提取信息中数据库、数据表及表字段信息指令,当前子节点数据库中从本数据库中查询数据表的特定表字段,并按照表主键排序提取具体数据并通过加密算法的计算,生成唯一的校验值,并将最终的校验值结果以消息传递的形式,通过数据库间的消息系统批量发送至主节点数据库;
步骤5:主节点数据库一直保持接收各子节点数据库发送数据的状态,一边接收校验结果,一边对校验结果进行比对,并判断各个子节点的校验结果是否一致;
如果一致,表明各机房数据库中的数据是一致的;
如果不一致,表明各机房数据库中的数据是不一致的,记录不一致的数据;
步骤6:待主节点数据库将所有子节点数据库发送的校验值全部比对结束后,将所有已记录的不一致数据存储,以做后续的分析;
步骤7:按照校验的频率,每当过一个间隔期,特定数据表中特定字段的校验任务重新开启,转步骤2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711039064.2A CN107832383B (zh) | 2017-10-30 | 2017-10-30 | 一种跨机房数据库的数据一致性校验方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711039064.2A CN107832383B (zh) | 2017-10-30 | 2017-10-30 | 一种跨机房数据库的数据一致性校验方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832383A true CN107832383A (zh) | 2018-03-23 |
CN107832383B CN107832383B (zh) | 2019-02-05 |
Family
ID=61650139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711039064.2A Active CN107832383B (zh) | 2017-10-30 | 2017-10-30 | 一种跨机房数据库的数据一致性校验方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832383B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664593A (zh) * | 2018-05-08 | 2018-10-16 | 东软集团股份有限公司 | 数据一致性校验方法、装置、存储介质及电子设备 |
CN109450988A (zh) * | 2018-10-19 | 2019-03-08 | 焦点科技股份有限公司 | 一种在异地多活架构下保障数据一致性的方法 |
CN111274311A (zh) * | 2018-12-05 | 2020-06-12 | 聚好看科技股份有限公司 | 一种跨机房数据库的数据同步方法和装置 |
CN113391767A (zh) * | 2021-06-30 | 2021-09-14 | 北京百度网讯科技有限公司 | 数据一致性的校验方法、装置、电子设备及可读存储介质 |
CN115017133A (zh) * | 2022-05-31 | 2022-09-06 | 焦点科技股份有限公司 | 一种基于文件的异构数据库数据一致性校验方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391311A (zh) * | 2013-06-24 | 2013-11-13 | 北京奇虎科技有限公司 | 一种多平台之间数据一致性校验的方法和系统 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
US20140164324A1 (en) * | 2012-12-10 | 2014-06-12 | International Business Machines Corporation | Utilization of data structures to synchronize copies of a resource |
CN104021132A (zh) * | 2013-12-08 | 2014-09-03 | 郑州正信科技发展股份有限公司 | 主备数据库数据一致性核查备份方法及其系统 |
CN105306585A (zh) * | 2015-11-12 | 2016-02-03 | 焦点科技股份有限公司 | 一种多数据中心的数据同步方法 |
US20160063050A1 (en) * | 2014-08-28 | 2016-03-03 | Joerg Schoen | Database Migration Consistency Checker |
CN106156318A (zh) * | 2016-07-05 | 2016-11-23 | 武汉斗鱼网络科技有限公司 | 一种实现多节点数据库高可用的系统及方法 |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理系统和方法 |
-
2017
- 2017-10-30 CN CN201711039064.2A patent/CN107832383B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140164324A1 (en) * | 2012-12-10 | 2014-06-12 | International Business Machines Corporation | Utilization of data structures to synchronize copies of a resource |
CN103391311A (zh) * | 2013-06-24 | 2013-11-13 | 北京奇虎科技有限公司 | 一种多平台之间数据一致性校验的方法和系统 |
CN104021132A (zh) * | 2013-12-08 | 2014-09-03 | 郑州正信科技发展股份有限公司 | 主备数据库数据一致性核查备份方法及其系统 |
CN103647669A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种保证分布式数据处理一致性的系统及方法 |
US20160063050A1 (en) * | 2014-08-28 | 2016-03-03 | Joerg Schoen | Database Migration Consistency Checker |
CN105306585A (zh) * | 2015-11-12 | 2016-02-03 | 焦点科技股份有限公司 | 一种多数据中心的数据同步方法 |
CN106156318A (zh) * | 2016-07-05 | 2016-11-23 | 武汉斗鱼网络科技有限公司 | 一种实现多节点数据库高可用的系统及方法 |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理系统和方法 |
Non-Patent Citations (1)
Title |
---|
张华伟 等: "分布式系统中异地数据库的数据一致性维护", 《计算机工程与应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664593A (zh) * | 2018-05-08 | 2018-10-16 | 东软集团股份有限公司 | 数据一致性校验方法、装置、存储介质及电子设备 |
CN109450988A (zh) * | 2018-10-19 | 2019-03-08 | 焦点科技股份有限公司 | 一种在异地多活架构下保障数据一致性的方法 |
CN109450988B (zh) * | 2018-10-19 | 2020-07-31 | 焦点科技股份有限公司 | 一种在异地多活架构下保障数据一致性的方法 |
CN111274311A (zh) * | 2018-12-05 | 2020-06-12 | 聚好看科技股份有限公司 | 一种跨机房数据库的数据同步方法和装置 |
CN113391767A (zh) * | 2021-06-30 | 2021-09-14 | 北京百度网讯科技有限公司 | 数据一致性的校验方法、装置、电子设备及可读存储介质 |
CN115017133A (zh) * | 2022-05-31 | 2022-09-06 | 焦点科技股份有限公司 | 一种基于文件的异构数据库数据一致性校验方法 |
CN115017133B (zh) * | 2022-05-31 | 2024-04-26 | 焦点科技股份有限公司 | 一种基于文件的异构数据库数据一致性校验方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107832383B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832383B (zh) | 一种跨机房数据库的数据一致性校验方法 | |
US10237295B2 (en) | Automated event ID field analysis on heterogeneous logs | |
US20190317757A1 (en) | Deployment of infrastructure in pipelines | |
US20180315035A1 (en) | Systems and methods for point of sale data synchronization | |
CN104994177B (zh) | 网盘系统的同步方法、终端设备和网盘系统 | |
US11531645B2 (en) | Method, apparatus and computer program product for improving data indexing in a group-based communication platform | |
CN105447046A (zh) | 一种分布式系统数据一致性处理方法、装置和系统 | |
CN108804306A (zh) | 用于自动测试系统的方法和设计 | |
CN108710681A (zh) | 文件获取方法、装置、设备及存储介质 | |
WO2017071337A1 (zh) | 管理数据库表数据的方法、装置及系统 | |
Huang et al. | A simulation-based optimization approach for reliability-aware service composition in edge computing | |
WO2021136233A1 (zh) | 业务升级的方法、装置和系统 | |
Yang et al. | A predictive load balancing technique for software defined networked cloud services | |
US20050010386A1 (en) | Method and system for dynamically modeling resources | |
CN110380890A (zh) | 一种cdn系统服务质量检测方法及系统 | |
Berger et al. | Does my bft protocol implementation scale? | |
CN109451069A (zh) | 基于分布式存储的网络数据文件库存储及查询方法 | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
US9256700B1 (en) | Public service for emulation of application load based on synthetic data generation derived from preexisting models | |
Luo et al. | Clustering and tailoring user session data for testing web applications | |
Sekiguchi et al. | Configuration management technology using tree structures of ICT systems | |
CN114510529A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
Le et al. | Building smaller sized surrogate models of complex bipartite networks based on degree distributions | |
CN106453441B (zh) | 一种通信预处理方法及管理系统 | |
Kirstein et al. | Blockchain for trustworthy publication and integration of Linked Open Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |