在 IBM Db2 SAP 上设置灾难恢复 AWS - AWS Prescriptive Guidance

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

在 IBM Db2 SAP 上设置灾难恢复 AWS

由 Ambarish Satarkar (AWS) 和 Debasis Sahoo () 创作 AWS

环境:生产

技术:数据库;操作

工作量:SAP

AWS服务:AmazonEC2;AWSElastic 灾难恢复

Summary

此模式概述了为以 IBM Db2 作为数据库平台、在 Amazon Web Services () 云上运行SAP的工作负载设置灾难恢复 (DRAWS) 系统的步骤。目标是提供一种低成本解决方案,以在发生中断时提供业务连续性。

该图案使用指示灯方法。通过开启指示灯灾难恢复AWS,您可以减少停机时间并保持业务连续性。试点方法侧重于在中设置与生产环境同步的最小灾难恢复环境AWS,包括SAP系统和备用 Db2 数据库。

该解决方案具有可扩展性。您可以根据需要将其扩展至全面的灾难恢复环境。

先决条件和限制

先决条件

  • 在SAP亚马逊弹性计算云 (AmazonEC2) 实例上运行的实例

  • 一个 IBM Db2 数据库

  • SAP产品可用性矩阵支持的操作系统 (PAM)

  • 生产数据库主机和备用数据库主机的物理数据库主机名不同

  • AWS每个区域都有一个启用跨区域复制的亚马逊简单存储服务 (Amazon S3) Service 存储桶 () CRR

产品版本

  • IBMDb2 数据库版本 11.5.7 或更高版本

架构

目标技术堆栈

  • Amazon EC2

  • Amazon Simple Storage Service (Amazon S3)

  • 亚马逊 Virtual VPC Private Cloud(对等)

  • Amazon Route 53

  • IBMDb2 高可用性灾难恢复 () HADR

目标架构

该架构为以 Db2 作为数据库平台SAP的工作负载实现了灾难恢复解决方案。生产数据库部署在AWS区域 1 中,备用数据库部署在第二个区域。备用数据库称为灾难恢复系统。Db2 数据库支持多个备用数据库(最多三个)。它使用 Db2 HADR 来设置 DR 数据库并自动在生产数据库和备用数据库之间传送日志。

如果发生灾难导致区域 1 不可用,DR 区域中的备用数据库将接管生产数据库角色。SAP应用程序服务器可以提前构建,也可以使用 AWSElastic 灾难恢复或 Amazon 系统映像 (AMI) 来满足恢复时间目标 (RTO) 的要求。此模式使用AMI.

Db2 HADR 实现了生产-备用设置,其中生产服务器充当主服务器,所有用户都连接到它。所有事务都写入日志文件,然后使用 TCP /IP 将这些文件传输到备用服务器。备用服务器通过前滚传输的日志记录来更新其本地数据库,这有助于确保其与生产服务器保持同步。

VPC使用对等连接是为了使生产区域和灾难恢复区域中的实例可以相互通信。Amazon Route 53 将最终用户路由至互联网应用程序。

Db2 已开启跨AWS区域复制
  1. 在区域 1 中@@ 创建应用程序服务器,然后将其复制AMI到区域 2。AMI发生灾难时AMI,使用启动区域 2 中的服务器。

  2. 在生产数据库(区域 1 中)和备用数据库(区域 2 中)之间设置 Db2 HADR 复制。

  3. 发生灾难时,更改EC2实例类型以匹配生产实例。

  4. 在区域 1 中,将 LOGARCHMETH1 设置为 db2remote: S3 path

  5. 在区域 2 中,将 LOGARCHMETH1 设置为 db2remote: S3 path

  6. 跨区域复制在S3存储桶之间执行。

工具

AWS服务

最佳实践

  • 网络在决定HADR复制模式方面起着关键作用。对于跨AWS区域灾难恢复,我们建议您使用 Db2 HADR ASYNC 或SUPERASYNC模式。 

  • 有关 Db2 复制模式的更多信息HADR,请参阅IBM文档

  • 您可以使用AWS管理控制台或AWS命令行界面 (AWSCLI) 来创建现有SAP系统的新AMI系统。然后,您可以使用AMI来恢复现有SAP系统或创建克隆。

  • AWSSystems Manager Automation 可以帮助完成EC2实例和其他AWS资源的常见维护和部署任务。

  • AWS提供多种本机服务来监控和管理您的基础架构和应用程序AWS。诸如 Amazon CloudWatch 和之类的服务AWS CloudTrail 可以分别用于监控您的底层基础设施和API运营。有关更多详细信息,请参阅 AWS— HADR 带有 P SAP acema IBM ker 的 Db2

