使用AWS弹性灾难恢复为 Oracle JD Edwards EnterpriseOne 设置灾难恢复 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用AWS弹性灾难恢复为 Oracle JD Edwards EnterpriseOne 设置灾难恢复

由 Thanigaivel Thirumalai 创作 () AWS

摘要

由自然灾害、应用程序故障或服务中断引发的灾难会损害收入,导致企业应用程序停机。为了减少此类事件的影响,灾难恢复(DR)计划对于采用JD Edwards EnterpriseOne 企业资源规划 (ERP) 系统和其他关键任务和业务关键型软件的公司至关重要。 

这种模式解释了企业如何使用 AWS Elastic 灾难恢复作为其 JD Edwards EnterpriseOne 应用程序的灾难恢复选项。 它还概述了使用弹性灾难恢复故障转移和故障恢复为云中亚马逊弹性计算云 (AmazonEC2) 实例上托管的数据库构建跨区域灾难恢复策略的AWS步骤。

注意

这种模式要求托管跨区域灾难恢复实施的主要和次要区域。AWS

Oracle JD Edwards EnterpriseOne 是一款面向各行各业的大中型公司的集成ERP软件解决方案。

AWSElastic Daser Recovery 使用经济实惠的存储、最少的计算和恢复,通过快速、可靠地 point-in-time恢复本地和基于云的应用程序,最大限度地减少停机时间和数据丢失。

AWS提供了四种核心灾难恢复架构模式。本文档重点介绍如何使用指示灯策略进行设置、配置和优化。此策略可帮助您创建低成本灾难恢复环境,在该环境中,您可以先配置复制服务器,以从源数据库复制数据,而只有在开始灾难恢复演练和恢复时才配置实际的数据库服务器。此策略省去了灾难恢复区域维护数据库服务器的成本。相反,您需要为用作复制服务器的小型EC2实例付费。

先决条件和限制

先决条件

  • 一个活动的 AWS 账户。

  • 在 Oracle 数据库或 Microsoft SQL 服务器上运行的 JD Edwards EnterpriseOne 应用程序,受支持的数据库在托管EC2实例上处于运行状态。此应用程序应包括安装在一个AWS区域中的所有 JD Edwards EnterpriseOne 基础组件(企业HTML服务器、服务器和数据库服务器)。

  • 用于设置 Elastic 灾难恢复服务的AWS身份和访问管理 (IAM) 角色。

  • 根据所需连接设置配置用于运行 Elastic Disaster Recovery 的网络。

限制

  • 您可以使用此模式复制所有层,除非数据库托管在 Amazon Relational Database Service (AmazonRDS) 上,在这种情况下,我们建议您使用亚马逊RDS的跨区域复制功能

  • Elastic 灾难恢复与 CloudEndure 灾难恢复不兼容,但您可以从 CloudEndure 灾难恢复中升级。有关更多信息,请参阅 Elastic 灾难恢复文档FAQ中的。

  • Amazon Elastic Block Store (AmazonEBS) 限制了您可以拍摄快照的速率。使用 Elastic 灾难恢复,您最多可以在一个AWS账户中复制 300 台服务器。要复制更多服务器,您可以使用多个AWS账户或多个目标AWS区域。(您必须为每个账户和地区分别设置 Elastic Disaster Recovery。) 有关更多信息,请参阅 Elastic Disaster Recovery 文档中的最佳实践

  • 源工作负载(JD Edwards EnterpriseOne 应用程序和数据库)必须托管在EC2实例上。这种模式不支持本地或其他云环境的工作负载。

  • 这种模式侧重于 JD Edwards EnterpriseOne 组件。完整的灾难恢复和业务连续性计划 (BCP) 应包括其他核心服务,包括:

    • 网络(虚拟私有云、子网和安全组)

    • Active Directory

    • Amazon WorkSpaces

    • Elastic Load Balancing

    • 托管数据库服务,例如亚马逊关系数据库服务 (AmazonRDS)

