用于数据库管理系统的数据复制方法及系统转让专利

申请号 : CN200880015777.8

文献号 : CN101681383B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 镇银淑朴奇银金甲荣徐在奉

申请人 : NHN商务平台株式会社

摘要 :

本发明提供了一种数据库管理系统DBMS中的数据复制方法。所述数据复制方法包括:通过主数据库的交易日志生成复制日志,以将所述生成的复制日志传送到分配器;判断分配所述复制日志的从主机,以将所述复制日志分配给相应的从主机;和在从数据库中反映所述复制日志。

权利要求 :

1.一种数据库管理系统DBMS中的数据复制方法,所述数据复制方法包括:通过在被包含在主控主机中的主数据库的交易日志生成复制日志,以将所述生成的复制日志传送到分配器;

判断多个从主机中的分配所述复制日志的从主机,以将所述复制日志分配给相应的从主机;和在所述相应的从主机所包含的从数据库中反映所述复制日志,其中,所述从主机对从主数据库通过复制日志复制的数据执行读操作,而对除复制的数据之外的附加生成的数据执行读操作和写操作。

2.如权利要求1所述的数据复制方法,其中,所述复制日志包括所述主数据库的修改,且所述复制日志的生成包括:在被包含在主控主机中的复制服务器中分析所述交易日志,以生成由所述修改组成的复制日志;和将所述复制日志从所述复制服务器传送到被包含在所述分配器中的复制代理中。

3.如权利要求2所述的数据复制方法,其中,所述复制服务器作为处理器来运行,来处理与从至少一个复制代理中接收的交易日志相关的传送请求,且包括用于处理所述传送请求的第一线程和用于验证通过所述主数据库的所述交易日志的第二线程。

4.如权利要求2所述的数据复制方法,其中,当多个复制日志以交易单位被生成的时候,所述复制服务器利用多个缓冲来临时存储所述复制日志,且将所述临时存储的复制日志传送到相应分配器的所述复制代理中。

5.如权利要求1所述的数据复制方法,其中,所述分配器包括分配数据库和复制代理,且所述从主机的判断包括:从所述复制代理中接收所述复制日志,以临时存储所述接收的复制日志;

利用所述分配数据库从所述复制代理中来验证所述多个从主机中的分配所述复制日志的从主机;和将所述复制日志从所述复制代理传送到所述相应从主机中。

6.如权利要求5所述的数据复制方法,其中,所述分配数据库包括主控 主机和从主机的配置信息。

7.如权利要求5所述的数据复制方法,其中,当多个复制日志被接收的时候,所述复制代理临时存储多个复制日志的每一个,且将所述临时存储的复制日志分配到相应的从主机中。

8.如权利要求5所述的数据复制方法,其中,所述从主机的判断进一步包括:生成与来自所述复制代理的所述复制日志相关的跟踪日志,且所述跟踪日志包括与最终被应用于包含在每个从主机中的每个从数据库的所述复制日志相关的日志序列号。

9.如权利要求5所述的数据复制方法,其中,所述从主机的判断进一步包括:生成与来自所述复制代理的所述复制日志相关的错误日志,且在所述复制代理执行复制操作的同时,生成的所有错误被记录在所述错误日志中。

10.如权利要求1所述的数据复制方法,其中,所述交易日志与在主数据库中生成的所有修改相对应,且包括:撤销日志,用于存档先前数据图像来终止更新操作,和

重做日志,用于存档在执行所述更新操作后获取的数据图像来再次执行所述更新操作,且所述复制日志包括所述重做日志。

11.如权利要求1所述的数据复制方法,其中,所述主数据库作为原始数据库来运行以成为所述复制的目标,且所有数据库操作允许在所述主数据库中被执行,且所述从数据库作为数据库来运行以成为所述复制的目的地且反映所述主数据库的修改。

12.如权利要求1所述的数据复制方法,进一步包括:在所述从数据库中经由所述分配器,反映与所述主数据库的模式相关的修改;和在被包含在所述分配器的分配数据库中,反映与所述主数据库的指数、触发和用户账户中的至少一个相关的修改,其中,当故障在所述主控主机中发生时,在作为另外一个主控主机运行的从主机中,所述分配器反映所述指数、触发和用户账户中的至少一个。

