用于在事务中间件机器环境中持久化事务记录的系统与方法

申请号 CN201280047493.3 申请日 2012-09-24 公开(公告)号 CN103827832A 公开(公告)日 2014-05-28
申请人 甲骨文国际公司; 发明人 T·里托; 李向东; 吕先正;
摘要 一种事务系统,可以利用由集群 数据库 提供的分布式存储与高可用性(HA)能 力 来支持容易且可行的灾难恢复。事务 中间件 机器环境包括与事务关联的一个或多个事务应用 服务器 。这一个或多个事务 应用服务器 操作成把与该事务关联的事务日志信息持久化到位于本地 站点 的、与所述一个或多个事务应用服务器连接的数据库中。位于本地站点的数据库操作成把持久化的事务日志信息复制到位于远端站点的远端数据库。在灾难使本地站点不能工作时,远端数据库允许位于远端站点的不同事务应用服务器恢复持久化的事务日志信息并且完成该事务。
权利要求

1.一种用于在事务中间件机器环境中支持灾难恢复的系统,包括:
与事务关联的一个或多个事务应用服务器,其中所述一个或多个事务应用服务器操作成把与该事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库,及
其中该数据库操作成把持久化的事务日志信息从位于本地站点的本地数据库服务器复制到位于远端站点的远端数据库服务器,而且其中,在灾难使本地站点不能工作时,远端数据库允许位于远端站点的不同事务应用服务器恢复持久化的事务日志信息并且完成该事务。
2.如权利要求1所述的系统,其中所述一个或多个事务应用服务器重用到本地数据库服务器的现有数据库连接。
3.如权利要求1所述的系统,其中事务日志信息能够写到事务日志文件。
4.如权利要求3所述的系统,其中事务日志文件在分布式文件系统中被支持。
5.如权利要求3所述的系统,其中事务日志文件中的事务日志信息在恢复站点上被同步。
6.如权利要求1所述的系统,其中事务是两阶段事务。
7.如权利要求6所述的系统,其中,在成功提交两阶段事务的第一阶段之后,事务日志信息包含事务管理器的持久化状态。
8.如权利要求1所述的系统,其中事务日志信息基于事务文件系统的地图并且在事务日志记录中维护。
9.如权利要求8所述的系统,其中事务文件系统的地图是利用全局事务创建的并且事务日志记录在事务过程被引导时打开。
10.如权利要求1所述的系统,其中事务日志信息包含用于多个事务域的信息。
11.一种用于在事务中间件机器环境中支持灾难恢复的方法,包括:
经一个或多个事务应用服务器把与事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库中;
经该数据库把持久化的事务日志信息从位于本地站点的本地数据库服务器复制到位于远端站点的远端数据库服务器;及
在灾难使本地站点不能工作时,允许位于远端站点的不同事务应用服务器从远端数据库服务器恢复持久化的事务日志信息并且完成该事务。
12.如权利要求11所述的方法,还包括允许所述一个或多个事务应用服务器重用到本地数据库服务器的现有数据库连接。
13.如权利要求11所述的方法,还包括把事务日志信息写到事务日志文件中。
14.如权利要求13所述的方法,还包括在分布式文件系统中支持事务日志文件。
15.如权利要求13所述的方法,还包括在恢复站点上同步事务日志文件中的事务日志信息。
16.如权利要求11所述的方法,还包括允许事务是两阶段事务。
17.如权利要求16所述的方法,还包括在成功提交两阶段事务的第一阶段之后允许事务日志信息包含事务管理器的持久化状态。
18.如权利要求11所述的方法,还包括允许事务日志信息基于事务文件系统的地图并且在事务日志记录中维护事务日志信息。
19.如权利要求18所述的方法,还包括利用全局事务创建事务文件系统的地图并且在事务过程被引导时打开事务日志记录。
20.如权利要求11所述的方法,还包括允许事务日志信息包含用于多个事务域的信息。
21.一种用于执行如权利要求11-20中任何一项所述的方法的程序。
22.一种用于存储如权利要求21所述的程序的非易失性介质。