有关先决条件、配置和限制的更多信息,请参阅 Elastic Disaster Recovery 文档

产品版本

  • Oracle JD Edwards EnterpriseOne (基于 Oracle 最低技术要求的 Oracle 和 SQL Server 支持的版本)

架构

目标技术堆栈

  • 单个区域和单个虚拟私有云 (VPC) 用于生产和非生产,第二个区域用于灾难恢复

  • 单一可用区可以确保服务器之间的低延迟

  • 应用程序负载均衡器用于分配网络流量,以提高应用程序在多个可用区的可扩展性和可用性

  • 亚马逊 Route 53 将提供域名系统 (DNS) 配置

  • 亚马逊 WorkSpaces 将为用户提供云端桌面体验

  • Amazon Simple Storage Service (Amazon S3),用于存储备份、文件和对象

  • Amazon CloudWatch 用于应用程序日志、监控和警报

  • Amazon Elastic Disaster Recovery,用于灾难恢复

目标架构

下图显示了 EnterpriseOne 使用 Elastic 灾难恢复的 JD Edwards 跨区域灾难恢复架构。

京东 Edwards EnterpriseOne 跨区域灾难恢复架构已开启 AWS

过程

以下是对该进程的高度回顾。有关详细信息,请参阅操作说明部分。

  • Elastic Disaster Recovery 复制从初始同步开始。在初始同步期间,Replic AWS ation Agent 会将所有数据从源磁盘复制到暂存区域子网中的相应资源。

  • 初始同步完成后,连续复制将无限期继续。

  • 安装代理并开始复制后,您可以查看EC2启动参数,包括服务特定的配置和 Amazon 启动模板。当源服务器被指示为准备恢复时,即可启动实例。

  • 当 Elastic 灾难恢复发出一系列API调用以开始启动操作时,将AWS根据您的启动设置立即启动恢复实例。该服务会在启动期间自动启动转换服务器。

  • 转换完成并准备好使用AWS后,将启动新实例。启动时的源服务器状态通过与已启动实例关联的卷表示。转换过程包括更改驱动程序、网络和操作系统许可证,以确保实例在AWS本地启动。

  • 启动后,新建卷将不再与源服务器保持同步。AWSReplication Agent 会继续定期将对源服务器所做的更改复制到暂存区域卷,但启动的实例并未反映这些更改。

  • 启动新的演练或恢复实例时,数据始终反映在源服务器复制到暂存区域子网的最新状态中。

  • 当源服务器被标记为准备恢复时,您可启动实例。

注意

该过程是双向的:从主AWS区域故障转移到灾难恢复区域,以及在主站点恢复后故障恢复到主站点。您可通过以完全编排的方式,将数据从目标计算机复制回源计算机的方向,反过来为失效自动恢复做好准备。

此模式中描述的此进程的好处包括:

  • 灵活性:复制服务器根据数据集和复制时间进行横向扩展和横向缩减,因此您可在不中断源工作负载或复制的情况下执行灾难恢复测试。

  • 可靠性:复制功能强大、无中断且可持续。

  • 自动化:此解决方案为测试、恢复和失效自动恢复提供了统一、自动化流程。

  • 成本优化:您只能复制所需卷并为其付费,并且只有在灾难恢复站点的计算资源被激活后,才可以为这些资源付费。您可以为多个源使用成本优化的复制实例(我们建议您使用计算优化的实例类型),也可以使用具有大容量的单个源。EBS

自动化和扩缩

当您大规模执行灾难恢复时,JD Edwards EnterpriseOne 服务器将依赖环境中的其他服务器。例如:

  • 启动时连接到 JD Edwards EnterpriseOne 支持的数据库的 JD Edwards EnterpriseOne 应用程序服务器依赖该数据库。

  • 需要身份验证且需要在启动时连接到域控制器才能启动服务的 JD Edwards EnterpriseOne 服务器依赖于域控制器。