13.如权利要求1所述的数据复制方法,其中,主控主机和所述从主机根据用户需求按N∶M的比率被组成,且异步复制通过在所述主控主机和所述从 主机间的至少一个分配器被执行。

14.一种数据库管理系统DBMS中的数据复制系统,所述数据复制系统包括:主控主机,通过主数据库的交易日志生成复制日志,以将所述生成的复制日志传送到分配器;

分配器,判断多个从主机中的分配所述复制日志的从主机,以将所述复制日志分配给相应的从主机;和从主机,接收所述复制日志,以在从数据库中反映所述接收的复制日志,其中,所述从主机对于从主数据库通过复制日志复制的数据执行读操作,而对除复制的数据之外的附加生成的数据执行读操作和写操作。

15.如权利要求14所述的数据复制系统,其中,所述复制日志包括所述主数据库的修改,且所述主控主机包括:主数据库模块,作为原始数据库运行,以成为所述复制的目标;和复制服务器,用于分析所述主数据库的交易日志,以生成由所述修改组成的复制日志,且将生成的复制日志传送到所述分配器中。

16.如权利要求15所述的数据复制系统,其中,所述复制服务器处理用于从至少一个复制代理中接收的交易日志的传送请求。

17.如权利要求14所述的数据复制系统,其中,所述分配器包括:分配数据库模块,包括主控主机和从主机的配置信息;和复制代理,利用所述复制日志来执行数据复制。

18.如权利要求17所述的数据复制系统,其中,所述复制代理包括:存储单元,从所述主控主机中接收所述复制日志,以临时存储所述接收的复制日志;

从主机验证单元,利用所述分配数据库来验证所述从主机;和传送单元,将所述复制日志传送到所述相应从主机中。

19.如权利要求14所述的数据复制系统,其中,所述主控主机进一步包括:第一修改反映单元,在所述从数据库中经由所述分配器,反映与所述主数据库的模式相关的修改;和第二修改反映单元,在被包含在所述分配器的分配数据库中,反映与所述主数据库的指数、触发和用户账户中的至少一个相关的修改。

20.如权利要求14所述的数据复制系统,其中,所述交易日志与在主数据库中生成的所有修改相对应,且包括:撤销日志,用于存档先前数据图像来终止更新操作,和

重做日志,用于存档在执行所述更新操作后获取的数据图像来再次执行所述更新操作,且所述复制日志包括所述重做日志。

21.如权利要求14所述的数据复制系统,其中,所述主控主机和所述从主机根据用户需求按N∶M的比率组成,且异步复制通过在所述主控主机和所述从主机间的至少一个分配器被执行。

说明书 :

用于数据库管理系统的数据复制方法及系统

技术领域

[0001] 本发明提供了一种数据管理系统(DBMS:Database Management System)中的数据复制方法及系统。

背景技术

[0002] 数据库复制是将存储在单一数据库的目标拷贝到物理上分离的另外一个数据库以在分配的数据库模式中的至少两个数据库服务器中使用的技术。这种复制技术将使用相同目标的应用程序的存取分配到各种数据库服务器中,因此能提高性能或允许被复制的数据库服务器具有其他的程序,且因此能同时满足不同操作的需求。且,在操作过程中,当故障在数据库服务器中发生的时候,被复制的数据库可以被迅速地替代,以显著地增强可靠性。
[0003] 当单一数据库服务器不能满足对应用程序操作性能的要求的时候,上述复制技术被使用。例如,读操作被分配到具有相同数据的各种数据库服务器中,能提高整个系统的性能。
[0004] 图1是用于描述根据现有技术用于负荷分配的复制系统的结构的示例。在普通复制的情况下,主数据库允许读和写操作,然而,从数据库只允许读操作,因此使用数据复制的性能提高效能对于写操作具有局限,且对读操作显示出明显的提高。因此,很多程序例如博客、告示板、新闻等用于因特网服务等的服务可以被包含在上述普通操作中。特别的是,在网络服务101中的数据通过写操作可以被存储在主数据库102中,且主数据库102的修改使用复制技术在从数据库103到105中可以被反映。且,通过读操作,数据可以被提供。在这种情况下,鉴于网络服务101具有相对于写操作来说更高的读操作发生的频率的特性,数据经由从数据库103到105可以被提供。如上所述,当使用所述复制技术的时候,数据库中的总负荷可以被分配,且当在包含主数据库的主控主机中故障发生的时候,任何一个从主机可以替代主控主机,因此提高可靠性。
[0005] 然而,做为现有技术的复制技术,存在着很多问题,即,模式的改变在从数据库中是不可复制的,经由从数据库的变化细节自动提取也是不可能的,且需要的复制环境例如主控主机对从主机的比率N∶M也是很难实现的。且,缺点在于,将要被替代的目标只能以数据库单位被指定,复制延迟时间很难被测量,且在原始和复制之间的数据同步状态很难被确认。且,缺点还在于,主交易存档日志通过检测复制处理状态不能被秘密地消除。

