本发明专利技术涉及一种冗余数据库系统,其特征在于,该系统包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中所述调度服务器用于调度数据库的修改和查询请求;所述源数据库服务器用于接收和执行对数据库的修改请求;所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。
A redundant database system
The invention relates to a redundant database system, which is characterized by the system including a scheduling server, a source database server and a number of redundant database servers, in which the scheduling server is used to schedule the modification and query requests of the database, and the source database server is used to receive and execute the modification to the database. The redundant database server receives the modified information from the source database server and modifies its own stored database according to the modified information; the multiple redundant database servers receive the query to the database and return the query results.
【技术实现步骤摘要】
一种冗余数据库系统
本专利技术属于数据库安全领域,尤其涉及一种冗余数据库系统。
技术介绍
冗余是通过系统的存储备份,确保在各种不可预料的灾难来临之时,使得存储的数据信息仍然能够得以保全。数据库冗余就是为了防止单个数据库系统因各种灾难事件而崩溃从而导致数据服务中断,在异地建立一套与源数据库系统相当的系统,当灾难出现后,冗余系统可迅速承接源数据库系统而提供数据服务,保证服务基本不中断。数据冗余的目的不仅要保护数据,更重要的是要能及时回复系统运行,保证数据服务的连续性。现有技术中,冗余数据库起到的作用仅仅是冗余备份的作用,只在源数据库系统崩溃时,才能发挥作用,但这种设计实际上浪费了冗余数据库本身的能力,实质上提高了系统建设的成本。对于现有技术的上述缺点,还没有一种完善的解决方案。
技术实现思路
为了解决现有技术中的上述问题,本专利技术提出了一种冗余数据库系统。本专利技术采用的技术方案如下:一种冗余数据库系统,该系统包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中所述调度服务器用于调度数据库的修改和查询请求;所述源数据库服务器用于接收和执行对数据库的修改请求;所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。进一步地,如果源数据库服务器出现故障,所述调度服务器从所述冗余数据库服务器中选择一个作为源数据库服务器。进一步地,还包括备份服务器,当所述调度服务器出现故障是,使用该备份服务器代替所述调度服务器。进一步地,所述备份服务器与调度服务器处于不同地区。进一步地,所述源数据库服务器与所述冗余数据库服务器处于不同地区。本专利技术的有益效果包括:提高了冗余数据库系统的资源利用率,实质上降低了系统建设成本,提高了数据读写速度。【附图说明】此处所说明的附图是用来提供对本专利技术的进一步理解,构成本申请的一部分,但并不构成对本专利技术的不当限定,在附图中:图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:所述调度服务器计算每一台冗余数据库服务器的繁忙指数,所述繁忙指数用于表明冗余数据库服务器当前等待处理的数据量本文档来自技高网...
【技术保护点】
1.一种冗余数据库系统,其特征在于,该系统包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中所述调度服务器用于调度数据库的修改和查询请求;所述源数据库服务器用于接收和执行对数据库的修改请求;所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。
【技术特征摘要】
1.一种冗余数据库系统,其特征在于,该系统包括调度服务器、源数据库服务器和多台冗余数据库服务器;其中所述调度服务器用于调度数据库的修改和查询请求;所述源数据库服务器用于接收和执行对数据库的修改请求;所述冗余数据库服务器从所述源数据库服务器接收修改信息,并根据该修改信息修改自身存储的数据库;所述多台冗余数据库服务器接收对数据库的查询,并返回查询结果。2.根据权利要求1所述的冗余数据库系统,其特征在于,如果源数据库服务器出现故...
【专利技术属性】
技术研发人员:曾刚,安西民,徐凤桐,
申请(专利权)人:航天星图科技北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。