因此,我们建议自动执行失效转移任务。例如,您可以使用 AWS Lambda 或 AWS Step Functions 自动执行 JD Edwards EnterpriseOne 启动脚本和负载均衡器更改,以自动执行故障转移过程。 end-to-end有关更多信息,请参阅博客文章使用 El a AWS stic 灾难恢复创建可扩展的灾难恢复计划

工具

AWS 服务

最佳实践

一般最佳实践

  • 制定书面计划,说明在发生真正恢复事件时该怎么做。

  • 正确设置 Elastic 灾难恢复后,创建一个可以在需要时按需创建配置的AWS CloudFormation 模板。确定服务器和应用程序的启动顺序,并将其记录至恢复计划。

  • 定期进行演练(适用标准的 Amazon EC2 费率)。

  • 使用 Elastic Disaster Recovery 控制台或以编程方式监控正在进行的复制的运行状况。

  • 保护 point-in-time快照并在终止实例之前进行确认。

  • 为安装AWS复制代理创建IAM角色。

  • 在真实灾难恢复场景中为恢复实例启动终止保护。

  • 请勿对启动恢复实例的服务器使用 Elastic 灾难恢复控制台中的 “断开连接” AWS 操作,即使发生实际恢复事件也是如此。执行断开连接会终止与这些源服务器相关的所有复制资源,包括您的 point-in-time (PIT) 恢复点。

  • 更改PIT政策以更改快照保留天数。

  • 在 Elastic Disaster Recovery 启动设置中编辑启动模板,为目标服务器设置正确的子网、安全组和实例类型。

  • 使用 Lambda 或 Step Functions 自动更改 JD Edwards EnterpriseOne 启动脚本和负载均衡器,从而自动执行 end-to-end故障转移流程。

JD Edwards 的 EnterpriseOne 优化和注意事项

  • PrintQueue入数据库。

  • MediaObjects入数据库。

  • 从批处理服务器和逻辑服务器中排除日志和临时文件夹。

  • 从 Oracle WebLogic 中排除临时文件夹。

  • 为失效转移后启动创建脚本。

  • 排除服务器的 tempdb。SQL

  • 排除 Oracle 临时文件。

操作说明

任务描述所需技能

设置复制网络。

在主AWS区域实施您的 JD Edwards EnterpriseOne 系统并确定灾难恢复AWS区域按照 Elastic 灾难恢复文档中复制网络要求部分中的步骤来规划和设置您的复制和灾难恢复网络。

AWS 管理员

确定RPO和RTO。

确定应用程序服务器和数据库的恢复时间目标 (RTORPO) 和恢复点目标 ()。

云架构师、灾难恢复架构师

为 Amazon 启用复制EFS。

如果适用,请使用 AWS DataSync rsync 或其他适当的工具为共享文件系统(例如 Amazon Elastic File Sy stem (AmazonEFS))启用从AWS主区域到灾难恢复区域的复制。

云管理员

DNS在发生 DR 时进行管理

确定在灾难恢复演习或实际灾难恢复期间更新域名系统 (DNS) 的过程

云管理员

创建用于安装的IAM角色。

按照 Elastic 灾难恢复文档的 Elastic 灾难恢复初始化和权限部分中的说明创建IAM角色来初始化和管理AWS服务。

云管理员

设置对VPC等互连。

确保源和目标之间VPCs是对等的,并且可以互相访问。有关配置说明,请参阅 Amazon VPC 文档

AWS 管理员
任务描述所需技能

初始化 Elastic Disaster Recovery。

打开 Elastic 灾难恢复控制台,选择目标AWS区域(您将在其中复制数据和启动恢复实例),然后选择设置默认复制设置

AWS 管理员