说明书全文

用于在事务中间件机器环境中持久化事务记录的系统与方法

[0002] 本专利文档公开内容的一部分包含受版权保护的素材。版权拥有者不反对任何人对专利文档或专利公开内容按照在专利商标局的专利文件或记录中出现那样进行的传真复制,但是除此之外在任何情况下都保留所有版权。

技术领域

[0003] 本发明一般而言涉及诸如中间件的计算机系统软件,而且更具体地说涉及在事务中间件机器环境中支持灾难恢复。

背景技术

[0004] 事务中间件系统,或者说面向事务的中间件,包括可以处理一个组织内部各种事务的企业应用服务器。随着诸如高性能网络和多处理器计算机之类的新技术的发展,需要进一步提高事务中间件的性能。这些是本发明实施例要解决的一般领域。

发明内容

[0005] 本文所述的是一种事务系统,该系统可以利用由集群数据库提供的分布式存储与高可用性(HA)能来支持容易且可行的灾难恢复。事务中间件机器环境包括与事务关联的一个或多个事务应用服务器。事务应用服务器可以把与该事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库中。位于本地站点的数据库可以把持久化的事务日志信息复制到位于远端站点的数据库。当灾难使本地站点不能工作时,远端数据库允许位于远端站点的不同事务应用服务器恢复持久化的事务日志信息并完成该事务。附图说明
[0006] 图1示出了根据本发明一种实施例的支持灾难恢复的事务中间件机器环境的图示。
[0007] 图2图示出根据本发明一种实施例的用于在事务中间件机器环境中支持灾难恢复的示例性流程图
[0008] 图3示出了根据本发明一种实施例的在事务中间件机器环境中的复杂接口的图示。
[0009] 图4是根据本发明一种实施例的用于在事务中间件机器环境中支持灾难恢复的装置的功能性框图。具体实施例
[0010] 本文所描述的是用于支持可以利用具有多个处理器的快速机器以及高性能网络连接的事务中间件系统的系统与方法,其中的事务中间件系统诸如Tuxedo。事务系统可以利用由集群数据库提供的分布式存储与高可用性(HA)能力来支持容易且可行的灾难恢复。事务中间件机器环境包括与事务关联的一个或多个事务应用服务器。所述一个或多个事务应用服务器操作成把与该事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库。位于本地站点的数据库操作成把持久化的事务日志信息复制到位于远端站点的远端数据库。当灾难使本地站点不能工作时,远端数据库允许位于远端站点的不同事务应用服务器恢复持久化的事务日志信息并且完成该事务。
[0011] 根据本发明的一种实施例,该系统包括高性能硬件,例如64位处理器技术,高性能大型存储器以及冗余InfiniBand和以太网联网连同应用服务器或中间件环境,诸如WebLogic套件,的组合,来提供完整的Java EE应用服务器联合体,该联合体包括可以快速供应并且可以按需缩放的大规模并行存储器内网格。根据一种实施例,该系统可以部署成作为提供应用服务器网格、存储区域网络和InfiniBand(IB)网络的完全、半或四分之一机架,或者其它配置。中间件机器软件可以提供应用服务器、中间件和其它功能性,诸如像WebLogic服务器、JRockit或者Hotspot JVM、Oracle Linux或Solaris和Oracle VM。根据一种实施例,该系统可以包括经IB网络彼此通信的多个计算节点、IB交换机网关,及存储节点或单元。当实现为机架配置时,机架未使用的部分可以空着或者被填充物占用。
[0012] 根据本发明的一种实施例,在此被称为“Sun Oracle Exalogic”或者“Exalogic”,该系统是用于托管中间件或应用服务器软件,诸如Oracle中间件SW套件或Weblogic,的一种易于部署的解决方案。如本文所描述的,根据一种实施例,该系统是“盒子内的网格”,包括一个或多个服务器、存储单元、用于存储联网的一个IB构架,以及托管中间件应用所需的所有其它组件。通过利用例如真正应用集群和Exalogic开放存储充分利用大规模并行网格体系架构,可以为所有类型的中间件应用交付显著的性能。该系统利用线性I/O可缩放性交付提高的性能、使用和管理都很简单,并且交付任务关键的可用性和可靠性。
[0013] 根据本发明的一种实施例,Tuxedo是启用高性能、分布式商业应用的构造、执行和管理的一组软件模,并且已经被多种多层应用开发工具用作事务中间件。Tuxedo是可以用于在分布式计算环境中管理分布式事务处理的中间件平台。它是一个经过证明的平台,用于解企业传统应用并把它们扩展到面向服务的体系架构,同时交付不受限制的可缩放性与基于标准的互操作性
[0014] 根据本发明的一种实施例,事务中间件系统,诸如Tuxedo系统,可以利用具有多个处理器的快速机器,诸如Exalogic中间件机器,以及高性能网络连接,诸如Infiniband(IB)网络。
[0015] 根据本发明的一种实施例,事务系统可以利用由集群数据库提供的分布式存储和高可用性(HA)能力来支持容易且可行的灾难恢复。
[0016] 把事务记录持久化到集群数据库中
[0017] 根据本发明的一种实施例,事务应用服务器可以在事务中间件机器环境中把事务记录,诸如事务日志信息,持久化到集群数据库中,以增强用于事务的高可用性(HA)能力。集群数据库可以把这种事务信息从本地站点复制到远端站点,以便为事务中间件机器环境提供HA能力。
[0018] 图1示出了根据本发明一种实施例的支持灾难恢复的事务中间件机器环境的图示。如图1中所示,一个或多个事务应用服务器(服务器A103和服务器D106)可以把与事务(事务A121)关联的事务信息持久化到集群数据库中,例如位于本地站点A101的数据库服务器A107。集群数据库111可以把事务日志信息复制到位于远端站点B102的远端数据库服务器B108。
[0019] 如图1中所示,当灾难攻击本地站点A时,位于远端站点B的事务应用服务器B104可以从远端数据库中检取数据库服务器B中用于事务A122的持久化的事务日志信息并且没有延迟地立即完成该事务。相反,如果用于事务D124的事务日志只写到位于本地站点A的平面文件D111中,则系统可能要花更长的时间执行灾难恢复和完成事务。
[0020] 根据本发明的一种实施例,当事务系统被激活时,事务系统可以打开一个数据库连接并且把记录写到数据库而不是写到文件。事务系统可以配置为把事务日志信息写到该应用当前在使用的数据库中,以便节约并发数据库连接的个数。
[0021] 此外,抽象的事务文件操作接口可以用于在文件系统,诸如分布式文件系统112,中存储事务日志信息。分布式文件系统可以把存储在本地站点A的文件A109中的事务日志信息同步到位于远端站点C103的文件C110。类似地,当灾难攻击本地站点A时,位于远端站点C的事务应用服务器C105可以检取文件C中所存储的用于事务A123的事务日志信息并且完成该事务。
[0022] 在文件系统中存储事务日志信息对于灾难恢复解决方案可能不方便,因为平面文件中的事务日志信息必须利用不可避免的时间窗在恢复站点上同步。此外,对分布式文件系统的支持会是有限的。
[0023] 根据本发明的一种实施例,通过在集群数据库中持久化事务日志信息,系统可以采用底层数据库系统固有的复制及其它HA方面。系统还可以增强灾难恢复场景的处理,尤其是在诸如跨站点恢复的场景下。而且,对分布式文件系统解决方案的需求也可以缓解。系统还减少了对用户的复杂性,因为,与诸如NFS等的分布式文件系统相比,数据库的配置通常不太复杂和/或已经是必需,例如,对于常见的运行时/应用工作而言。
[0024] 服务器103-108可以是硬件计算节点。事务应用服务器A103、事务应用服务器D106及数据库服务器A107可以在位于本地站点A101的中间件机器机架中提供。事务应用服务器B104和数据库服务器B108可以在位于远端站点B102的中间件机器机架中提供。事务应用服务器C105可以在位于远端站点C103的中间件机器机架中提供。
[0025] 图2图示出根据本发明一种实施例的用于在事务中间件机器环境中支持灾难恢复的示例性流程图。如图2中所示,在步骤201,一个或多个事务应用服务器可以把与事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库中。然后,在步骤202,该数据库可以把持久化的事务日志信息从位于本地站点的本地数据库服务器复制到位于远端站点的远端数据库服务器。最后,在步骤203,当灾难使本地站点不能工作时,系统允许位于远端站点的不同事务应用服务器从远端数据库服务器恢复持久化的事务日志信息并且完成该事务。
[0026] Tuxedo中的事务日志(TLOG)
[0027] 在Tuxedo的例子中,事务日志(TLOG)包含日志记录,关于事务的信息可以在该日志记录中一直保持到事务完成。Tuxedo可以利用由集群数据库,例如Oracle RAC数据库,提供的分布式存储与HA能力来支持容易且可行的灾难恢复。此外,该数据库可以把TLOG记录复制到分布式站点,以实现甚至更高的可用性。
[0028] 根据本发明的一种实施例,用户可以为不同的域创建事务日志。用户可以首先创建通用设备列表(UDL),以便在Tuxedo环境中创建TLOG。UDL是事务文件系统,诸如Tuxedo文件系统,的地图。UDL可以在应用引导的时候加载到共享内存中。为了在UDL中创建用于TLOG设备的条目,系统可以利用全局事务在每个机器上创建一个UDL。公告牌联络(BBL)可以在引导过程期间初始化并打开TLOG。然后,用户可以在配置文件中,例如在Tuxedo配置文件的MACHINES部分中,定义相关的事务相关参数,以便配置Tuxedo服务器。
[0029] 根据本发明的一种实施例,抽象的文件操作接口可以在Tuxedo环境中提供。当该接口被激活时,Tuxedo可以打开一个数据库连接而不是打开一个文件。因而,Tuxedo可以把TLOG写到数据库中而不是写到文件,而且该数据库可以把TLOG记录复制到分布式站点,以获得更高的可用性。
[0030] 根据本发明的一种实施例,集群数据库可以用于支持事务日志信息的持久化。诸如Oracle RAC数据库的集群数据库允许多台计算机在访问单个数据库的时候同时运行Oracle RDBMS软件。Tuxedo可以利用由集群数据库提供的分布式存储与HA能力。在集群数据库环境下,两台或多台计算机(每台都具有一个实例)可以并发地访问单个数据库。所述系统允许应用或用户连接到其中任何一台计算机并且访问单个协同的数据集。
[0031] 另一方面,在非集群数据库中,单个实例访问单个数据库。数据库包括位于磁盘上的数据文件、控制文件及重做日志的集合。实例包括在计算机系统上运行的Oracle相关的存储器与操作系统过程的集合。
[0032] 图3示出根据本发明一种实施例的事务中间件机器环境中的复杂接口的图示。Tuxedo支持持久化TLOG记录的两种方法,一种方法是使用存储在集群数据库中的信息,而另一种方法是使用存储在文件系统中的信息。如图3中所示,为了支持持久化事务日志记录,Tuxedo应用301可以首先访问高级API,诸如TLOG API302。TLOG API为Tuxedo中的不同API提供了一组用于持久化TLOG记录的统一接口。这个高级API又可以选择调用两组低级API中的一组,这两组低级API包括处理ORACLE数据库中TLOG记录的db_tlog API303和处理文件中TLOG记录的file_tlog API304。高级TLOG API可以根据Tuxedo配置,tuxconfig或dmconfig,动态地调用两个低级API之一。这个复杂的接口可以被用来代替抽象的Tuxedo文件操作接口,使得当其被激活时,Tuxedo可以打开数据库连接而不是打开文件,并且把记录写到数据库而不是平面文件。
[0033] 根据本发明的一种实施例,为了节约并发数据库连接的个数,配置文件中一个专的项可以用于配置Tuxedo环境中的操作接口,使得TLOG可以写到与Tuxedo应用当前在使用的相同数据库中。而且,如果被配置,则TLOG可以写到与应用在相同连接中所使用的相同数据库,以节约并发数据库连接的个数。例如,Oracle XA提供了一个接口xaoSvcCtx(),这个接口返回用于给定XA连接的数据库服务句柄。接口db_tlog不打开到数据库服务器的新连接。相反,系统使用先前由事务处理监视器(TPM)打开的连接。
[0034] 根据一些实施例,图4示出了用于在根据如上所述本发明的原理配置的事务中间件机器环境中支持灾难恢复的装置1000的功能性框图。装置1000的功能块可以通过硬件、软件或者硬件与软件的组合来实现,以便执行本发明的原理。本领域技术人员应当理解,图4中所述的功能块可以组合或者分离成子块,以实现如上所述本发明的原理。因此,本文的描述可以支持本文所述功能块的任何可能的组合或分离或进一步定义。
[0035] 如图4中所示,用于在事务中间件机器环境中支持灾难恢复的装置1000包括:持久化单元1100、复制单元1200和恢复单元1300。持久化单元1100经一个或多个事务应用服务器把与事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库中。复制单元1200经该数据库把持久化的事务日志信息从位于本地站点的本地数据库服务器复制到位于远端站点的远端数据库服务器。在灾难使本地站点不能工作时,恢复单元1300允许位于远端站点的不同事务应用服务器从远端数据库服务器恢复持久化的事务日志信息并且完成该事务。
[0036] 在有些实施例中,装置1000还包括重用单元1400,用于允许所述一个或多个事务应用服务器重用到本地数据库服务器的现有数据库连接。
[0037] 在有些实施例中,装置1000还包括写单元1500,用于把事务日志信息写到事务日志文件中。
[0038] 在有些实施例中,装置1000还包括支持单元1600,用于在分布式文件系统中支持事务日志文件。
[0039] 在有些实施例中,装置1000还包括同步单元1700,用于在恢复站点上同步事务日志文件中的事务日志信息。
[0040] 在有些实施例中,事务是两阶段事务。
[0041] 在有些实施例中,成功提交两阶段事务的第一阶段之后,事务日志信息包含事务管理器的持久化状态。
[0042] 在有些实施例中,事务日志信息基于事务文件系统的地图并且在事务日志记录中维护。
[0043] 在有些实施例中,装置1000还包括创建单元1800,用于利用全局事务创建事务文件系统的地图并且在事务过程被引导时打开该事务日志记录。
[0044] 在有些实施例中,事务日志信息包含用于多个事务域的信息。
[0045] 另一种实施例包括用于在事务中间件机器环境中支持灾难恢复的系统,包括位于本地站点的、与事务关联的一个或多个事务应用服务器;及与所述一个或多个事务应用服务器连接的数据库,其中所述一个或多个事务应用服务器操作成把与该事务关联的事务日志信息持久化到该数据库,而且其中该数据库操作成把持久化的事务日志信息从位于本地站点的本地数据库服务器复制到位于远端站点的远端数据库服务器,而且其中,在灾难使本地站点不能工作时,远端数据库允许位于远端站点的不同事务应用服务器恢复持久化的事务日志信息并且完成该事务。
[0046] 另一种实施例包括一种系统,其中所述一个或多个事务应用服务器重用到本地数据库服务器的现有数据库连接。
[0047] 另一种实施例包括一种系统,其中事务日志信息可以写到事务日志文件。
[0048] 另一种实施例包括一种系统,其中事务日志文件在分布式文件系统中被支持。
[0049] 另一种实施例包括一种系统,其中事务日志文件中的事务日志信息在恢复站点上被同步。
[0050] 另一种实施例包括一种系统,其中事务是两阶段事务。
[0051] 另一种实施例包括一种系统,其中在成功提交两阶段事务的第一阶段之后,事务日志信息包含事务管理器的持久化状态。
[0052] 另一种实施例包括一种系统,其中事务日志信息基于事务文件系统的地图并且在事务日志记录中维护。
[0053] 另一种实施例包括一种系统,其中事务文件系统的地图是利用全局事务创建的并且事务日志记录在事务过程被引导时打开。
[0054] 另一种实施例包括一种系统,其中事务日志信息包含用于多个事务域的信息。
[0055] 另一种实施例包括用于在事务中间件机器环境中支持灾难恢复的装置,包括用于经一个或多个事务应用服务器把与事务关联的事务日志信息持久化到位于本地站点的、与所述一个或多个事务应用服务器连接的数据库中的装置;用于经该数据库把持久化的事务日志信息从位于本地站点的本地数据库服务器复制到位于远端站点的远端数据库服务器的装置;及用于,在灾难使本地站点不能工作时,允许位于远端站点的不同事务应用服务器恢复持久化的事务日志信息并且完成该事务的装置。
[0056] 另一种实施例包括一种装置,该装置还包括用于允许所述一个或多个事务应用服务器重用到本地数据库服务器的现有数据库连接的装置。
[0057] 另一种实施例包括一种装置,该装置还包括用于把事务日志信息写到事务日志文件的装置。
[0058] 另一种实施例包括一种装置,该装置还包括用于在分布式文件系统中支持事务日志文件的装置。
[0059] 另一种实施例包括一种装置,该装置还包括用于在恢复站点上同步事务日志文件中的事务日志信息的装置。
[0060] 另一种实施例包括一种装置,其中事务是两阶段事务。
[0061] 另一种实施例包括一种装置,其中事务日志信息包含在成功提交两阶段事务的第一阶段之后事务管理器的持久化状态。
[0062] 另一种实施例包括一种装置,其中事务日志信息基于事务文件系统的地图并且在事务日志记录中维护。
[0063] 另一种实施例包括一种装置,该装置还包括用于利用全局事务创建事务文件系统的地图的并且在事务过程被引导时打开事务日志记录的装置。
[0064] 另一种实施例包括一种装置,其中事务日志信息包含用于多个事务域的信息。
[0065] 本发明可以利用一种或多种传统的通用或专用数字计算机、计算设备、机器或微处理器方便地实现,包括一个或多个处理器、根据本公开内容教义编程的存储器和/或计算机可读存储介质。如对软件领域的技术人员来说将很显然的,适当的软件编码可以很容易地被熟练的程序员基于本公开内容的教义来准备。
[0066] 在有些实施例中,本发明包括计算机程序产品,这是其上/其中存储了可以用于编程计算机以便执行本发明任何过程的指令的存储介质或计算机可读介质。存储介质可以包括,但不限于,任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型硬盘及磁光盘,ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或者适于存储指令和/或数据的任何类型的介质或设备。
[0067] 本发明以上描述的提供是为了说明和描述。它不是穷尽的或者要把本发明限定到所公开的精确形式。许多修改和变化将对本领域技术人员显而易见。实施例的选择与描述是为了最好地解释本发明的原理及其实践应用,由此使本领域其他技术人员能够理解本发明具有适于预期特定用途的各种修改的各种实施例。本发明的范围要由以下权利要求及其等同物来限定。
QQ群二维码
意见反馈