CN108241551A - 一种冗余数据库*** - Google Patents
一种冗余数据库*** Download PDFInfo
- Publication number
- CN108241551A CN108241551A CN201611208382.2A CN201611208382A CN108241551A CN 108241551 A CN108241551 A CN 108241551A CN 201611208382 A CN201611208382 A CN 201611208382A CN 108241551 A CN108241551 A CN 108241551A
- Authority
- CN
- China
- Prior art keywords
- database
- server
- redundant
- database server
- source
- 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.)
- Pending
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2041—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种冗余数据库***,其特征在于,该***包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中所述调度服务器用于调度数据库的修改和查询请求;所述源数据库服务器用于接收和执行对数据库的修改请求;所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。
Description
【技术领域】
本发明属于数据库安全领域,尤其涉及一种冗余数据库***。
【背景技术】
冗余是通过***的存储备份,确保在各种不可预料的灾难来临之时,使得存储的数据信息仍然能够得以保全。数据库冗余就是为了防止单个数据库***因各种灾难事件而崩溃从而导致数据服务中断,在异地建立一套与源数据库***相当的***,当灾难出现后,冗余***可迅速承接源数据库***而提供数据服务,保证服务基本不中断。数据冗余的目的不仅要保护数据,更重要的是要能及时回复***运行,保证数据服务的连续性。
现有技术中,冗余数据库起到的作用仅仅是冗余备份的作用,只在源数据库***崩溃时,才能发挥作用,但这种设计实际上浪费了冗余数据库本身的能力,实质上提高了***建设的成本。
对于现有技术的上述缺点,还没有一种完善的解决方案。
【发明内容】
为了解决现有技术中的上述问题,本发明提出了一种冗余数据库***。
本发明采用的技术方案如下:
一种冗余数据库***,该***包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中
所述调度服务器用于调度数据库的修改和查询请求;
所述源数据库服务器用于接收和执行对数据库的修改请求;
所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;
所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。
进一步地,如果源数据库服务器出现故障,所述调度服务器从所述冗余数据库服务器中选择一个作为源数据库服务器。
进一步地,还包括备份服务器,当所述调度服务器出现故障是,使用该备份服务器代替所述调度服务器。
进一步地,所述备份服务器与调度服务器处于不同地区。
进一步地,所述源数据库服务器与所述冗余数据库服务器处于不同地区。
本发明的有益效果包括:提高了冗余数据库***的资源利用率,实质上降低了***建设成本,提高了数据读写速度。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明的***结构图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
参见附图1,本发明所应用的数据库***环境包括一个调度服务器、一个源数据库服务器和多个冗余数据库服务器,所述调度服务器是整个数据库***与外部的接口,外部应用通过该调度服务器获取数据库服务。所述数据库服务器是用于存储数据库的服务器,是数据实际存储的地方,本发明的所述多个数据库服务器(包括源数据库服务器和冗余数据库服务器)上的数据库是同步的,多个同步的数据库同时提供数据库服务,从而可以提供数据库***的整体效率。所述多个数据库服务器之间,以及调度服务器和数据库服务器之间都通过网络连接。所述网络可以是本地局域网、广域网或者互联网。源数据库服务器一旦出现故障,调度服务器将从所述冗余数据库服务器中选择一个作为源数据库服务器。所述调度服务器也可以具有备份的服务器,一旦调度服务器出现故障,使用该备份服务器代替该调度服务器。优选的,所述备份服务器与调度服务器处于不同地区,所述源数据库服务器与所述冗余数据库服务器也处于不同地区,从而实现异地冗余和容灾。
本发明的源数据库服务器和冗余数据库服务器之间是实时同步的,也就是说,数据库服务器在通过调度服务器向外提供数据库服务的同时,实时保持同步。实际上,数据库同步的关键就在于数据修改的同步,即如何对数据库中数据的修改同时传播到每一个数据库服务器。现有技术中的一种做法是将数据库写命令同时发送到每一个数据库服务器,实现数据库服务器的同时修改,但是这种做法降低了数据吞吐率。本发明提出了一种新的同步修改方法,该方法对数据的修改首先修改源数据库服务器,再传播到其他冗余数据库服务器。在这种情况下,各个数据库服务器可以同时提供不同的读数据服务。
为此,本发明实际上将数据库的同步操作分成两类,一类是写操作,一类是读操作。设一个源数据库服务器为S0,n个冗余数据库服务器为S1,S2,……,Sn,首先对写操作的同步方法详细说明如下:
步骤100:在调度服务器中为数据库中每一张数据表生成一个写操作锁,该写操作锁的初始值为0。
所述写操作锁是用于表明该数据表正在接收写操作,所述写操作包括增加数据、删除数据、修改数据等类型。写操作锁是与数据表一一对应的,当数据库中新建一张数据表时,调度服务器就要为其生成一个写操作锁,并在后续的运行过程中维护该写操作锁。
步骤110:所述调度服务器接受对数据库的操作命令,并按序处理,当处理一个写操作命令时,将该写操作命令所要写的数据表的写操作锁增加1,然后将该写操作命令发送给源数据库服务器S0。
所述调度服务器是整个数据库***的操作接口,因此所有的数据库操作命令都会发给所述调度服务器进行处理,调度服务器按照接收命令的顺序对所述操作命令进行处理。
当调度服务器将写操作锁增加1时,就意味着相应的数据表正在被修改,后续的读操作命令应该进行相应的处理(对读操作命令的处理方法在后面说明)。由于每个写操作命令都会增加写操作锁,所以写操作锁的值就意味着当前对该数据表有几个写操作命令正在执行,因而这个值也可以用于数据库***当前状态的分析。
步骤120:所述源数据库服务器S0接收到该写操作命令后,执行该写操作命令以修改相应的数据表。
步骤130:所述源数据库服务器S0在执行完该写操作命令后,将被修改的数据表的修改信息发送给冗余数据库服务器S1。
在许多情况下,写操作命令可能比较复杂,如果每个数据库服务器都执行该写操作命令会导致浪费计算资源和时间,因而本发明在源数据库服务器执行完写操作命令后,并不简单地传播该写操作命令,而是直接将被修改的数据表的相关修改信息传播到下一个数据库,这样后面需要同步的n个冗余数据库服务器,只需要根据该修改信息直接修改该数据表,而无需再执行一遍该写操作命令。
步骤140:冗余数据库服务器S1根据该修改信息对S1中的相应数据表进行修改,再将该修改信息发送给冗余数据库服务器S2,S2再根据该修改信息对S2中的相应数据表进行修改,以此类推,直到冗余数据库服务器Sn也根据该修改信息对Sn中的相应数据表进行修改。
上述步骤140的过程是一个链式同步的过程,从源数据库服务器S0开始,一直到Sn结束,完成了写操作的同步,同一时刻只有一个数据库服务器在修改该数据表,其他数据库可以继续进行其他数据库操作。
步骤150:所述冗余数据库服务器Sn向调度服务器发送消息,告知该写操作命令已执行完毕,所述调度服务器将所述数据表的写操作锁减1。
以上是写操作的同步过程,下面对读操作命令的同步过程进行说明:
步骤200:调度服务器在接收到一个读操作命令时,检查该命令涉及的所有数据表的写操作锁,如果有一个写操作锁大于0,则将该读操作命令发送给源数据库服务器S0,由源数据库服务器S0执行该读操作命令,并将执行结果返回给所述调度服务器,方法结束,否则执行步骤210。
从上述写操作同步过程可以看出,当写操作锁大于0时,意味着对该数据表的修改正在同步过程中,此时只有源数据库服务器的数据表肯定是最新的,因此由源数据库服务器执行该命令。
步骤210:所述调度服务器计算每一台冗余数据库服务器的繁忙指数,所述繁忙指数用于表明冗余数据库服务器当前等待处理的数据量。
步骤220:所述调度服务器将该读操作命令发送给繁忙指数最小的冗余数据库服务器,由该冗余数据库服务器执行该读操作命令,并将执行结果返回给所述调度服务器。
冗余数据库服务器根据调度服务器发送来的读操作命令,进行数据库的查询操作(即读操作),不同的读操作命令可以并行执行,也可以串行执行,这取决于具体数据库的设计,本发明对此不作限制。
上述繁忙指数实质上代表了冗余数据库服务器的繁忙程度,本领域技术人员在本发明的基础上,可以设计不同的繁忙指数计算方法,本发明对此不作限制。但是为了更好地说明,本发明下面给出了一个优选的计算方法,对于任意一台冗余数据库服务器Si(1≤i≤n),其繁忙指数Bi的计算方法如下:
步骤211:所述调度服务器获取Si尚未执行完毕的所有读操作命令,设这些读操作命令共M个,记为C1,C2,……,CM。
根据上述步骤200-220可知,所有读操作命令是由调度服务器分配下去的,并且调度服务器接收读操作命令的执行结果,因此调度服务器知道每个冗余数据库服务器被分配的读操作命令,也知道哪些读操作命令已经执行完毕,哪些尚未执行完毕。
步骤212:设读操作命令Cj涉及了Aj个数据表(1≤j≤M),该Aj个数据表记为T(j,k),其中1≤k≤Aj;数据表T(j,k)中共有R(j,k)个字段,则繁忙指数Bi为
其中,Wi是冗余数据库服务器Si的性能系数,其由管理员根据每台冗余数据库服务器的机器性能预先设置。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (5)
1.一种冗余数据库***,其特征在于,该***包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中
所述调度服务器用于调度数据库的修改和查询请求;
所述源数据库服务器用于接收和执行对数据库的修改请求;
所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;
所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。
2.根据权利要求1所述的冗余数据库***,其特征在于,如果源数据库服务器出现故障,所述调度服务器从所述冗余数据库服务器中选择一个作为源数据库服务器。
3.根据权利要求1-2任意一项所述的冗余数据库***,其特征在于,还包括备份服务器,当所述调度服务器出现故障是,使用该备份服务器代替所述调度服务器。
4.根据权利要求3所述的冗余数据库***,其特征在于,所述备份服务器与调度服务器处于不同地区。
5.根据权利要求1-4任意一项所述的冗余数据库***,其特征在于,所述源数据库服务器与所述冗余数据库服务器处于不同地区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611208382.2A CN108241551A (zh) | 2016-12-23 | 2016-12-23 | 一种冗余数据库*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611208382.2A CN108241551A (zh) | 2016-12-23 | 2016-12-23 | 一种冗余数据库*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108241551A true CN108241551A (zh) | 2018-07-03 |
Family
ID=62703392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611208382.2A Pending CN108241551A (zh) | 2016-12-23 | 2016-12-23 | 一种冗余数据库*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241551A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117322A (zh) * | 2018-08-28 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种服务器主备冗余的控制方法、***、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119414A (zh) * | 2007-09-19 | 2008-02-06 | 华为技术有限公司 | 访问数据库的方法及*** |
CN101309167A (zh) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | 基于集群备份的容灾***及方法 |
CN101316274A (zh) * | 2008-05-12 | 2008-12-03 | 华中科技大学 | 一种适用于广域网的数据容灾*** |
CN103902548A (zh) * | 2012-12-25 | 2014-07-02 | 航天信息股份有限公司 | 一种访问数据库的***和方法及注册、订票、网购*** |
CN104699566A (zh) * | 2013-12-16 | 2015-06-10 | 杭州海康威视数字技术股份有限公司 | 基于云存储的数据冗余备份方法、***及存储节点服务器 |
-
2016
- 2016-12-23 CN CN201611208382.2A patent/CN108241551A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119414A (zh) * | 2007-09-19 | 2008-02-06 | 华为技术有限公司 | 访问数据库的方法及*** |
CN101316274A (zh) * | 2008-05-12 | 2008-12-03 | 华中科技大学 | 一种适用于广域网的数据容灾*** |
CN101309167A (zh) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | 基于集群备份的容灾***及方法 |
CN103902548A (zh) * | 2012-12-25 | 2014-07-02 | 航天信息股份有限公司 | 一种访问数据库的***和方法及注册、订票、网购*** |
CN104699566A (zh) * | 2013-12-16 | 2015-06-10 | 杭州海康威视数字技术股份有限公司 | 基于云存储的数据冗余备份方法、***及存储节点服务器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117322A (zh) * | 2018-08-28 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种服务器主备冗余的控制方法、***、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6662196B2 (en) | Collision avoidance in bidirectional database replication | |
US7627611B2 (en) | Conflict resolution in database replication through autonomous node qualified folding | |
CN108280080B (zh) | 一种数据同步方法、装置以及电子设备 | |
US10489378B2 (en) | Detection and resolution of conflicts in data synchronization | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
WO2021233167A1 (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
US11188423B2 (en) | Data processing apparatus and method | |
CN110188103A (zh) | 数据对账方法、装置、设备和存储介质 | |
CN111736964A (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN112654978A (zh) | 分布式异构存储***中数据一致性实时检查的方法、设备和*** | |
CN112035481B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN104978336A (zh) | 基于Hadoop分布式计算平台的非结构化数据存储*** | |
EP3467670B1 (en) | Light weight redundancy tool for performing transactions | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
US11288263B2 (en) | Change service for shared database object | |
JP2023546897A (ja) | オブジェクト処理方法、装置、及びコンピュータ機器 | |
CN106874341A (zh) | 一种数据库同步方法 | |
CN108241551A (zh) | 一种冗余数据库*** | |
CN102193987B (zh) | 基于oltp的增加节点数据关系的方法及*** | |
US20120109920A1 (en) | Systems and methods providing a soft exit state fro secondary business objects locks | |
Azim et al. | Offsite 2-Way Data Replication toward Improving Data Refresh Performance | |
CN116974983A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
US11157454B2 (en) | Event-based synchronization in a file sharing environment | |
CN110677497B (zh) | 一种网络介质分发方法及装置 | |
CN108241641A (zh) | 一种分布式数据库的操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 101399 No. 2 East Airport Road, Shunyi Airport Economic Core Area, Beijing (1st, 5th and 7th floors of Industrial Park 1A-4) Applicant after: Zhongke Star Map Co.,Ltd. Address before: 101399 Building 1A-4, National Geographic Information Technology Industrial Park, Guomen Business District, Shunyi District, Beijing Applicant before: GEOVIS TECHNOLOGY (BEIJING) Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180703 |