设置复制服务器。

  1. 设置复制服务器窗格,输入暂存区域子网和复制服务器实例类型。默认情况下选择 t3.small实例类型。根据您的要求配置该设置,并记得考虑实例定价。有关更多信息,请参阅 Amazon EC2 定价

  2. 服务访问权限部分,选择查看详细信息以查看服务关联角色和在服务初始化期间创建的其他策略。

  3. 选择下一步

AWS 管理员

配置卷与安全组。

  1. 卷和安全组窗格中,选择复制服务器的EBS卷类型,然后将 Amazon EBS 加密设置为默认。

  2. 选择始终使用 AWS Elastic 灾难恢复安全组,这样 Elastic 灾难恢复就会自动连接和监控默认安全组。

  3. 选择下一步

AWS 管理员

配置其他设置。

  1. 其他设置窗格中,配置数据路由和限制、PIT策略和标签。

    • 数据路由和节流控制数据如何从外部的服务器流向复制服务器。选择使用私有 IP 执行数据复制。否则,复制服务器将自动分配公有 IP,并且数据将通过公共 Internet 流动。

    • 在 Point in time (PIT) 策略部分,配置保留策略,以确定不需要快照的持续时间。原定设置的保留期为七天。

    • 标签部分,向您的AWS账户中由 Elastic 灾难恢复创建的资源添加自定义标签。

  2. 选择下一步,在下一个窗格中查看设置,然后选择创建默认值以创建默认模板。

AWS 管理员
任务描述所需技能

创建一个 IAM 角色。

创建包含AWSElasticDisasterRecoveryAgentInstallationPolicy策略的IAM角色。在 “选择AWS访问类型” 部分,启用编程访问权限。记下访问密钥 ID 和秘密访问密钥。在安装AWS复制代理期间,您将需要这些信息。

AWS 管理员

查看要求。

查看并完成 Elastic 灾难恢复文档中安装AWS复制代理的先决条件

AWS 管理员

安装AWS复制代理。

按照操作系统的安装说明进行操作,然后安装AWS复制代理。

  • 对于 Microsoft Windows:下载安装文件并以管理员身份运行 .exe 文件。 按照提示完成安装。

  • 对于 Linux:复制以下命令(按显示的顺序)并将其粘贴到您的 Secure Shell (SSH) 会话中。第一个命令为下载安装程序,第二个命令运行它。

    wget -O ./aws-replication-installer-init.py https://aws-elastic-disaster-recovery-us-west-2.s3.amazonaws.com/latest/linux/aws-replication-installer-init.py
    sudo python3 aws-replication-installer-init.py

    按照提示完成安装。

    注意

    更改URL以反映您所在的地区。

对其余服务器重复上述步骤。

AWS 管理员

监控复制。

返回 Elastic Disaster Recovery源服务器窗格,以监控复制状态。初始同步将花费一定的时间,具体取决于数据传输的大小。

源服务器完全同步后,服务器状态将更新为就绪。这意味着已在暂存区创建了复制服务器,并且EBS卷已从源服务器复制到暂存区。

AWS 管理员
任务描述所需技能

编辑启动设置。

若要更新演练和恢复实例的启动设置,请在 Elastic Disaster Recovery 控制台,选择源服务器,然后选择操作编辑启动设置。或者,您可以从源服务器页面中选择要复制的源计算机,然后选择启动设置选项卡。此选项卡分为两个部分:“常规启动设置” 和 “EC2启动模板”。

AWS 管理员

配置常规启动设置。

根据您的要求修改常规启动设置。

  • 正确调整实例类型:如果您选择基本,Elastic Daser Recovery 将绕过您在亚马逊EC2启动模板中选择的实例类型,CPU并根据操作系统和源服务器RAM的操作系统自动选择实例类型。

  • 复制私有 IP:选择是否希望 Elastic Daser Recovery 确保演练或恢复实例的私有 IP 与源服务器的私有 IP 相匹配。如果您选择 “是”,请确保您在 Amazon EC2 启动模板中设置的子网的 IP 范围包含私有 IP 地址。

