主备服务器上数据库数据同步方法

文档序号:6582203阅读:227来源:国知局

专利名称::主备服务器上数据库数据同步方法
技术领域
:本发明涉及一种数据库数据同步方法,尤其涉及一种利用应用程序实现主备服务器上数据库数据同步方法。
背景技术
:随着计算机信息技术的不断发展,人们对信息系统的依赖越来越大,人们对数据库稳定性和安全性要求也越来越高。很多企业如银行、证券、保险等数据库服务器采用主备双服务器方式保证数据存储的安全。在主用数据库服务器发生故障时,及时将备用服务器切换为主用服务器,以保证信息系统数据库安全及系统运作稳定,大大縮短因数据库导致的服务中断时间。同时,主备双服务器方式可以将用户系统业务数据安全备份,保证数据安全。要实现主备双服务器安全机制,必须保证主备服务器数据库中数据实现实时同步,同时还要保证数据准确安全,不存在脏数据。与此同时,由于数据库中的数据量庞大及信息系统的处理任务繁重,所以数据库同步功能不能占用太多的系统及网络资源,以免增加系统负担,影响系统稳定性及安全性。现有技术中常直接利用数据库复制机制实现主备数据库实时同步,即将数据从一个数据源复制到多个数据源。其实施步骤一般为首先配置主数据库为分发数据库,并允许订阅服务;再配置备用服务器订阅分发服务器;最后配置各代理进程的调度和属性,有快照代理进程、分发代理进程和日志读取进程等。该技术方案需要对数据库的属性进行了修改,不但配置过程复杂,而且容易对数据库操作造成影响。此外,该方案的配置过程受数据库及操作系统限制。图1是现有的利用应用程序实现数据库数据同步示意图,请参见图l,为了避免直接复制数据库,该方案利用应用程序控制数据库同步复制功能,主用服务器数据库中设置有包括同步标识号和SQL语句的同步表,该方法包括A.备用服务器检查是否需要初始同步,即其保存的标识号是否存在于同步表中,如果不存在,则执行步骤B、C、D做初始同步操作,如果存在,则执行步骤E、F做同步操作;B.向主用服务器发送初始同步请求;C.主用服务器根据接收到的请求,在同步表中更新同步标识号,备份主用服务器数据库,生成备份文件,向备份服务器发送备份成功消息;D.备用服务器接收到备份成功消息后,获取更新后的同步标识号和备份文件,用备份文件恢复备用服务器数据库;E.主用服务器判断是否有需要实时同步的数据库操作;如果有需要同步的数据库操作,则做下面操作;F.主用服务器复制需要同步的数据库操作的SQL语句到同步表中;G.备用服务器从所述同步表中获取该SQL语句,备用服务器用同样的SQL访问备用服务器数据库。上述技术方案通过独立于数据库的应用程序控制数据库同步,减小了对数据库服务器的性能影响。但是,该解决方案存在如下缺陷1)在主用服务器复制SQL到同步表的过程中,并不能保证收集到同步表中的数据的事务完整。大部分的应用系统中,用户的操作不仅仅是简单的操作一个表,也不会只是一步操作,用户的操作大部分是由几步的操作组成的一个完整的事务,因此保证同步表中收集到的数据的事务完整和安全至关重要。如果同步表中的数据不是一个面向用户的完整的事务,将导致备用服务器数据库中的数据不完整或存在较多的脏数据。2)主用服务器数据库中的同步复制表中收集了应用系统中所有的业务数据,数据量比较大,主用服务器数据库必须定时删除其中的SQL语句,如果删除的SQL语句与备用服务器数据库不同步就要进行重新初始同步。
发明内容本发明所要解决的技术问题是提供一种主备服务器上数据库数据同步方法,提高数据同步的完整性及可靠性,并进一步减小了对数据库服务器的性能影响。本发明为解决上述技术问题而采用的技术方案是提供一种主备服务器上数据库数据同步方法,包括如下步骤主备服务器上由数据收集单元建立事务信息收集表;主服务器上由数据收集单元通过监控数据库写操作截取零散的业务数据,形成用户事务信息记录并备份到所述事务信息收集表;主服务器上由数据同步复制单元向备服务器同步用户事务信息收集表;主服务器上由数据转移单元转移已经同步的用户事务信息收集表。上述的主备服务器上数据库数据同步方法,其中,数据收集单元将用户对数据库的多条有顺序且相互关联SQL操作形成一条用户事务记录,每条用户事务信息记录包括该用户本次业务操作所有需要入库的业务数据,所述数据同步复制单元以一条用户事务信息记录为最小同步单位。上述的主备服务器上数据库数据同步方法,其中,当有新增用户事务信息记录时,所述数据收集单元发送UDP消息通知所述数据同步复制单元向备服务器同步用户事务信息收集表。上述的主备服务器上数据库数据同步方法,其中,所述数据转移单元定时将已经同步的用户事务信息记录转移并进行本地二次备份。本发明对比现有技术有如下的有益效果本发明提供的主备服务器上数据库数据同步方法,利用应用层数据收集单元、数据同步复制单元和数据转移单元分离数据收集和同步操作,减少对数据库服务器的性能影响,以新增的用户事务信息记录为最小同步单元,本发明将多条相关联的业务数据进行备份并同步,提高数据同步的完整性及可靠性。图1是现有的利用应用程序实现数据库数据同步示意图;图2是本发明的利用应用程序单元实现数据库数据同步示意图;图3是本发明的利用应用程序单元实现数据同步流程图。具体实施例方式下面结合附图和实施例对本发明作进一步的描述。图2是本发明的利用应用程序单元实现数据库数据同步示意图。请参见图2,本发明提供的数据库同步的方法,包括如下步骤主备服务器上由数据收集单元建立事务信息收集表,主服务器上由数据收集单元通过监控数据库写操作截取零散的业务数据,形成用户事务信息记录并备份到所述事务信息收集表;主服务器上由数据同步复制单元向备服务器同步用户事务信息收集表;主服务器上由数据转移单元转移已经同步的用户事务信息收集表。—般业务系统中定义用户的一次操作中,会包括对数据库的多步有序操作,本发明正是记录业务操作的每一步的SQL和他们的顺序并监视他们的执行情况,从而将该用户本次业务操作所有需要入库并已经成功入库的业务数据形成一条用户事务记录,如果数据库执行失败则不会收集到备份表中,如果数据库执行成功则将包含在一个事务中的所有SQL语句,按照执行顺序作为一条数据库记录收集到备份表中。在执行数据库同步复制是也同样将用户事务信息作为最小单位同步到备用服务器数据库中。也就是说,本发明是在数据库的执行成功的基础之上考虑了用户的业务操作事务,将多条相关联的业务数据进行备份并同步。事务信息收集表用作一次备份表(spylog)和二次备份表(spylog—back),一次备份表(spylog)包括同步标识号Id、时间dt、SQL语句ops和状态st四个字段,其数据类型分别为长整型(Bigint)、时间(Timestamp)、文本(text)和短整型。Spylog表如下表所示<table>tableseeoriginaldocumentpage5</column></row><table>二次备份表(Spyl0g_baCk)仅当同步出错时作检查备份,因此可以删除状态字段st,仅保留同步标识号Id、时间Timestamp和SQL语句三个字段,如下表所示<table>tableseeoriginaldocumentpage5</column></row><table>备用服务器数据库中包括标识号表(maxid),它只包括标识号id和时间dt两个字段,如下表所示<table>tableseeoriginaldocumentpage5</column></row><table>本发明提供的主备服务器上数据库数据同步方法,利用应用层数据收集单元、数据同步复制单元和数据转移单元分离数据收集和同步操作,各应用层单元分开独立操作,减少对数据库服务器的性能影响。其中,用户事务信息记录由数据收集单元通过监控数据库写操作截取零散的业务数据,每条用户事务信息记录包括该用户本次业务操作所有需要入库的业务数据、事务时间和同步标记,本发明以用户事务信息记录为最小同步单元,保证切换后的备服务器能及时提供必要且完整的用户事务数据,提高数据同步的完整性及可靠性。数据同步复制单元会定时检测是否有需要同步数据,并确保主备服务器的连接和备用数据库的可用性。数据转移单元将定时把收集到的并已同步到备用数据的数据批量转移,保证数据同步复制单元仅新增的用户事务信息记录,此外,所述数据转移单元定时根据同步标记将已经同步的用户事务信息记录转移进行本地二次备份。图3是本发明的利用应用程序单元实现数据同步流程图,上述各个应用单元具体实施流程如下单元一数据收集单元步骤IOI:本发明对数据库应用系统连接数据库的接口(连接数据库驱动)包装,对应用系统对数据库操作进行拦截和监控,记录数据库操作的数据、事务消息和执行成功或失败状况。步骤102:判断应用系统操作是否是需要同步的操作。具体是判断该操作是否改变数据库中数据。如果是改变数据库数据的操作,则会收集此业务数据到本地备份表(spylog)中。步骤103:本单元发生一个UDP消息给单元二,直接触发单元二执行数据复制功能,及时将需要同步复制的数据执行到备用服务器的数据库中,保证数据同步复制的实时性。单元二数据同步复制单元步骤201:本发明取得与备用服务器数据库的连接,并取得最新的同步标志。本步骤同时起到监控主用服务器的连接状况和备用服务器数据库的运行状况的作用,以便及时发现并处理问题。步骤202:备用服务器数据库中的同步标志和主用服务器数据库比较判断和查询出需要同步的数据。具体比较方法是主用服务器的数据库同步程序会检查本地备份表(spylog)中是否存在状态为未备份并且标识号大于备用服务器数据库中的标号表(maxid)中标号的记录,若不存在则结束,若存在则进行下一步操作。步骤203:将数据复制到备用数据库服务器中。具体执行方法是主用服务器数据库同步程序从数据库的连接池中得到备用服务器数据库的链接,然后把需要同步的SQL语句执行到备用服务器数据库中,实现主、备服务器数据库的同步。步骤204:当SQL语句执行成功后,同步过的记录的最大标识号更新到备用服务器数据库中的标号表中。同时将主用服务器数据库中备份表(spylog)中已经成功同步的记录的状态更新为已备份。本步骤和步骤203的操作在同一事务中,如果在该事物中的任何一步操作出现异常,全部操作回滚。并进入步骤201,重新执行判断和数据库同步操作,避免备用服务器中出现脏数据及本地备份表(spylog)中的备份数据混乱。单元三数据转移单元主用服务器中的数据库同步程序检查备份表(spylog)表中是否存在状态为已备份的记录,如果存在,则把这些记录备份到二次备份表(Spylog_back)中,然后在备份表(spylog)中把这些记录删除。二次备份表(Spylog_back)用来对数据做二次备份,如果出现备用服务器数据库的数据和主用服务器数据库数据不一致的情况,可以通过二次备份表(spylog_back)进行检查和更正。以上所述的三个单元模块中,单元一则是随原有应用系统对主用服务器数据库的操作而执行的,以确保主用服务器的数据同步及时、实时性;单元二和单元三设为定时执行,以确保主用服务器数据库数据同步的完整和确定性,同时可以实时检测主用服务器和备用服务器之间的网络连接状况,便于及时发现问题。如果因网络或其他问题导致主用服务器中的数据库同步程序关闭,请先查看程序目录下的日志文件,查出问题并解决,然后重新启动程序。本发明尽量减少主备数据库服务器之间的连接以及频繁打开关闭连接,同时又保证始终是可连接状态,这样既可以节省网络资源,又减小了数据同步功能对应用系统及数据库服务器性能的影响,同时又确保主备数据库服务器的可连接,保证数据同步的安全性。本发明另外提供日志记录功能,实时记录数据库同步状况,以便于在异常情况出现后,方便系统管理员维护和解决问题。本发明可以通过配置服务器链接检测频率、每次数据复制量、数据转移频率等一系列参数来控制数据库复制运行效率和实时性,使用者可以根据业务需求、数据库服务器的性能及稳定性进行合理的自定义配置,从而达到灵活应用到不同的数据库应用系统中。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。权利要求一种主备服务器上数据库数据同步方法,其特征在于,所述方法包括如下步骤主备服务器上由数据收集单元建立事务信息收集表;主服务器上由数据收集单元通过监控数据库写操作截取零散的业务数据,形成用户事务信息记录并备份到所述事务信息收集表;主服务器上由数据同步复制单元向备服务器同步用户事务信息收集表;主服务器上由数据转移单元转移已经同步的用户事务信息收集表。2.根据权利要求1所述的主备服务器上数据库数据同步方法,其特征在于,数据收集单元将用户对数据库的多条有顺序且相互关联SQL操作形成一条用户事务记录,每条用户事务信息记录包括该用户本次业务操作所有需要入库的业务数据,所述数据同步复制单元以一条用户事务信息记录为最小同步单位。3.根据权利要求2所述的主备服务器上数据库数据同步方法,其特征在于,当有新增用户事务信息记录时,所述数据收集单元发送UDP消息通知所述数据同步复制单元向备服务器同步用户事务信息收集表。4.根据权利要求2所述的主备服务器上数据库数据同步方法,其特征在于,所述数据同步复制单元定时检测未同步标识号并同步用户事务信息收集表。5.根据权利要求3或4所述的主备服务器上数据库数据同步方法,其特征在于,所述数据转移单元定时将已经同步的用户事务信息记录转移并进行本地二次备份。全文摘要本发明公开了一种主备服务器上数据库数据同步方法,其中,所述方法包括如下步骤主备服务器上由数据收集单元建立事务信息收集表,主服务器上由数据收集单元通过监控数据库写操作截取零散的业务数据,形成用户事务信息记录并备份到所述事务信息收集表;主服务器上由数据同步复制单元向备服务器同步用户事务信息收集表;主服务器上由数据转移单元转移已经同步的用户事务信息收集表。本发明提供的数据库数据同步方法,利用应用层数据收集单元、数据同步复制单元和数据转移单元分离数据收集和同步操作,减少对数据库服务器的性能影响,以新增的用户事务信息记录为最小同步单元,提高数据同步的完整性及可靠性。文档编号G06F17/30GK101706795SQ20091019966公开日2010年5月12日申请日期2009年11月30日优先权日2009年11月30日发明者任峰宏,何剑华,邓良玉,郑承夏申请人:上海世范软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1