SAP HANA 灾难恢复计划指南

本指南简要介绍了部署在 Google Cloud 上的 SAP HANA 系统的灾难恢复选项。

本指南并非用于取代标准 SAP 文档。

为灾难恢复做准备

若要为灾难做好准备,您可以将 SAP HANA 系统复制到辅助 SAP HANA 系统,并且/或者备份 SAP HANA 以便恢复系统。

对于需要快速恢复的关键任务工作负载,请使用 HANA 系统复制来最大限度地减少停机时间。使用备份恢复系统的费用较低但时间较长,因为您必须创建新系统,然后将备份恢复到其中,才能使新系统恢复到所需的时间点。

在这两种情况下,一旦替换系统可用,您就必须使用基于网络的重定向将使用 SAP HANA 系统的客户端应用重定向到替换系统的 IP 地址。如需了解详情,请参阅 SAP HANA 管理指南

从 SAP HANA SPS09 开始,您可以使用 SAP HANA 附带的基于 Python 的 API 来创建您自己的高可用性/灾难恢复 (HA/DR) 提供程序,并将其与 SAP HANA 系统复制接管过程集成以自动执行一些任务,例如在执行接管操作后将数据库客户端连接从主系统重定向到辅助系统。如需了解详情,请参阅实现高可用性/灾难恢复提供程序

请注意,SAP 定义的任何限制(包括同步复制的距离限制)在 Google Cloud 上也同样适用。

作为原生灾难恢复选项的替代方案,您可以使用永久性磁盘异步复制(PD 异步复制)功能实现跨区域主动-被动灾难恢复 (DR)。PD 异步复制功能可在两个 Google Cloud 区域之间异步复制数据。

使用 SAP HANA 系统复制进行灾难恢复

为了最大限度地提高基础架构资源利用率并降低灾难恢复解决方案的费用,您可以将辅助系统用于非生产使用场景,例如用于开发或质量检查系统。在这种情况下,辅助系统不会预加载数据,因此故障切换时间会比辅助系统预加载数据并与主系统保持同步情况下的故障切换时间更长。

HANA 2 SPS00 支持主动/主动(启用读取)配置模式,该模式使 SAP HANA 系统复制能够支持辅助系统上的读取访问。如需了解详情,请参阅主动/主动(启用读取)

将 SAP HANA 系统复制与 Google Cloud 搭配使用时,同步复制和异步复制均受支持。

如果可能的话,我们建议您使用同步复制,在该复制模式下,SQL 事务直到在备用数据库实例上提交才会在主数据库实例上提交。这样可以使备用实例 100% 保持同步,并确保实现零恢复点目标。同步复制可用于位于同一地区内任何区域的实例。

SystemReplication-preload1

如果备用系统与主系统位于不同的地区,请使用异步复制,在该复制模式下,系统在主实例上提交数据之前无需等待备用实例确认数据。在此场景中,如果发生灾难,您可能会丢失少量数据。不过,异步复制可为您提供大于零的恢复点目标。

SystemReplication-preload2

对于所有复制场景,您都必须在备用系统上手动执行接管操作,以启动灾难恢复。您还需要将使用 SAP HANA 数据库的任何应用手动重定向到备用系统中接管了故障实例的实例。

请选择最适合您的业务需求(例如恢复时间目标 (RTO) 和恢复点目标 (RPO))的 HANA 系统复制方案。如需了解详情,请参阅适用于 SAP HANA 系统复制的复制模式

具备预加载功能的 SAP HANA 系统复制

在此场景中,您的 SAP HANA 系统会被复制到专用备用系统。SAP HANA 数据库会被复制到 Compute Engine 虚拟机,该虚拟机具有唯一的主机名并且挂接了自己的 Persistent Disk。所有 SAP HANA 数据都会加载到备用系统的内存中。如果必须进行故障切换,则故障切换时间只需 90 秒左右,因为所有数据都已预加载。

如需详细了解具备预加载功能的 SAP HANA 系统复制,请参阅 SAP HANA - 高可用性中的系统复制部分。

不带预加载功能的 SAP HANA 系统复制

在此场景中,您的 SAP HANA 系统会被复制到专用备用系统。SAP HANA 数据库会被复制到 Compute Engine 虚拟机,该虚拟机具有唯一的主机名并且挂接了自己的 Persistent Disk。SAP HANA 数据不会加载到备用系统的内存中。如果必须进行故障切换,则故障切换时间可能为数分钟到数小时,具体取决于数据集的大小。