有关更多信息,请参阅 Elastic Disaster Recovery 文档中的常规启动设置

AWS 管理员

配置 Amazon EC2 启动模板。

Elastic 灾难恢复使用 Amazon EC2 启动模板为每台源服务器启动演练和恢复实例。安装AWS复制代理后,系统会自动为您添加到 Elastic 灾难恢复的每台源服务器创建启动模板。

如果要将 Amazon EC2 启动模板与 Elastic 灾难恢复配合使用,则必须将其设置为默认启动模板。

有关更多信息,请参阅 Elastic 灾难恢复文档中的EC2启动模板

AWS 管理员
任务描述所需技能

启动演习

  1. Elastic Disaster Recovery 控制台,打开源服务器页面,验证源服务器的状态是否为就绪

  2. 选择要执行灾难恢复演练的所有源服务器。

  3. 从 “启动恢复作业” 菜单中,选择 “启动演练”,然后选择相应的 point-in-time快照。这将启动选定源服务器恢复作业。您可以在恢复作业历史记录选项卡上监控作业的状态。

    启动的演练实例还会显示在恢复实例页面。

    注意

    对源服务器的进一步更改将同步到复制服务器,而不是演练实例。

  4. 测试与验证灾难演练实例。

  5. 恢复实例页面上,选择演练实例,然后选择操作断开连接AWS。这将从恢复实例中删除AWS复制代理,并从 Elastic 灾难恢复中删除与恢复实例关联的所有资源。

  6. 选择删除恢复实例。这将从 Elastic Disaster Recovery 控制台中删除该实例的表示形式,并完全取消该实例与 Elastic Disaster Recovery 服务的关联。它不会删除底层EC2实例。

  7. 从 Amazon EC2 控制台终止灾难恢复演练实例。

有关更多信息,请参阅 Elastic Disaster Recovery 文档中的准备失效转移

AWS 管理员

验证演练。

在上一步中,您在灾难恢复区域启动了新目标实例。目标实例是源服务器副本,具体取决于您启动启动时拍摄的快照。

在此过程中,您将连接到 Amazon EC2 目标计算机以确认它们按预期运行。

  1. 打开 Amazon EC2 控制台

  2. 选择实例(正在运行)

  3. 选择目标实例并记下其私有IPv4地址。

  4. 确保您可以连接到该EC2实例,并确保按预期复制 JD Edwards EnterpriseOne 和相关组件。

启动失效转移。

失效转移是指将流量从主系统重定向至辅助系统。Elastic 灾难恢复通过启动恢复实例来帮助您执行故障转移AWS。启动恢复实例后,您可将流量从主系统重定向到这些实例。

  1. Elastic Disaster Recovery 控制台,打开源服务器页面,确认源服务器的准备恢复列显示为就绪数据复制状态列是否显示正常

  2. 选择源服务器。从启动恢复作业菜单,选择启动恢复

  3. 选择要从中启动恢复实例的 point-in-time快照,然后选择启动恢复

    这将启动恢复作业。您可在恢复实例页面上监控任务的状态。

  4. 测试与验证恢复实例。如果需要,请调整DNS配置并将您的 JD Edwards EnterpriseOne 应用程序连接到数据库。

  5. 现在,您可以断开源 JD Edwards EnterpriseOne 服务器的连接并停用该服务器,因为所有更改都已写入新的恢复实例。

  6. 按照《安装AWS复制代理》故事中所述的过程将恢复实例注册为灾难恢复区域中的源服务器。

有关更多信息,请参阅 Elastic Disaster Recovery 文档中的执行失效转移

AWS 管理员

启动失效自动恢复。

