一种数据库同步方法技术

技术编号:15690934 阅读:57 留言:0更新日期:2017-06-24 03:43
本发明专利技术涉及一种数据库同步方法,该方法由管理服务器提供数据库服务,并在主数据库服务器和副数据库服务器之间同步数据库操作,写操作由主数据库服务器和副数据库服务器依次执行,读操作由管理服务器分配副数据库服务器执行。本发明专利技术的方法提高了数据库同步的效率,也提高了数据库操作的执行效率。

Database synchronization method

The invention relates to a method of database synchronization, the method provided by the management server database services, and between the main database server and database server side database synchronization operation, a write operation is performed sequentially by the main database server and database server side, read operations assigned by the management server side database server implementation. The method of the invention improves the efficiency of database synchronization and improves the executing efficiency of the database operation.

【技术实现步骤摘要】
一种数据库同步方法
本专利技术属于计算机和数据库领域,尤其涉及一种数据库同步方法。
技术介绍
近年来,随着信息时代中信息量的爆炸,数据库产品已在各个行业得到了广泛的应用,进一步地,随着Internet的日益扩大,网络上各种大规模的数据服务需要应对海量的数据,也需要数据库技术的支撑。在需要海量数据的应用中,常常需要在多个数据库之间保持同步,从而可以使用多个数据库同时对外提供数据库服务,增大数据吞吐访问量,增强数据可用性,同时也可以应对不可测因素造成的数据丢失,有利于保证数据的可靠性。现有主流数据库产品一般都具有各自的数据库同步方案,但是,这些数据库同步方案有各自的优点,也有各自的缺点。一般而言,现有技术中的数据库同步方案的一种实现方式是离线同步,在同步时需要暂停源数据库或者目标数据库的使用,从而在一定程度上影响数据库服务;另外一种实现方式虽然无需暂停数据库服务,但是通常只能在两个数据库之间同步,而且数据不一致的风险性较高。对于现有技术的上述缺点,还没有一种完善的解决方案。
技术实现思路
为了解决现有技术中的上述问题,本专利技术提出了一种数据库同步方法。本专利技术采用的技术方案如下:一种数据库同步方法,该方法对一个主数据库服务器S0和n个副数据库服务器S1,S2,……,Sn进行数据库同步,由一个管理服务器对上述数据库服务器进行管理,并对外提供数据库服务,该方法包括写操作同步过程和读操作同步过程,其中写操作同步过程如下:步骤100:在所述管理服务器中为数据库中每一张数据表生成一个写操作锁,该写操作锁的初始值为0;步骤110:所述管理服务器接受对数据库的操作命令,并按序处理,当处理一个写操作命令时,将该写操作命令所要写的数据表的写操作锁增加1,然后将该写操作命令发送给主数据库服务器S0。步骤120:所述主数据库服务器S0接收到该写操作命令后,执行该写操作命令以修改相应的数据表;步骤130:所述主数据库服务器S0在执行完该写操作命令后,将被修改的数据表的修改信息发送给副数据库服务器S1;步骤140:副数据库服务器S1根据该修改信息对S1中的相应数据表进行修改,再将该修改信息发送给副数据库服务器S2,S2再根据该修改信息对S2中的相应数据表进行修改,以此类推,直到副数据库服务器Sn也根据该修改信息对Sn中的相应数据表进行修改;步骤150:所述副数据库服务器Sn向管理服务器发送消息,告知该写操作命令已执行完毕,所述管理服务器将所述数据表的写操作锁减1;所述读操作同步过程如下:步骤200:管理服务器在接收到一个读操作命令时,检查该读操作命令涉及的所有数据表的写操作锁,如果有一个写操作锁大于0,则将该读操作命令发送给主数据库服务器S0,由主数据库服务器S0执行该读操作命令,并将执行结果返回给所述管理服务器,读操作同步过程结束,否则执行步骤210;步骤210:所述管理服务器计算每一台副数据库服务器的繁忙指数,所述繁忙指数用于表明副数据库服务器当前等待处理的数据量;步骤220:所述管理服务器将该读操作命令发送给繁忙指数最小的副数据库服务器,由该副数据库服务器执行该读操作命令,并将执行结果返回给所述管理服务器。进一步地,所述对于任意一台副数据库服务器Si(1≤i≤n),其繁忙指数Bi的计算方法如下:步骤211:所述管理服务器获取Si尚未执行完毕的所有读操作命令,设这些读操作命令共M个,记为C1,C2,……,CM。步骤212:设读操作命令Cj涉及了Aj个数据表(1≤j≤M),该Aj个数据表记为T(j,k),其中1≤k≤Aj;数据表T(j,k)中共有R(j,k)个字段,则繁忙指数Bi为其中,Wi是副数据库服务器Si的性能系数。进一步地,所述性能系数由管理员根据每台副数据库服务器的机器性能预先设置。进一步地,当数据库中新建一张数据表时,所述管理服务器就为其生成一个写操作锁。进一步地,所述写操作包括增加数据、删除数据或修改数据。本专利技术的有益效果包括:提高了数据库同步的效率,也提高了数据库操作的执行效率。【附图说明】此处所说明的附图是用来提供对本专利技术的进一步理解,构成本申请的一部分,但并不构成对本专利技术的不当限定,在附图中:图1是本专利技术方法所应用的系统结构图。【具体实施方式】下面将结合附图以及具体实施例来详细说明本专利技术,其中的示意性实施例以及说明仅用来解释本专利技术,但并不作为对本专利技术的限定。参见附图1,其示出了本专利技术所应用的数据库系统环境,在该系统环境中包括一个管理服务器和多个数据库服务器,所述管理服务器是整个数据库系统与外部的接口,外部应用通过该管理服务器获取数据库服务。所述数据库服务器是用于存储数据库的服务器,是数据实际存储的地方,本专利技术的所述多个数据库服务器上的数据库是同步的,多个同步的数据库同时提供数据库服务,从而可以提供数据库系统的整体效率。所述多个数据库服务器之间,以及管理服务器和数据库服务器之间都通过网络连接。所述网络可以是本地局域网、广域网或者互联网。本专利技术的数据库服务器之间是实时同步的,也就是说,数据库服务器在通过管理服务器向外提供数据库服务的同时,实时保持同步。实际上,数据库同步的关键就在于数据修改的同步,即如何对数据库中数据的修改同时传播到每一个数据库服务器。现有技术中的一种做法是将数据库写命令同时发送到每一个数据库服务器,实现数据库服务器的同时修改,但是这种做法降低了数据吞吐率。本专利技术提出了一种新的同步修改方法,该方法将多个数据库服务器中的一个选择为主数据库服务器,而将其他的数据库服务器作为副数据库服务器,数据的修改首先修改主数据库服务器,再传播到其他副数据库服务器。在这种情况下,各个数据库服务器可以同时提供不同的读数据服务。为此,本专利技术的方法实际上将数据库的同步操作分成两类,一类是写操作,一类是读操作。设一个主数据库服务器为S0,n个副数据库服务器为S1,S2,……,Sn,首先对写操作的同步方法详细说明如下:步骤100:在管理服务器中为数据库中每一张数据表生成一个写操作锁,该写操作锁的初始值为0。所述写操作锁是用于表明该数据表正在接收写操作,所述写操作包括增加数据、删除数据、修改数据等类型。写操作锁是与数据表一一对应的,当数据库中新建一张数据表时,管理服务器就要为其生成一个写操作锁,并在后续的运行过程中维护该写操作锁。步骤110:所述管理服务器接受对数据库的操作命令,并按序处理,当处理一个写操作命令时,将该写操作命令所要写的数据表的写操作锁增加1,然后将该写操作命令发送给主数据库服务器S0。所述管理服务器是整个数据库系统的操作接口,因此所有的数据库操作命令都会发给所述管理服务器进行处理,管理服务器按照接收命令的顺序对所述操作命令进行处理。当管理服务器将写操作锁增加1时,就意味着相应的数据表正在被修改,后续的读操作命令应该进行相应的处理(对读操作命令的处理方法在后面说明)。由于每个写操作命令都会增加写操作锁,所以写操作锁的值就意味着当前对该数据表有几个写操作命令正在执行,因而这个值也可以用于数据库系统当前状态的分析。步骤120:所述主数据库服务器S0接收到该写操作命令后,执行该写操作命令以修改相应的数据表。步骤130:所述主数据库服务器S0在执行完该写操作命令后,将被修改的数据表的修改信息发送给副数据库服本文档来自技高网...
一种数据库同步方法