操作说明

任务描述所需技能

检查系统和日志。

  1. 确认 Db2 系统SAP上的生产已设置完毕。

  2. 确认日志备份已打开,并配置为将日志保存在 S3 存储桶中。这可通过 Db2 参数 LOGARCHMETH1 进行检查。

  3. 创建AMI其他应用程序服务器中的一个。

AWS管理员、Basi SAP s 管理员
任务描述所需技能

创建SAP和数据库服务器。

  1. 要为灾难恢复区域部署基础架构,请使用AWS CloudFormation 脚本或生产实例。AMI作为指示灯方法的一部分,您可以使用与生产EC2实例同一个系列中的较小实例。例如,如果您的生产实例类型为 r6i.12xlarge,则可以将 r6i.xlarge 实例类型用于灾难恢复构建。但是,请确保灾难恢复实例上分配相同的存储容量,以恢复生产数据库备份。

  2. 为其创建 Amazon Elastic File S /sapmnt/<SID>/ ystem (AmazonEFS) 挂载点,并确保将其设置为从主系统复制

  3. 从生产系统进行FULL数据库备份(联机或离线)。您将使用此备份构建灾难恢复数据库。

  4. 在灾难恢复系统中,使用SAP软件配置管理器 (SWPM) 系统复制方法以及将系统副本与高可用/灾难恢复结合的备份/恢复来构建灾难恢复系统。SAP

  5. 当被要求时SWPM,使用从生产环境中获取的备份在 DR 中恢复数据库。DR 数据库将处于前滚挂起状态。

恢复完整备份后,默认设置前滚挂起状态。前滚挂起状态指示数据库正在恢复,并且可能需要应用一些更改。有关更多信息,请参阅IBM文档

SAP基础管理员

检查配置。

  1. 要为设置日志存档HADR,生产数据库和灾难恢复数据库都必须能够自动从所有日志存档位置检索日志。验证灾难恢复数据库中的 LOGARCHMETH1 参数是否设置为与生产数据库中的参数相同的位置。如果因区域限制而无法访问同一位置,请确保灾难恢复系统可以自动从主系统获取日志。

  2. 要启用 TCP /IP 端口以启用数据库复制,请通过添加以下两个条目/etc/services在生产和灾难恢复主机中进行修改。在代码中,<SID>引用 Db2 数据库的系统 ID (SID)(例如PR1)。

    <SID>_HADR_1 55001/tcp # DB2 HADR Port1 <SID>_HADR_2 55002/tcp # DB2 HADR Port2

    确认两个端口都允许主端口和备用端口间的入站和出站流量。

  3. 检查 /etc/hosts 生产主机和灾难恢复主机,确认生产主机和备用主机的主机名都指向正确的 IP 地址。

AWS管理员、Basi SAP s 管理员