启动失效自动恢复的过程与启动失效转移的过程类似。

  1. 在主区域中打开 Elastic Disaster Recovery 控制台。导航到 “恢复实例” 页面,选择演练实例,然后选择 “操作”、“断开连接” AWS、“删除恢复实例”。

  2. 在灾难恢复区域中打开 Elastic Disaster Recovery 控制台。通过安装AWS复制代理,将您的新 JD Edwards EnterpriseOne 服务器注册为灾难恢复区域中的源服务器。数据将与在新暂存子网中配置的新复制服务器同步。

    注意

    将新的 JD Edwards EnterpriseOne 服务器注册为源服务器后,您可能会在 Elastic 灾难恢复控制台中看到两个源服务器:一台服务器是从主EC2实例创建的,另一台是从恢复实例创建的新服务器。我们建议您正确标记服务器以避免混淆,并且最好将新服务器添加至启动模板。

  3. 要从主区域重启灾难恢复复制,请取消灾难恢复区域中启动的恢复实例与 Elastic Disaster Recovery 控制台的关联,并将该主机注册为主区域中的源服务器。

有关更多信息,请参阅 Elastic Disaster Recovery 文档中的执行失效自动恢复

AWS 管理员

启动 JD Edwards EnterpriseOne 组件。

  1. 通过登录 EnterpriseOne 数据库服务器启动 JD Edwards 数据库。

  2. 数据库运行时,启动 JD Edwards EnterpriseOne 逻辑和批处理服务器。

  3. 在 Web 服务器 WebLogic 上启动,然后在JAS服务器上启动JAS实例。

  4. 从 WebLogic 配置服务器和 SM 控制台的服务器上启动。

  5. 在服务上启动 SM 代理。

  6. 确认登录 JD Edwards 的操作是否正 EnterpriseOne 常。

你需要在 Route 53 和 Application Load Balancer 中合并更改才能让 JD Edwards EnterpriseOne 链接起作用。

您可使用 Lambda、Step Functions 和 Systems Manager(运行命令)自动执行这些步骤。

注意

Elastic 灾难恢复对托管操作系统和文件系统的源EC2实例EBS卷执行块级复制。使用 Amazon 创建的共享文件系统EFS不属于此复制的一部分。如第一篇故事中所述,您可以使用将共享文件系统复制到灾难恢复区域,然后将这些复制的文件系统挂载到灾难恢复系统中。AWS DataSync

JD 爱德华兹 EnterpriseOne CNC

故障排除

事务解决方案

源服务器数据复制状态为已停止,复制延迟。如果您查看详细信息,则数据复制状态将显示未看到代理

检查以确认停顿的源服务器是否在运行。

注意

如果源服务器出现故障,则复制服务器将自动终止。

有关延迟问题的更多信息,请参阅 Elastic Disaster Recovery 文档中的复制延迟问题

在 RHEL 8.2 版本中,扫描磁盘后,在源EC2实例中安装AWS复制代理失败。 aws_replication_agent_installer.log显示缺少内核标头。

在 8、CentOS RHEL 8 或 Oracle Linux 8 上安装AWS复制代理之前,请运行:

sudo yum install elfutils-libelf-devel

有关更多信息,请参阅 Elastic Disaster Recovery 文档中的 Linux 安装要求

在 Elastic Disaster Recovery 控制台,您会看到源服务器为就绪,但存在延迟,数据复制状态为已停止

根据 AWS Replication Agent 不可用的时间长短,状态可能表示延迟很高,但问题仍然存在。

使用操作系统命令确认AWS复制代理是否在源EC2实例中运行,或者确认该实例正在运行。

更正所有问题后,Elastic Disaster Recovery 将重新开始扫描。等到所有数据都已同步并且复制状态为正常,再开始灾难恢复演练。

初始复制延迟较高。在 Elastic Disaster Recovery 控制台,您可以看到源服务器的初始同步状态非常慢。

查看 Elastic Disaster Recovery 文档的复制延迟问题部分中记录的复制延迟问题。

因内部计算操作,复制服务器可能无法处理负载。在这种情况下,请在咨询Technical Su pport团队后尝试升级实例类型。AWS

相关资源