入门
此手册中的配置使用单个 Oracle WebLogic Server 域,其中两个站点中的服务器参与同一集群(称为拉伸集群),并依赖 Data Guard 为数据库提供保护。
在 OCI 中,流量管理、健康检查、负载平衡器、DNS 专用视图和动态路由网关等功能提供了增强的功能来支持此设置。对于内部部署环境,应使用等效的网络和基础设施组件来满足这些要求。
站点或区域之间的网络延迟需要足够低,以最大限度地减少调用延迟带来的性能损失,并防止部署和运行时期间出现不一致。仅当 WebLogic 服务器与数据库之间的延迟低于 10 毫秒往返时间 (round-trip time,RTT) 时,Oracle 才支持此拓扑。
为了实现最佳性能和故障转移行为,Oracle 建议您分析在 WebLogic 拉伸集群中运行的每个应用程序,并相应调整本手册中讨论的不同参数(超时、会话复制配置、服务迁移租赁、Java 事务处理 API (JTA) 等等)。
了解 Oracle Fusion Middleware 拉伸集群
提供 Oracle 最大可用性体系结构 (MAA) 是任何 Oracle Fusion Middleware 企业部署的关键要求之一。
Oracle Fusion Middleware 包含一系列广泛的高可用性功能,例如进程死亡检测和重新启动、服务器集群、服务迁移、GridLink、负载平衡、故障转移、备份和恢复、滚动升级和滚动配置更改,这些功能可保护企业部署免受计划外停机的影响,并尽可能减少计划内停机。这些功能可在单个数据中心内提供本地高可用性解决方案。
此外,应用需要防止意外灾难、自然灾难和可能影响整个数据中心的停机。大多数传统的灾难保护系统使用主动 - 被动模型,该模型涉及在与生产站点不同的地理位置设置备用站点。当站点之间的延迟很高并且不允许跨两个站点进行聚类时,通常会采用此模型。此方法提供完整的最大可用性体系结构 (MAA) 保护。但是,这会产生额外的操作和管理成本,因为备用中间件系统会镜像主系统并需要持续复制。Oracle Fusion Middleware Disaster Recovery Guide 中介绍了此模型。
此手册介绍了另一个模型:基于 Oracle Fusion Middleware 拉伸集群的主动 - 主动模型,该模型可用于保护 Oracle Fusion Middleware 系统免受多个位置的停机。此模型对中间层使用主动 - 主动配置,而数据库层使用具有 Data Guard 的主动 - 被动配置。它旨在优化容量并在整个站点之间分配工作负载。它通过使用所有可用资源而不是使备用计算机处于空闲状态来比主动 - 被动模型更有效地利用资源。此模型称为 FMW 拉伸集群部署。
特别是,本手册重点介绍了如何在 Oracle Cloud Infrastructure (OCI) 区域中实施此模型。它提供了用于设置建议的拓扑的配置步骤,并提供了有关此设置对性能和故障转移影响的指导。
本手册中的结果和示例基于遵循企业部署指南体系结构的 Oracle SOA Suite 14.1.2 系统。这是一个重要的例子,因为它包括许多功能,如标准雅加达组件,HTTP 会话复制,数据库元数据持久性,Coherence 集群,以及 Java Message Service(JMS) 和 Java 事务 API(JTA) 持久性存储,以及拉伸集群的其他相关注意事项。因此,还可将描述的拓扑和建议应用于其他 Oracle Fusion Middleware 环境。
术语
-
中间层(也是中间层或中间件)
中间层是指位于用户界面(前端)和数据存储(后端)之间的多层应用架构中的层。它处理业务逻辑、数据处理和安全性,充当用户与数据库之间的桥梁。
-
Oracle® Fusion Middleware
Oracle Fusion Middleware 是一个全面的 Oracle 企业中间件产品系列,支持企业高效、安全地构建、部署和管理应用。它包括应用服务器、集成、业务流程管理、商务智能、安全、身份管理、Web 服务器等解决方案。
-
灾难
在某个地点或地理区域造成不可接受的损害或损失的突然计划外灾难性事件。灾难是指在不可接受的期限内影响组织提供关键功能、流程或服务的能力并导致组织调用其恢复计划的事件。
-
灾难恢复
通过制订应用程序和数据恢复策略,抵御生产站点上的自然或计划外中断的能力,使生产站点具备抵御因自然条件或计划外断电的策略。
-
Oracle 高可用性架构
Oracle 最高可用性架构 (Oracle MAA) 是 Oracle 产品(Oracle Database 、Oracle Fusion Middleware Applications)的数据保护和可用性实践蓝图。实施 Oracle MAA 优秀实践是任何 Oracle 部署的关键要求之一。它提供了设置和管理 Oracle 系统的建议。Oracle MAA 包含 Oracle Fusion Middleware Enterprise Deployment Guide 建议,并添加了灾难保护优秀实践,以最大限度地减少影响整个数据中心或区域的停机计划内和计划外停机时间。有关相关文档和其他资源的链接,请参见“浏览更多”部分。
-
站点(或数据中心)
站点是运行一组应用程序所需的数据中心中一组不同的组件。例如,站点可以由 Oracle Fusion Middleware 实例、数据库、存储等组成。
-
系统
系统是指一起工作以承载应用程序的一组目标(主机、数据库、应用程序服务器等)。例如,要在 Oracle Enterprise Manager 中监视应用程序,请首先创建一个系统,该系统由运行应用程序的数据库、监听程序、应用程序服务器和主机目标组成。
-
拉伸集群
拉伸集群是指在集群体系结构中,单个逻辑集群中的节点分布在不同地理位置的数据中心或位置。
-
切换
切换是反转生产站点和备用站点角色的过程。切换是为定期验证或对当前生产站点执行计划维护而执行的计划操作。在切换期间,当前备用站点将成为新的生产站点,当前生产站点将成为新的备用站点。此手册还使用术语切换来引用站点切换。
-
退回
切换是将当前生产站点和当前备用站点恢复为其原始角色的过程。切换是在切换操作完成后执行的计划操作。切换将恢复每个站点的原始角色:当前备用站点成为生产站点,当前生产站点成为备用站点。此剧本还使用术语 switchback 来引用站点 switchback。
-
故障转移
故障转移是指使当前备用站点成为新生产站点的过程,在生产站点意外不可用(例如,由于生产站点发生灾难)。此手册还使用术语“故障转移”来指代站点故障转移。
-
恢复点目的 (RPO)
恢复点目标是从业务角度来看,系统可以容忍的数据丢失量,例如发生中断时可接受的数据丢失量。
-
恢复时间目的 (RTO)
恢复时间目标是,从业务角度来看,系统可以容忍的停机时间量或应用程序或服务在发生停机时可以保持不可用的时间量。
- Oracle Cloud Infrastructure
Oracle Cloud Infrastructure (OCI) 是一套互补的云技术服务,可帮助您在高可用性托管环境中构建和运行一系列应用和服务。OCI 在灵活的叠加虚拟网络中提供高性能计算功能(作为物理硬件实例)和存储容量,可从您的本地网络安全访问。
-
OCI 地区
OCI 区域是一个本地化的地理区域,其中包含一个或多个托管可用性域的数据中心。区域独立于其他区域,并且很远的距离可以将它们分开(跨越国家甚至大洲)。
区域是灾难恢复方面的站点。
- 可用性域
可用性域是区域中独立的数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共用基础设施(例如电源或冷却设备)或内部可用性域网络。因此,一个可用性域出现故障不会影响该区域中的其他可用性域。
- OCI 虚拟云网络和子网
虚拟云网络 (VCN) 是您可以在 OCI 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您控制网络环境。一个 VCN 可以具有多个不重叠的无类域间路由 (classless inter-domain routing,CIDR) 块,在创建 VCN 后可以更改这些块。您可以将 VCN 细分为多个子网,这些子网可以限定为某个区域或某个可用性域。每个子网由一系列不与 VCN 中的其他子网重叠的连续地址组成。您可以在创建子网后更改子网的大小。子网可以是公共子网,也可以是专用子网。
- 动态路由网关 (DRG)
DRG 是一个虚拟路由器,用于为同一区域中的 VCN、VCN 与该区域之外的网络(例如另一个 OCI 区域中的 VCN、内部部署网络或其他云提供商中的网络)之间的专用网络流量提供路径。
- OCI DNS
Oracle Cloud Infrastructure 域名系统 (Domain Name System,DNS) 服务是一个高度可扩展的全球任播域名系统 (anycast Domain Name System,DNS) 网络,可提供增强的 DNS 性能、弹性和可扩展性,可帮助最终用户随时随地快速连接到互联网应用。
-
OCI DNS 专有视图
OCI DNS 专用视图是一个或多个 OCI 专用 DNS 区域的集合,用于对 DNS 区域进行逻辑分组并控制其解析方式。A view is attached to a private DNS resolver, which can be the default resolver for a virtual cloud network (VCN) or a custom one. 这样,您可以为 VCN 中的不同环境或应用管理单独的 DNS 配置。
-
虚拟 IP
虚拟 IP (virtual IP,VIP) 地址指未与特定物理网络接口或设备关联的 IP 地址。相反,它是抽象的,可以在设备之间移动或用于各种网络功能。
-
OCI 流量管理
OCI Traffic Management 使用基于 DNS 的高级策略(OCI 流量引导策略)智能地将用户流量定向到最佳端点。通过该服务,企业可以控制 DNS 查询的解决方式,优化客户端请求的路由,从而提高 OCI 或其他位置上部署的应用或服务的可用性、性能和弹性。
-
负载平衡器
负载平衡器是一种系统或服务,用于在多个服务器上分配传入网络流量,以确保应用的高可用性、可靠性和最佳性能。
-
OCI 负载均衡器
OCI Load Balancer 是完全托管的 Oracle Cloud Infrastructure 服务,可自动在多个后端服务器或资源之间分配传入流量,确保应用的高可用性、更高的性能和可扩展性。
-
块存储
块存储是一种数据存储,其中信息保存在固定大小的块中,可以通过 iSCSI 或光纤通道等存储协议由服务器或应用程序直接访问。
- OCI 块存储卷
借助 Oracle Cloud Infrastructure Block Volumes ,您可以创建、附加、连接和移动存储卷,并更改卷性能,以满足存储、性能和应用需求。连接卷并将其连接到实例后,您可以像常规硬盘驱动器那样使用该卷。您还可以断开卷的连接并将其附加到另一个实例,而不会丢失数据。
-
共享的存储
共享存储是指可以在 IT 环境中由多个服务器、计算机或应用程序同时访问的存储系统或资源。通过此设置,所有参与系统都可以从同一数据存储库中读取和写入数据,非常适合需要数据一致性、协作、高可用性和可扩展性的场景。
- OCI 文件存储
Oracle Cloud Infrastructure File Storage 提供持久、可扩展、安全的企业级网络文件系统。您可以从 VCN 中的任何裸金属、虚拟机或容器实例连接到 OCI 文件存储。您还可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN 从 VCN 外部访问 OCI 文件存储。
-
OCI 数据库技术服务
OCI 数据库服务是指 Oracle Cloud Infrastructure (OCI) 提供的托管数据库解决方案组合。这些服务在 Oracle Cloud 中提供各种数据库部署和管理选项,可支持各种工作负载、性能需求和数据模型,例如 Oracle Base Database Service 和 Oracle Exadata Database Service 。
- Oracle Data Guard
Oracle Data Guard 和 Active Data Guard 提供了一组全面的服务,可创建、维护、管理和监视一个或多个备用数据库,并使生产 Oracle 数据库在不中断的情况下保持可用。Oracle Data Guard 使用内存中复制将这些备用数据库作为生产数据库的副本进行维护。如果生产数据库由于计划内或计划外停机而变得不可用,则 Oracle Data Guard 可以将任何备用数据库切换到生产角色,从而最大限度地减少与停机关联的停机时间。Oracle Active Data Guard 提供了将读写工作负载卸载到备用数据库的额外功能,还提供了高级数据保护功能。
此手册使用 OCI 作为部署 Oracle Fusion Middleware 拉伸集群的示例基础结构。以下是 Oracle Fusion Middleware 拉伸集群设置所需的主要组件的本地到 OCI 等效项:
| 本地(或通用) | OCI 等同 |
|---|---|
| 站点(或数据中心) | OCI 区域 |
| 共享存储(例如 NFS) | OCI 文件存储 |
| 块存储 | OCI 块存储卷 |
| 全局负载平衡器 | OCI 流量管理和引导策略 |
| 本地负载平衡器 | OCI 负载均衡器 |
| 网络图 | OCI 虚拟云网络 |
| 防火墙/防火墙规则 | OCI 网络安全规则 |
| 内部 DNS | OCI DNS 专有视图 |
| 物理服务器/虚拟机 | OCI 计算实例 |
| 本地数据库 | OCI 数据库服务 |
| 站点之间的内部部署连接 | 具有动态路由网关的 OCI 远程对等连接 |
体系结构
以下注意事项适用于 FMW 拉伸群集体系结构:
- 区域
此拓扑中有两个区域或站点。它们之间的延迟不应高于 10 毫秒的往返时间 (RTT)。带宽要求将取决于每个系统处理的有效负载类型,但建议至少为 1 或 2 千兆位/秒 (Gbps)。
- 中间级别
中间层在具有单个域的主动 - 主动模型中运行。托管服务器的一半部署在一个站点,其余的部署在另一个站点。管理服务器在一个站点中运行,但如果需要,可以故障转移到另一个站点。此设置通常称为拉伸群集。
- Database Tier
数据库层使用 Oracle Data Guard 支持的主动 - 被动体系结构。主数据库位于一个站点,而备用数据库位于另一个站点。所有中间层服务器都配置为连接到当前用作主数据库的数据库,而不管其位置如何。在每个站点中配置的 Oracle Database 是 Oracle Real Application Clusters (Oracle RAC) 。Oracle RAC 使 Oracle 数据库能够在同一数据中心内的服务器集群中运行,以在无需更改应用程序的情况下提供容错能力的、性能和可扩展性。
- 存储
共享存储是每个站点的本地存储。出于争用和安全原因,不建议跨站点使用共享存储。建议将磁盘镜像或从 site1 复制到 site2,反之亦然,以提供每个站点中对象的可恢复副本。
- 持久性存储
WebLogic 持久性存储 (Java Message Service,JMS) 和 Java 事务处理 API (JTA) 配置为数据库中的 Java 数据库连接 (JDBC) 存储。通过这种方式,它们可以从两个站点访问。这允许自动服务迁移功能在两个站点之间工作。
- 请求转发
每个站点的 Web 服务器仅将请求转发到位于同一站点中的 Oracle WebLogic Server 实例。Web 服务器(Oracle HTTP Server 实例)与另一站点中的 WebLogic 服务器之间没有跨区域通信,以最大程度地减少延迟和跨区域通信。
- 负载平衡器
每个站点都有自己的专用负载平衡器,该负载平衡器将请求专门定向到该本地站点内的 Web 服务器。负载平衡器与位于其他站点的 Web 服务器之间没有跨区域通信。
- 前端访问
在系统前面,该解决方案提供对系统的单个前端访问。客户机使用保持不变的单个地址进行连接,而不管客户机指向哪个站点。此机制提供了一个域名系统 (Domain Name System,DNS) 名称,可供所有客户机访问,并根据预定义的标准和规则(例如客户机的地理位置)将请求路由到任一站点。
下图说明了 Oracle Fusion Middleware 拉伸集群拓扑
下图说明了 Oracle Fusion Middleware 拉伸集群拓扑中的 WebLogic 域和集群:
优点
- 简化管理
主动 - 被动部署会产生额外的管理开销,从而使配置在主站点和备用站点之间保持同步。虽然大多数运行时信息和元数据都驻留在数据库中,但 Oracle WebLogic Server 配置驻留在文件系统中。因此,除了为数据库执行 Oracle Data Guard 复制之外,主动 - 被动模型还需要连续的文件系统复制,可以采用各种方式(rsync、存储级副本等)实现。
但是,在 FMW 拉伸集群模型中,Oracle WebLogic Server 基础结构使配置在同一域中的多个节点之间保持同步。此配置中的大多数通常位于管理服务器的域目录下。当托管服务器启动或实施更改时,此配置会自动传播到同一域中的其他节点。因此,与任何主动 - 被动方法(需要不断复制配置更改)相比,部署的管理开销非常小。
- 在某些故障转移方案中提高可用性和降低 RTO 和 RPO
在以下情况下,FMW 拉伸集群模型提供了比主动 - 被动模型更好的恢复点目标 (Recovery Point Objective,RPO) 和恢复时间目标 (Recovery Time Objective,RTO):
- 在一个站点事件中完成中间层故障
如果一个位置中的所有中间层服务器发生故障,则系统可以继续立即对对等站点中的中间层服务器执行请求。此类型方案中的 RTO 和 RPO 为零。
为了实现这一目标,替代位置的中间层服务器需要能够维持两个位置的组合工作负载。必须进行适当的容量规划,以考虑此类情况。根据设计,当只有一个站点处于活动状态时,可能需要限制来自最终客户机的请求。否则,站点必须设计具有抗压能力,部分地击败了持续和高效使用容量的目的。
- 数据库层事件中的故障
数据库的切换在主动 - 被动和 FMW 拉伸群集模型中会产生相同的 RTO 和 RPO。但是,在拉伸群集模型中,系统的整体 RTO 较低,因为中间层服务器已在辅助站点中处于活动状态。不需要重新启动中间层。适当的数据源配置使用带有 GridLink 和快速应用程序通知 (Fast Application Notification,FAN) 通知的双连接字符串,可自动从中间层进行数据库连接的故障转移,从而减少系统 RTO。
- 在一个站点事件中完成中间层故障
注意事项
- 容量规划
此模型要求进行容量规划,以考虑两个站点之间的故障转移方案。如果整个站点失去中间层,则另一个站点必须能够承受全部工作量。否则,可用站点可能会由于开销而变得无响应。这意味着在正常运行期间,中间层节点必须未得到充分利用,才能有足够的容量来处理故障转移方案。此规则也适用于 Web 层。如果一个站点失去其所有 Web 服务器,则另一个站点的 Web 服务器必须能够处理所有系统请求。
- 跨站点的网络吞吐量
网络吞吐量主要取决于两件事:站点有多远以及网络处理可靠性和拥塞的程度。无论服务器或软件的速度有多快,数据在站点之间的移动速度都会受到限制。影响此情况的两个重要因素是延迟和抖动:
-
延迟是指数据通过网络从一个站点传输到另一个站点所需的时间。它可以测量单向(从源到目的地)或往返(那里和后面)。往返时间 (round-trip time,RTT) 更常见,可以使用
ping命令进行检查。 -
抖动是数据包到达所需时间的变化。
对于当前的模型,保持低延迟尤为重要,因为抖动通常仅在延迟已经非常低时才重要。因此,在这种设置中,控制延迟是实现良好性能的主要优先级。距离通常是延迟的最相关原因。
进行的测试表明,当延迟 (RTT) 超过 10 毫秒时,此模型中的性能(集群中的某些 Oracle WebLogic Server 实例位于与数据库不同的站点)会大幅降低。
Oracle 进行了多次测试,不同配置受不同延迟影响。此手册中显示的引用延迟可用于区分集群,包括:- 同一可用性域中的所有成员
- 不同可用性域中的成员
- 附近但 OCI 区域不同的两个区域的成员
下图显示了针对 WebLogic 服务器与数据库之间的不同延迟运行 Fusion Order Demo (FOD) 的 Oracle Fusion Middleware SOA 系统的吞吐量(每秒事务处理数):
下图显示了运行 Fusion Order Demo (FOD) 的 Oracle Fusion Middleware SOA 系统的 Java Transaction API (JTA) 活动时间,该系统使用不同站点上的数据库,这些站点之间的延迟不同:
下图显示了在站点之间不同延迟(两个站点与其中一个站点中的数据库一起工作)的每秒事务处理的总系统吞吐量下降情况。
注意:
考虑到上述所有因素,并且由于在许多测试中观察到的性能损失,Oracle 不支持 Oracle Fusion Middleware 延伸的集群在站点之间超过 10 毫秒的延迟 (RTT)。系统可以毫无问题地运行,但交易时间将大幅增加。超过 10 毫秒 (RTT) 的延迟也会导致 Oracle Coherence 集群中用于部署和 JTA、Web 服务或应用程序超时的问题。这使得本手册中提供的解决方案主要适用于延迟较低的站点或区域。
-
- 跨区域流量
在当前模型中,您需要最大限度地减少站点之间的流量,以减少延迟对系统吞吐量的影响。在典型的 FMW 系统中,不同层或元素之间的通信包括:
-
从 Oracle WebLogic Server 实例访问数据库,以进行元数据访问和其他数据库读/写操作。
-
从负载平衡器 (LBR) 或 Oracle HTTP Server 实例和 HTTP 回调传入 HTTP 调用。
-
Oracle WebLogic Server 实例之间的 Java Naming and Directory Interface (JNDI)/Remote Method Invocation (RMI) 和 Java Message Service (JMS) 调用。
-
系统中所有服务器之间的 Oracle Coherence 通知。例如,SOA 使用 Coherence 提供一致的组合映像和元数据映像。
-
Oracle WebLogic Server 实例之间的 HTTP 会话复制。某些组件使用有状态 Web 应用程序,这些应用程序可能依赖会话复制来实现跨服务器会话的透明故障转移。根据使用模式和用户数,这可能会生成大量复制数据。
-
轻量目录访问协议 (LDAP)/policy/identity 存储访问由 Oracle WebLogic Server 基础结构执行,以便进行授权和验证。理想情况下,每个站点都应具有独立的身份和策略存储,并定期进行同步,以最大程度地减少从一个站点到另一个站点的调用。或者,两个站点可以共享同一存储。共享存储的影响将取决于存储的类型和系统的使用模式。
只要有可能,上述所有内容都应包含在站点中以提高性能。例如:
-
一个站点中的服务器只能接收来自同一站点中的 Oracle HTTP Server 实例的调用。
-
一个站点中的服务器应仅对同一站点中的服务器进行 JMS、RMI 和 JNDI 调用,并且应仅获取同一站点中的服务器生成的回调。
-
HTTP 会话复制应仅限于同一站点中的其他服务器。必须针对每个业务案例分析复制和故障转移要求,但最好是尽可能减少站点间的会话复制流量。
-
- 共享的存储
跨站点的网络文件系统 (Network File System,NFS) 写入延迟可能会导致性能严重下降。服务器应使用其站点的本地存储设备,以消除对文件系统的读/写请求中的争用。共享存储应仅限于位于每个站点内。
- 其他资源
这两个站点可以共享其他外部资源,例如 LDAP、外部 JMS 目标、外部 Web 服务等。需要这两个站点始终提供这些资源。这些外部资源的配置详细信息不在本手册的范围内。