设置从生产数据库到灾难恢复数据库的复制(使用ASYNC模式)。

  1. 在生产数据库中,执行以下命令更新参数。

    db2 UPDATE DB CFG FOR <SID> USING HADR_LOCAL_HOST HOST1 db2 UPDATE DB CFG FOR <SID> USING HADR_LOCAL_SVC <SID>_HADR_1 db2 UPDATE DB CFG FOR <SID> USING HADR_REMOTE_HOST HOST2 db2 UPDATE DB CFG FOR <SID> USING HADR_REMOTE_SVC <SID>_HADR_2 db2 UPDATE DB CFG FOR <SID> USING HADR_REMOTE_INST db2<sid> db2 UPDATE DB CFG FOR <SID> USING HADR_TIMEOUT 120 db2 UPDATE DB CFG FOR <SID> USING HADR_SYNCMODE ASYNC db2 UPDATE DB CFG FOR <SID> USING HADR_SPOOL_LIMIT 1000 db2 UPDATE DB CFG FOR <SID> USING HADR_PEER_WINDOW 240 db2 UPDATE DB CFG FOR <SID> USING indexrec RESTART logindexbuild ON
  2. 在灾难恢复数据库,中执行以下命令更新参数。

    db2 UPDATE DB CFG FOR <SID> USING HADR_LOCAL_HOST HOST2 db2 UPDATE DB CFG FOR <SID> USING HADR_LOCAL_SVC <SID>_HADR_2 db2 UPDATE DB CFG FOR <SID> USING HADR_REMOTE_HOST HOST1 db2 UPDATE DB CFG FOR <SID> USING HADR_REMOTE_SVC <SID>_HADR_1 db2 UPDATE DB CFG FOR <SID> USING HADR_REMOTE_INST db2<sid> db2 UPDATE DB CFG FOR <SID> USING HADR_TIMEOUT 120 db2 UPDATE DB CFG FOR <SID> USING HADR_SYNCMODE ASYNC db2 UPDATE DB CFG FOR <SID> USING HADR_SPOOL_LIMIT 1000 db2 UPDATE DB CFG FOR <SID> USING HADR_PEER_WINDOW 240 db2 UPDATE DB CFG FOR <SID> USING indexrec RESTART logindexbuild ON

    这些参数是向两个数据库提供HADR相关信息所必需的。在 Db2 数据库中HADR,根据先前设置的每个参数的值进行激活。有关这些参数的更多信息,请参阅IBM文档

  3. 使用以下命令HADR首先在新创建的备用数据库上启动。

    db2 deactivate db <SID> db2 start hadr on db <SID> as standby
  4. 使用以下命令启动HADR生产数据库。

    db2 deactivate db <SID> db2 start hadr on db <SID> as primary
  5. 检查生产数据库和备用 Db2 数据库是否同步,以及日志传送是否正在进行中。

    要监视HADR复制状态,请使用以下db2pd命令。

    db2pd -d <SID> -hadr

    有关监控的更多信息HADR,请参阅IBM文档

SAP基础管理员
任务描述所需技能

规划灾难恢复测试生产业务停机时间。

确保在生产环境中计划所需业务停机时间,以测试灾难恢复失效转移场景。

SAP基础管理员

创建测试用户。

创建可在灾难恢复主机中进行验证的测试用户(或任何测试更改),以确认灾难恢复失效转移后的日志复制。

SAP基础管理员

在控制台上,停止生产EC2实例。

在此步骤中启动非正常关闭,以模拟灾难场景。

AWS系统管理员

扩展 DR EC2 实例以满足要求。

在EC2控制台上,更改灾难恢复区域中的实例类型。

  1. 停止实例:如果实例正在运行,您必须先停止,然后才能更改其实例类型。在EC2控制台上,选择实例,然后选择停止

  2. 修改实例类型:在EC2控制台上,选择实例,然后选择操作实例设置更改实例类型。选择与主实例匹配的实例类型,然后选择应用

  3. 启动实例:实例类型更改完成后,从EC2控制台启动实例,方法是选择实例并选择启动

  4. 要启动 Db2 数据库,请使用以下命令:

    db2start db2 start HADR on db <SID> as standby
SAP基础管理员

发起接管。

在灾难恢复系统 (host2) 中,启动接管进程并启动灾难恢复数据库作为主数据库。

db2 takeover hadr on database <SID> by force

或者,您可设置以下参数,根据实例类型自动调整数据库内存分配。该 INSTANCE_MEMORY 值可以根据分配给 Db2 数据库的专用内存部分来决定。

db2 update db cfg for <SID> using INSTANCE_MEMORY <FIXED VALUE> IMMEDIATE; db2 get db cfg for <SID> | grep -i DATABASE_MEMORY AUTOMATIC IMMEDIATE; db2 update db cfg for <SID> using self_tuning_mem ON IMMEDIATE;

请使用以下命令验证更改。

db2 get db cfg for <SID> | grep -i MEMORY db2 get db cfg for <SID> | grep -i self_tuning_mem
SAP基础管理员

启动灾难恢复区域SAP中的应用程序服务器。

使用您在生产系统中创建的,在灾难恢复区域中启动一台新的附加应用程序服务器。AMI

SAP基础管理员

在启动SAP应用程序之前执行验证。

  1. 验证 /etc/hosts/etc/fstab 条目。

  2. 在灾难恢复系统上安装 /sapmnt/<SID>/

  3. 验证灾难恢复文件系统 /sapmnt/<SID>/ 是否与生产 /sapmnt/<SID>/ 文件系统同步。

  4. 登录 <sid>adm 用户,运行 R3trans -d 并验证 trans.log 文件中的输出。trans.log 文件是在运行 R3trans -d 命令的同一位置生成的。

AWS管理员、Basi SAP s 管理员

在 DR 系统上启动SAP应用程序。