【技术保护点】
一种数据库同步方法,其特征在于,该方法对一个主数据库服务器S

【技术特征摘要】
1.一种数据库同步方法,其特征在于,该方法对一个主数据库服务器S0和n个副数据库服务器S1,S2,……,Sn进行数据库同步,由一个管理服务器对上述数据库服务器进行管理,并对外提供数据库服务,该方法包括写操作同步过程和读操作同步过程,其中写操作同步过程如下:步骤100:在所述管理服务器中为数据库中每一张数据表生成一个写操作锁,该写操作锁的初始值为0;步骤110:所述管理服务器接受对数据库的操作命令,并按序处理,当处理一个写操作命令时,将该写操作命令所要写的数据表的写操作锁增加1,然后将该写操作命令发送给主数据库服务器S0;步骤120:所述主数据库服务器S0接收到该写操作命令后,执行该写操作命令以修改相应的数据表;步骤130:所述主数据库服务器S0在执行完该写操作命令后,将被修改的数据表的修改信息发送给副数据库服务器S1;步骤140:副数据库服务器S1根据该修改信息对S1中的相应数据表进行修改,再将该修改信息发送给副数据库服务器S2,S2再根据该修改信息对S2中的相应数据表进行修改,以此类推,直到副数据库服务器Sn也根据该修改信息对Sn中的相应数据表进行修改;步骤150:所述副数据库服务器Sn向管理服务器发送消息,告知该写操作命令已执行完毕,所述管理服务器将所述数据表的写操作锁减1;所述读操作同步过程如下:步骤200:管理服务器在接收到一个读操作命令时,检查该读操作命令涉及的所有数据表的写操作锁,如果有一个写操作锁大于0,则将该读操作命令发送给主数据库服务器S0,...

【专利技术属性】
技术研发人员:吴方才林殷安西民
申请(专利权)人:航天星图科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1