发明内容

[0006] 技术目的
[0007] 本发明的一个方面提供了一种用于DBMS中的数据复制方法和系统的新技术。
[0008] 本发明的一个方面提供了一种数据复制方法和系统,其中数据库中的总负荷通过主数据库、从数据库和分配器可以被分配,当在包含主数据库的主控主机中故障发生的时候,任何一个从主机可以被主控主机替代,且只与从数据库相关的变化内容在与同步更新的数据相关的周期收集需要的时候可以被迅速地收集。
[0009] 本发明的一个方面提供了一种数据复制方法和系统,其中,当模式在主控主机的主数据库中变化的时候,此变化在从主机的从数据库中可以被复制,且需要的复制环境例如主控主机对从主机的比率是N∶M可以被配置。
[0010] 技术方案
[0011] 根据本发明的一个方面,提供了一种数据库管理系统DBMS中的数据复制方法,所述数据复制方法包括:通过主数据库的交易日志生成复制日志,以将所述生成的复制日志传送到分配器;判断分配所述复制日志的从主机,以将所述复制日志分配给相应的从主机;和在从数据库中反映所述复制日志。
[0012] 在这种情况下,所述复制日志包括所述主数据库的修改,且所述复制日志的生成包括:在被包含在主控主机中的复制服务器中分析所述交易日志,以生成由所述修改组成的复制日志;和将所述复制日志从所述复制服务器传送到被包含在所述分配器中的复制代理中。
[0013] 且,所述复制服务器作为处理器来运行来处理与从至少一个复制代理中接收的交易日志相关的传送请求,且包括用来处理所述传送请求的第一线程和用于验证通过所述主数据库的所述交易日志的第二线程。
[0014] 且,当多个复制日志以交易单位被生成的时候,所述复制服务器利用多个缓冲来临时存储所述复制日志,且将所述临时存储的复制日志传送到相应分配器的所述复制代理中。
[0015] 且,所述的数据复制方法,进一步包括:在所述从数据库中经由所述分配器,反映与所述主数据库的模式相关的修改;和在被包含在所述分配器的分配数据库中,反映与所述主数据库的指数、触发和用户账户中的至少一个相关的修改。在这种情况下,当故障在所述主控主机中发生时,在作为另外一个主控主机运行的从主机中,所述分配器反映所述指数、触发和用户账户中的至少一个。
[0016] 根据本发明的一个方面,提供了一种数据库管理系统DBMS中的数据复制系统,所述数据复制系统包括:主控主机,通过主数据库的交易日志生成复制日志,以将所述生成的复制日志传送到分配器;分配器,判断分配所述复制日志的从主机,以将所述复制日志分配给相应的从主机;和从主机,接收所述复制日志,以在从数据库中反映所述复制日志。
[0017] 在这种情况下,所述复制日志包括所述主数据库的修改,且所述主控主机包括:主数据库,作为原始数据库运行,以成为所述复制的目标;和复制服务器,用于分析所述主数据库的交易日志,以生成由所述修改组成的复制日志,且将生成的复制日志传送到所述分配器中。