使用<sid>adm用户在灾难恢复系统上启动SAP应用程序。使用以下代码,它XX代表您的SAPABAPSAP中央服务 (ASCS) 服务器的实例号,YY代表您的SAP应用程序服务器的实例号。

sapconrol -nr XX -function StartService <SID> sapconrol -nr XX -function StartSystem sapconrol -nr YY -function StartService <SID> sapconrol -nr YY -function StartSystem
SAP基础管理员

执行SAP验证。

这是作为灾难恢复测试执行的,以提供证据或检查灾难恢复区域的数据复制是否成功。

测试工程师
任务描述所需技能

启动生产服务器SAP和数据库服务器。

在控制台上,启动生产系统中托管SAP和数据库的EC2实例。

SAP基础管理员

启动生产数据库并进行设置HADR。

登录至生产系统 (host1),使用以下命令验证数据库是否处于恢复模式。

db2start db2 start HADR on db P3V as standby db2 connect to <SID>

验证HADR状态是否为connected。复制状态应为 peer

db2pd -d <SID> -hadr

如果数据库并非不一致且未处于 connectedpeer 状态,则可能需要进行备份和恢复,以使数据库 (开启 host1) 与当前活动的数据库 (在灾难恢复区域 host2 中) 同步。在这种情况下,请将数据库备份从 host2 灾难恢复区域的数据库还原到 host1 生产区域的数据库。

SAP基础管理员

将数据库故障恢复至生产区域。

在正常 business-as-usual 情况下,此步骤是在计划停机时间内执行的。在灾难恢复系统上运行的应用程序将停止,数据库将故障恢复到生产区域 (区域 1),以便从生产区域恢复操作。

  1. 登录灾难恢复区域中的SAP应用程序服务器,然后停止SAP应用程序。

  2. /sapmnt/<SID> 从灾难恢复系统中卸载,确保将更改反向复制到 /sapmnt/<SID> 生产系统。

  3. 登录生产区域中的数据库服务器 (host1),然后执行接管。

    db2 takeover hadr on database <SID>
  4. 检查HADR状态:HADR_ROLE应处于PRIMARYhost1StandBy状态host2

    db2pd -d <SID> -hadr
SAP基础管理员

在启动SAP应用程序之前执行验证。

  1. 验证 /etc/hosts/etc/fstab 条目。

  2. 在生产系统上安装 /sapmnt/<SID>/

  3. 确保它与灾难恢复系统 /sapmnt/<SID>/ 同步。

  4. 登录 <sid>adm 用户,运行 R3trans -d 并验证 trans.log 文件中的输出。trans.log 文件是在运行 R3trans -d 命令的同一位置生成的。

AWS管理员、Basi SAP s 管理员

启动SAP应用程序。

  1. 使用 <sid>adm user 在生产系统上启动SAP应用程序。使用以下代码,其中XX表示SAPASCS服务器的实例号和YYSAP应用程序服务器的实例号。

    sapconrol -nr XX -function StartService <SID> sapconrol -nr XX -function StartSystem sapconrol -nr YY -function StartService <SID> sapconrol -nr YY -function StartSystem
  2.  要确认应用程序服务器是否可用,请登录SAP并使用SICK和SM51事务执行检查。

SAP基础管理员

故障排除

问题解决方案

用于解决HADR相关问题的关键日志文件和命令

  • db2 get db cfg | grep -i hadr

  • db2pd -d sid -hadr

  • Db2diag.log(此文件通常位于 db2dump 目录内,db2dump 路径由参数 DIAGPATH 定义。)

SAPDb2 HADR 问题疑难解答说明 UDB

请参阅SAP注意 1154013-DB6:环境中的数据库问题。HADR(您需要SAP门户凭据才能访问此笔记。)

相关资源

其他信息

使用这种模式,您可以为在 Db2 数据库上运行的SAP系统设置灾难恢复系统。在灾难情况下,业务应该能够在您定义的恢复时间目标 (RTO) 和恢复点目标 (RPO) 要求内继续进行:

  • RTO是服务中断和恢复服务之间可接受的最大延迟。这决定了当服务不可用时,什么时间段被视为可接受的时间窗口。

  • RPO是自上次数据恢复点以来的最大可接受时间。这决定了从上一个恢复点到服务中断之间可接受的数据丢失情况。

有关FAQs相关内容HADR,请参阅 Db2 高可用性灾难恢复 (HADR) FAQ 上的SAP注释 #1612105-DB6:。(您需要SAP门户凭据才能访问此笔记。)