如果不预加载数据,则托管 SAP HANA 数据库的 Compute Engine 虚拟机的内存要求要小得多。 如需了解最新的大小调整指导,请参阅“SAP 说明 1999880 - 常见问题解答:SAP HANA 系统复制”中的“哪些规则适用于辅助系统复制网站的内存利用率?”。

您可以通过运行以下查询来获取行存储内存量的相关信息:

SELECT round (sum(USED_FIXED_PART_SIZE + USED_VARIABLE_PART_SIZE)/1024/1024) AS "Row Tables MB" FROM M_RS_TABLES;

在选择 Compute Engine 机器类型时,降低的内存要求可为您提供节省费用的选项。

  • 您可以使用具有低内存规格的机器类型在备用系统中托管 SAP HANA 数据库,以降低运行费用。生产系统中的 SAP HANA 不支持低内存虚拟机,但您可以使用此费用较低的虚拟机在灾难恢复场景中执行接管操作,然后可以修改虚拟机以将机器类型更改为具有受支持的内存量的机器类型。如需执行此操作,您必须停止虚拟机以执行升级操作,因此在 SAP HANA 系统可用之前还会有额外的停机时间。

  • 您可以使用高内存机器类型在备用系统中托管 SAP HANA 数据库,并且可以与开发或测试系统共享该机器类型,以提高投资回报率。您可以按照更改全局内存分配限额中的说明,将 SAP HANA 数据库的全局分配限额设置为 64 GB,将其余内存留给其他系统使用。需要备用系统时,请关闭开发和测试操作,执行接管操作,然后移除全局分配限额。

您可以使用不带预加载功能的同步和异步复制。但是,同步复制要求源实例和目标实例位于同一 Google Cloud 地区中。

您可以使用高可用性/灾难恢复提供程序来解决问题,例如关停辅助主机中的开发和/或测试系统。

触发接管操作

如需进行灾难恢复,请在备用系统中触发 SAP HANA 系统复制接管过程。SAP 说明 2063657 提供了一些准则,可帮助您确定接管操作是否是最佳选择。

如需触发接管操作,请遵循标准 SAP HANA 接管过程。如需详细了解此过程,请参阅如何为 SAP HANA 2.0 执行系统复制

如果出现数据问题或软件故障,则系统可能不会自动发送让您可以执行接管操作的通知。请考虑创建自定义解决方案,以使用 Cloud Monitoring 或 HANA 监控工具发送提醒。

使用 SAP HANA 备份进行灾难恢复

如果可以接受较长的恢复时间目标并且恢复点目标超过 15 分钟,则您可以通过从备份恢复来进行灾难恢复。为确保在使用备份时能够成功恢复,请经常将备份文件(尤其是日志备份)复制到 Cloud Storage 存储桶或 SAP HANA 系统运行地区之外的其他某个长期存储位置。我们建议您记录主系统的基础架构并创建脚本,用于快速创建将备份恢复到的替换系统。

如需了解详情,请参阅 SAP HANA 操作指南

使用 PD 异步复制功能实现灾难恢复

对于在 Google Cloud 上运行的 SAP 工作负载,PD 异步复制功能可在两个 Google Cloud 区域之间复制数据,从而实现灾难恢复。PD 异步复制功能可提供低恢复点目标 (RPO) 和低恢复时间目标 (RTO) 块存储异步复制,以实现跨区域主动-被动灾难恢复。万一发生罕见的区域性服务中断故障,PD 异步复制功能使您能够将 SAP 数据故障切换到次要区域,并在该区域重启 SAP 工作负载。

您可以使用 PD 异步复制功能来在基础架构级层(而非 SAP 工作负载级层)管理基于 Compute Engine 的 SAP 工作负载的复制,例如管理 SAP HANA 系统复制。

PD 异步复制功能会将 SAP 数据从挂接到正在运行的工作负载的主磁盘复制到位于另一个区域的空白辅助磁盘。如需了解详情,请参阅永久性磁盘异步复制功能简介

PD 异步复制功能相关限制

对于永久性磁盘异步复制,您只能在受支持的区域对中使用平衡永久性磁盘 (pd-balanced) 和性能 (SSD) 永久性磁盘 (pd-ssd)。如需了解详情,请参阅限制

按照查看永久性磁盘异步复制性能中的说明,通过查看设备对的监控指标,针对 PD 异步复制功能监控和评估工作负载的变化率。

指标 async_replication/sent_bytes_count 预计不会显示持续增加的数据传输量,因为该指标表示的是通过跨区域网络发送的字节数增量。