附图说明

[0018] 图1是用于描述根据现有技术用于负荷分配的复制系统的结构的示例;
[0019] 图2是示出了根据本发明的数据复制系统的示意图;
[0020] 图3是示出了根据本发明的示例性实施例的在数据库管理系统中的数据复制方法的流程图;
[0021] 图4是示出了根据本发明的示例性实施例的在主控主机中生成复制日志以将所述生成的复制日志传送到分配器中的方法的流程图;
[0022] 图5是示出根据本发明的示例性实施例的用于描述交易日志和复制日志的示例;
[0023] 图6是示出根据本发明的示例性实施例的用于在分配器中分配复制日志的方法的流程图;
[0024] 图7是示出根据本发明的用于描述对每个数据库目标的复制方法的示例;
[0025] 图8是示出根据本发明的另外一个示例性实施例的描述数据复制系统的内部配置的框图;
[0026] 图9是示出根据本发明的用于描述复制服务器和复制代理的结构的示例;和[0027] 图10是示出根据本发明的用于描述复制服务器和复制代理的结构的另外一个示例。

具体实施方式

[0028] 现在将对本发明的具体示例进行详细地描述,示例将在附图中进行阐述,其中,相同的参考号码代表相同的元素。下文中,将参考附图对具体示例进行详细的说明。
[0029] 图2是示出了根据本发明的数据复制系统200的示意图。
[0030] 数据复制系统200包括主控主机201、分配器202、和从主机203。在这种情况下,每个主控主机201、分配器202、和从主机203由多个主机组成以来构成需要的结构例如主控主机201与从主机203的比率是N∶M,然而,如图2所示,他们由单一主机组成以模式化地描述所述数据复制系统200。
[0031] 被包含在主控主机201中的主数据库204是原始数据库以成为复制的目标,其能允许各种操作例如读和写操作,和将要被执行的操作。相反,被包含在从主机203中的从数据库是原始数据库被复制的数据库,其只允许读操作被执行。其是为了在网络服务中分配与读操作相关的负荷,其中,读操作,即,数据下载可以比写操作即数据上载更加频繁地发生。因此,读操作可以载多个从数据库中被分配和执行。
[0032] 首先,当复制被设置的时候,被包含载主控主机201中的复制服务器206可以读取主数据库204的交易日志207以来生成只由复制上的信息组成的复制日志208,且将所述生成的复制日志传送到被包含在分配器202中的复制代理209中。在这种情况下,分配器202可以在主控主机201或从主机203中被设置,且也可以在单独主机中被设置以来完全保证可获得性。
[0033] 复制代理209读取被包含在分配器202中的分配数据库210,且判断在任意从主机203中,如何复制从主控主机203中,更特别的是从复制服务器206中接收的复制日志208。
在这种情况下,分配器210作为管理关于复制配置的所有元数据的数据库来运行,且允许复制代理209来包括主控主机201和从主机203的配置信息。
[0034] 特别的是,复制代理209可以在存储设备例如缓冲中临时存储从复制服务器206中接收的复制日志208,且在被包括在从主机的从数据库205中分配复制日志208,因此来使复制日志208,即,主数据库204的修改,反映在从数据库中。在此过程中,复制代理209可以管理跟踪日志211以在每个从数据库中跟踪被反映的状态,且存储在错误日志212中分配复制日志208的时候发生的所有错误。
[0035] 如上所述的复制数据库200可以在每个从数据库205中复制主数据库204的修改。这些复制将参看图3到10来进行详细地描述。
[0036] 图3是示出了根据本发明的示例性实施例的在数据库管理系统中的数据复制方法的流程图。
[0037] 在操作S301中,主控主机通过主数据库的交易日志生成复制日志,以将所述生成的复制日志传送到分配器。在这种情况下,复制日志包括主数据库的修改,且主控主机将复制日志,即,经由被包含在主控主机中的复制服务器的修改,传送到分配器中。且,主数据库作为原始数据库运行以成为复制的目标,其允许执行所有的数据库操作。
[0038] 如上所述,将复制日志传送到分配器的操作S310将结合图4来进行详细地描述。
[0039] 作为数据复制模式的示例,通过处理操作(1)更新主数据库的数据和(2)更新从数据库的数据用于保证数据统一而做为单一交易的同步复制,和用于分开操作(1)和(2)的异步复制可以被给出。
[0040] 在这种情况下,同步复制存在一个问题,即,在单一系统中发生的故障会影响整个系统,因此在可获得性方面会降低效率。例如,即使在主系统中,由于在从系统中发生的故障,服务操作也可能被中断。相反,在异步复制的情况下,通过使用主数据库的交易日志,修改可以在从数据库中异步地被反映,因此在由复制构成的服务器之间的独立性可以被成最小化,即使故障在从系统中发生的时候也不影响主系统。
[0041] 特别的是,根据本发明的数据复制方法和系统使用交易日志通过异步复制方法可以提供复制功能,因此能保证数据的统一和最大的可用性。为此,分配器可以被用作为在主控主机和从主机之间的中介系统。
[0042] 且,上述异步复制的交易日志由将在主数据库中发生的所有修改相结合的至少一个交易组成,且含有为了终止更新操作而存档先前数据图像的撤销日志(undo log)和在执行更新后存档数据图像的重做日志(redo log)。复制日志可以只含有重做日志。更具体的是,复制日志可以包括被分配为重做日志的单一交易以来顺序地处理交易。交易日志和复制日志将结合图5来进行详细地描述。
[0043] 在操作S302中,分配器判断分配复制日志的从主机以将复制日志分配到相应的从主机中。在这种情况下,分配器可以包括分配数据库和用于判断分配复制日志的从主机的复制代理。其结果是,关于上述异步复制可以保证其的统一和可用性。通过上述分配数据库和复制代理的用于分配复制日志的操作S302将参考图6进行详细地说明。
[0044] 在操作S303中,从主机接收复制日志以在从数据库中反映接收的复制日志。在这种情况下,从主机是复制目的地的数据库,且可以反映主数据库的修改。在这种方法下,主数据库和从数据库彼此互相同步,且经由主数据库可以分配和执行数据的上载,经由从数据库可以分配和执行数据的下载,因此能降低与读操作相关的负荷。
[0045] 在操作S304中,数据复制系统在从数据库中经由分配器反映关于主数据库的模式的修改。从数据库为了灵活性可以独立地定义和主数据库的模式。特别的是,除了从主数据库中复制的等级外,至少一个独立等级、指数、触发和用户账户可以被生成,且即使写操作也可以与额外生成的等级相关而被执行。例如,在复制与主数据库的等级1和2相关而被操作的时候,从数据库可以独立地定义和操作等级3和4。
[0046] 在操作S305中,在被包含在分配器中的分配数据库中,数据复制系统反映关于主数据库的至少一个指数、触发和用户账户。在这种情况下,当故障在主控主机中发生的时候,分配器可在从主机中反映至少一个指数、触发和用户账户以作为另外一个主控主机。在这种方法下,在从数据库中的模式、指数、触发和用户账户的反映将结合图7进行详细地说明。
[0047] 如上所述主机和从机可以按照N∶M的比率被组成,且异步复制通过主控主机和从主机间的至少一个分配器可以被执行。主控主机和从主机的配置将结合图9和图10进行详细地说明。
[0048] 图4是示出了根据本发明的示例性实施例的在主控主机中生成复制日志以将所述生成的复制日志传送到分配器中的方法的流程图。如图4所示,操作S401和操作S402可以被包含在图3中的操作S301中。
[0049] 在操作S401中,被包含在主控主机中的复制服务器分析交易日志以生成由修改组成的复制日志。在这种情况下,复制服务器可以是用于处理从至少一个复制代理中接收的交易日志的传送请求的处理器,且可包含用于处理传送请求的第一线程和通过主数据库用于验证交易日志的第二线程。
[0050] 且,当多个复制日志以交易单位被生成以将临时存储的复制日志传送到相应的分配器的复制代理中的时候,复制服务器使用多个缓存可以临时存储复制日志。特别的是,复制日志以交易单位,即,可以包括单一交易,且在维持与多个交易相关的顺序的时候,复制服务器可以处理复制。使用多个缓存的交易将结合图5进行详细地说明。
[0051] 在此,复制代理是本质上执行复制的处理器,其被包含在分配器中。复制服务器根据主控主机的主数据库的交易日志的传送请求可以验证交易日志以生成复制日志。
[0052] 在操作S402中,复制服务器将复制日志传送到被包含在分配器的复制代理中。复制日志包括主数据库的修改,且复制服务器将复制日志传送到复制代理中,以使复制代理在主数据库和从数据库中执行复制。
[0053] 图5是示出根据本发明的示例性实施例的用于描述交易日志和复制日志的示例。
[0054] 交易日志是记录数据库服务器的所有修改的文件,即,更新操作。即使故障在同时地处理不同交易时发生的时候,主控主机可以生成撤销日志或重做日志。在这种情况下,如上所述,撤销日志是存档先前日志的日志以来终止更新操作,且重做日志是在执行更新操作后存档数据图像的日志以来再次执行更新操作。在主数据库中,多个交易同时处在活跃状态。例如,如图5所是,与参考号码501到509相对应的更新操作关于“T1”到“T3”被执行。在此,数据复制系统读取记录更新操作的交易日志只提取恢复日志,且在从数据库中,根据交易的提交顺序,反映被提取的重做日志。
[0055] 在此,提交(commit)指被执行的操作,即,所有被包含在单一交易中的操作在分配交易处理(DTP:Distributed Transaction Processing),相应数据库的更新内容被记录在操作区域中,即,存储器,且对于交易应用的完成在被判断应用完成的时间上被请求。且,此时间指提交时间。当提交被执行的时候,更新数据可以被实质上记录在存储装置中例如磁盘,相关的锁可以被解除,且然后更新的内容可以从另外一个交易中被接触。
[0056] 在这种情况下,终止的交易在从数据库中可以不被反映。特别的是,如上所述,只有交易“T1”和“T3”在从数据库中被反映,且终止的交易,即交易“T2”例如参考号码508可以不在从数据库中被反映。
[0057] 在上述情况中,多个客户可以同时请求交易以在主控主机中被处理,然而,对于每个从数据库,为了保证交易的顺序,单一线程可以顺序地反映在从数据库中应用交易的操作。在这种情况下,被包含在主控主机中的复制服务器和被包含在分配器中的复制代理通过与多个交易相关的缓存可以临时地存储交易,且在维持交易的顺序的同时执行复制。
[0058] 图6是示出根据本发明的示例性实施例的用于在分配器中分配复制日志的方法的流程图。在此,如图6所示,操作S601到S605可以被包括在图3的操作S302中且被执行。在这种情况下,分配器包括分配器和复制代理。
[0059] 在操作S601中,复制代理接收复制日志,且临时存储被接收的复制日志。在这种情况下,如上所述,在多个复制日志被接收的时候,复制代理可以在缓存中分别地存储多个复制日志,且将存储的复制日志分配到相应的从主机中。
[0060] 在操作S602中,复制代理使用分配数据库来验证分配复制日志的从主机。在这种情况下,分配数据库可以包含主控主机和从主机的配置信息。
[0061] 在操作S603中,在复制代理中,复制代理将复制日志传送到相应的从主机中。特别的是,复制代理可以在缓存中临时存储复制日志,验证传送复制日志的从主机的从数据库,且将复制日志传送到从主机中。
[0062] 在操作S604中,复制代理生成与复制日志相关的跟踪日志。在这种情况下,跟踪日志包含与最终应用于被包括在各个从主机中的每个从数据库中的复制日志相关的日志序列号。
[0063] 在操作S605中,复制代理生成与复制日志相关的错误日志。在此,在复制代理执行复制操作的时候生成的所有错误被记录在错误日志中。
[0064] 图7是示出根据本发明的用于描述对每个数据库目标的复制方法的示例。在此,如图7所示,被包括在主控主机701的主数据库中的实例(instance)和模式(scheme)的信息的修改通过分配器702同时地在从主机703中被反映。在指数、触发或用户账户的情况下,为了从数据库的独立性,修改只被记录在被包括在分配器702的分配数据库中。在这种情况下,实例指每个交易。
[0065] 在上述结构中,当故障在主数据库中发生且从数据库要求用另外一个主数据库替代的时候,最终记录在分配数据库中的指数、触发或用户账户可以自动地被反映在从数据库中。在这种情况下,当主键被用于验证要被复制的目标,将要被复制的数据包括列表,其中从被包含在主数据库中的列表的主键被设定。
[0066] 图8是示出根据本发明的另外一个示例性实施例的描述数据复制系统的内部配置的框图。如图8所示,数据复制系统800包括主控主机810、分配器820和从主机830。
[0067] 主控主机810包括主数据库811和复制服务器812,且通过主数据库811的交易日志生成复制日志以将复制日志传送到分配器中。在这种情况下,主数据库811可以是将要被复制的目标的原始数据库,且复制服务器812分析主数据库811的交易日志以生成由修改组成的复制日志,且将复制日志传送到分配器中。
[0068] 在此,交易日志可以是多个交易被记录的日志,即,所有在主数据库中生成的修改,且包括存档先前数据图像的撤销日志以终止更新操作和存档在执行更新操作后获取的数据图像的重做日志以再次执行更新操作,且复制日志包括重做日志。在这种情况下,复制日志可包括重做日志。更具体的说,复制日志可包括为了顺序处理多个交易的被分类为重做日志的单一交易。
[0069] 且,复制服务器812可以是处理从至少一个复制代理中接收的交易日志的传送请求的处理器,且处理器包括用于处理传送请求的第一线程和通过主数据库用于验证交易日志的第二线程。特别的是,主控主机810通过交易日志,即,使用复制服务器812的主数据库811的修改,生成复制日志,且将生成的复制日志传送到分配器820中。
[0070] 此外,在被包括在从主机830的从数据库831中,主控主机810含有用于反映于主数据库811的模式相关的修改的第一修改反映单元,和在被包括在分配器的分配数据库中,用于反映与主数据库811的至少一个指数、触发和用户账户相关的修改的第二修改反映单元。
[0071] 分配器820包括分配数据库821和复制代理822。分配器820判断分配复制日志的从主机,且将复制日志分配到相应从主机830中。在这种情况下,分配数据库821包括主控主机810和从主机830的配置信息,且复制代理822使用复制日志执行数据的复制。
[0072] 在此,复制代理822包括用于接收从主控主机中接收的复制日志的存储单元822a以临时存储被接收的复制日志,使用分配数据库验证从主机的从主机验证单元822b,和将复制日志传送到相应从主机的传送单元822c。其结果是,主数据库811的修改可以在从主机830中被反映。
[0073] 且,复制代理822可以生成跟踪日志和与复制日志相关的错误。在这种情况下,跟踪日志可包括与最终应用于被包括在独立从主机的每个从数据库的复制日志相关的日志序列号,且在复制代理执行复制操作的时候生成的所有错误被记录在错误日志中。
[0074] 此外,当故障在主控主机810中发生的时候,在作为另外一个主控主机运行的从主机830中,分配器820反映至少一个指数、触发和用户账户。
[0075] 从主机830包括从数据库831,且接收复制日志以来从数据库831中反映接收的复制日志。在这种情况下,从数据库831,即,复制的目的地,是主数据库811的数据被复制的数据库,且反映主数据库811的修改。其结果是,主数据库811和从数据库831彼此互相同步,且数据的上载和下载分别通过主数据库811和从数据库831被分配和执行,因此减少于读操作相关的负荷。
[0076] 图9是示出根据本发明的用于描述复制服务器和复制代理的结构的示例。特别的是,如图9所示,复制服务器和复制代理的结构将通过主控主机910与从主机按1∶N的比率连接的结构进行详细的说明。
[0077] 主控主机910包括复制服务器911和主数据库912,且复制服务器911通过包含在主数据库912的交易日志913生成复制日志,以在缓存914中存储生成的复制日志,且将存储的复制日志传送到分配器920中。
[0078] 特别的是,复制服务器911是处理从至少一个复制代理中接收的交易日志的传送请求的处理器,且包含用于处理传送请求的第一线程,通过主数据库用于验证交易日志的第二线程和存储通过交易日志生成的复制日志的缓存914。
[0079] 在这种情况下,由于复制日志表示多个由交易日志913组成的交易中的一个交易,复制日志按照交易的顺序可以被传送到分配器920中。
[0080] 分配器920包括复制代理921和分配数据库922,且复制代理921在存储在本地磁盘923之前在缓存924中临时存储从复制服务器911中接收的复制日志。
[0081] 特别的是,在本地磁盘923中,复制代理921是用于存储从复制服务器911被传送的复制日志,即,主数据库912的交易,分析被存储的复制日志和在从数据库931到933中反映被分析的复制日志的处理器。复制代理921可以将用于接收复制日志以存储在缓存924中的第一线程、在本地磁盘923中用于存储被存储在缓存924中的复制日志的第二线程、和通过将复制日志传送到从主机用于在从数据库931到933中反映主数据库912的修改的第三线程传送到从主机中。
[0082] 图10是示出根据本发明的用于描述复制服务器和复制代理的结构的另外一个示例。特别的是,如图10所示,复制服务器和复制代理的结构将进行详细的说明,例如,通过比率为N∶M的结构中的主控主机和从主机按2∶6的比率而连接的结构进行说明。
[0083] 分别包括在主控主机1010和1020中的复制服务器1011和1021,将主数据库1012和1022的修改,即,每个交易,通过缓存1013、1023和1024传送到顺序地预定地分配器1030和1040中。
[0084] 被包括在分配器1030和1040的复制代理可以接收和处理复制日志。例如,被包括在分配器1030中的复制代理1031可以在缓存1032中临时存储从复制服务器1011中接收的复制日志,且在本地磁盘1033中存储临时存储的复制日志。且,复制代理可以在缓存1034中临时存储从复制服务器1021中接收的复制日志,且在本地磁盘1035中存储临时存储的复制日志。这些缓存1032和1034可以被用作顺序地处理复制日志,即,所述交易。
[0085] 如上所述,被传送到分配器1030和1040地复制日志在相应的从主机的从数据库1050中被反映,因此能反映主数据库1012和1022的修改。
[0086] 根据本发明的上述示例性实施的数据复制方法可记录在包括由计算机实施的执行各种操作的程序指令的计算机可读介质中。介质还可包括,独立的或与程序指令一起结合,数据文件、数据结构等。介质和程序指令可以是为本发明而特殊设计和构件的,也可以是对计算机软件技术中的技术人员来说是公知和可获得的。所述计算机可读介质的例子包括:磁介质,如,硬盘、软盘和磁带;光学介质,如,CD ROM盘和DVD;磁光介质,如,光盘;和特别配置为存储和执行程序指令的硬件装置,如,只读存储器(ROM)、随机存取存储器(RAM)、闪存等。程序指令的例子包括机器码(如,由编译器产生的)和包含可由计算机使用编译器执行的高级码的文件。所述硬件装置可配置为一个或多个软件模块,以执行示例性实施例的操作。
[0087] 如上所述,根据本发明,数据库的总负荷可以通过主数据库、从数据库和分配器被分配,当故障在含有主数据库的主控主机中发生的时候,任何一个从主机可以用主控主机替代,因此有效地与故障相应,且只与从数据库相关的变化内容即使在与自动更新的数据相关的周期收集需要的时候也可以被迅速地收集。
[0088] 根据本发明,当模式在主控主机的主数据库中被改变的时候,变化在从主机的从数据库中被复制,且需要的复制环境例如主控主机和从主机的比率为N∶M也可以被配置。
[0089] 尽管本发明的几个示例性实施例已经被显示和描述,但本发明并不局限于所公开的示例性实施例。相反,在不脱离由权利要求定义的本发明的精神和范围的情况下,基于本发明的原则本领域的技术人员可以对其进行形式和细节上的各种改变,其范围被权利要求及其等同物所限制。