SAP HANA 的自动补丁 - SAP HANA 开启 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

SAP HANA 的自动补丁

维护 SAP HANA 数据库软件版本可使数据库保持支持的软件版本运行,并使您能够随时了解安全修复和软件改进的最新情况。

本节提供有关使用自动更新 SAP HANA 数据库软件版本的信息Amazon Systems Manager。你必须充分了解 SAP HANA 补丁流程、路径和先决条件。除了 SAP HANA 之外,你还必须使用 SAP 支持的版本保持 SAP 系统的所有其他组件更新。

SAP 参考文献

建议您熟悉以下 SAP 文档,以了解 SAP HANA 补丁流程、路径和先决条件。

您必须拥有 SAP 门户访问权限才能查看 SAP 笔记。

架构

根据您的治理策略,您可以集中管理AmazonSSM 自动化文档存入共享服务帐户或自动化帐户。有关更多信息,请参见基础架构 OU-共享服务帐户

本文档中使用了共享服务帐户。这个AmazonSSM 自动化文档存储在此帐户中。它与孩子有关Amazon Web Services 账户它托管运行 SAP HANA 工作负载的亚马逊 EC2 实例。共享服务账户还托管包含 SAP HANA 媒体软件和存储在中的特定参数的 Amazon S3 存储桶Amazon Secrets Manager。这些参数是自动化文档运行所必需的。

自动化帐户可以是运行 SAP 工作负载的生产帐户,也可以是仅运行 SSM 自动化文档的专用帐户。用于自动化的 Shared Services 帐户通过在同一帐户中维护自动化文档及其依赖关系来减少管理开销。

先决条件

SSM 自动化文档

您可以在上找到 SSM 自动化文档的代码Amazon样本 GitHub存储库。有关更多信息,请参见sap-hana-patch-sample.yml。下图说明了 SSM 自动化文档运行的步骤。

Amazon 服务

示例代码与以下内容交互Amazon运行 SSM 自动化文档的服务。

服务

Amazon S3

您可以通过以下三个选项来存储 SAP HANA 软件媒体。

  • 连接到您的亚马逊 EC2 实例的亚马逊 EBS 卷

  • NFS 挂载点 — 亚马逊 EFS 或亚马逊 FSx 用于NetAppONTAP

  • Amazon S3 存储桶

Amazon S3 存储桶可用于存储所有包含不同版本的 SAP HANA 软件媒体。可以从此处选择 SSM 自动化文档中使用的目标软件版本。

将 SAP 媒体存储在压缩的媒体中.SAR文件。当你选择从 Amazon S3 下载 SAP HANA 媒体时,SSM 自动化文档会从该文件中提取信息。

存储分区可以位于 Shared Services 账户中,可以与所有人共享Amazon运行 SAP HANA 工作负载的账户。下表提供了 Amazon S3 中 SAP HANA 软件媒体的示例结构。

软件 Version 修订 补丁 亚马逊 S3 路径
SAP HANA 数据库软件 2 SP04 48 S3:///linuxx86/hanadb/2.0/sp <Your SAP software bucket>04/48
SAP HANA 数据库软件 2 SP05 59 S3:///linuxx86/hanadb/2.0/sp <Your SAP software bucket>05/59
SAP HANA 数据库软件 2 SP05 59.5 S3:///linuxx86/hanadb/2.0/sp05/ <Your SAP software bucket>59P5
SAP HANA 数据库软件 2 SP06 60 S3:///linuxx86/hanadb/2.0/sp <Your SAP software bucket>06/60
SAP HANA 数据库软件 2 SP06 64 S3:///linuxx86/hanadb/2.0/sp <Your SAP software bucket>06/64

Amazon S3 存储桶策略

包含 SAP HANA 软件媒体的 Amazon S3 存储桶必须可供您在所有环境中运行 SAP HANA 工作负载的所有 Amazon EC2 实例访问Amazon Web Services 账户。使用 Amazon S3 存储桶策略仅向特定的授权实体授予对 Amazon S3 存储桶及其内容的有限访问权限。有关更多信息,请参阅以下文档。

以下策略是 Amazon S3 存储桶策略示例,该策略向特定账户上的特定角色授予从 Amazon S3 存储桶下载所有文件的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account_id}:role/service-role/{ec2_role}" }, "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::{bucket_name}/*", "arn:aws:s3:::{bucket_name}" ] } ] }

专用 Linux 文件系统

如果 SAP HANA 数据库软件存储在 Amazon S3 存储桶中,则会将其下载到亚马逊 EC2 上的本地 Linux 目录中。建议将 SAP HANA 软件媒体文件从 Amazon S3 存储桶下载到本地 Linux 目录时,至少有 30 GB 的可用空间。必须在 SSM 自动化文档的输入参数中指定目录路径,如下图所示。

这些文件必须存在于 Amazon EC2 实例的指定目录中。必须根据以下结构解压缩文件并存储在以下结构中AmazonSSM 自动化文档代码。

/{{HanaUpgradeBaseDir}}/x-sap-lnx-patch-hanadb/{{HANADBVersion}}/SAP_HANA_DATABASE/

SSM 自动化文档完成更新 SAP HANA 数据库后,下载的文件将从本地目录中删除。

Amazon EC2

您的运行 SAP HANA 工作负载的 Amazon EC2 实例需要两个标签才能支持 SSM 自动化文档代码。有关更多信息,请参见标记您的亚马逊 EC2 资源

这个DBSid:{SID}HanaPatchGroup:{Usage}标签可通过以下方式访问Amazon Secrets Manager。这两个标签都描绘在弧线中架构

这个HanaPatchGroup标签用于筛选从中检索到的不同亚马逊资源名称 (ARN)Amazon Secrets Manager适用于 SAP HANA 数据库用户。以下是示例HanaPatchGroup标签值。

DBSid = HDB HanaPatchGroup = DEV HanaPatchGroup = QAS HanaPatchGroup = PRD HanaPatchGroup = SBX

您可以根据要执行 SAP HANA 更新过程的数据库用户的用户和密码管理策略自定义标签。

Amazon Identity and Access Management

Amazon Systems Manager必须能够管理运行 SAP HANA 工作负载的亚马逊 EC2 实例。有关更多信息,请参阅为 Systems Manager 创建 IAM 实例配置文件

如果您的 SAP HANA 数据库实例是通过以下方式配置的Amazon Launch Wizard对于 SAP,此权限包含在部署中。有关更多信息,请参见Amazon Launch Wizard适用于 SAP

Amazon Secrets Manager

Amazon Secrets Manager用于存储运行 SSM 自动化文档所需的 SAP HANA 数据库参数。Amazon Secrets Manager允许在多个账户之间共享机密。有了这种灵活性,你可以在一个位置和代码之外管理参数。

在不同的账户之间共享机密需要额外的权限。有关更多信息,请参见我该如何分享Amazon Secrets Manager之间的秘密Amazon账户?

下表显示了在 Shared Services 帐户中创建的用于运行示例代码的示例密钥。

秘密名字 秘密钥匙 秘密价值
zsap/hana/upgrade/user User <HANA Upgrade User ID>
zsap/hana/upgrade/password/dev Password <HANA DEV Upgrade User Password>
zsap/hana/upgrade/password/QAS Password <HANA QAS Upgrade User Password>
zsap/hana/upgrade/psword/PRD Password <HANA PRD Upgrade User Password>
zsap/hana/upgrade/password/SBX Password <HANA SBX Upgrade User Password>
zsap/hana/升级/bucket Amazon S3 存储桶 <Amazon S3 bucket for SAP HANA software>
zsap/sap/bucket/version_repo Amazon S3 存储桶 <Amazon S3 bucket for SAP HANA version repository>
注意

示例代码引用了机密的 Amazon 资源名称。这是必需的,因为机密存储在不同的帐户中。这个Amazon Web Services 账户其中包含运行 SAP HANA 工作负载的 Amazon EC2 实例则有所不同。

的政策Amazon Secrets Manager

创造的秘密Amazon Secrets Manager必须设置为可供目标访问Amazon Web Services 账户。有关更多信息,请参见基于资源的策略

以下是分配给密钥的示例策略,授予来自其他密钥的访问权限Amazon Web Services 账户。

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::{sap_workloads_account_id}:role/service-role/{ec2_role}" }, "Action" : "secretsmanager:GetSecretValue", "Resource" : "arn:aws:secretsmanager:{region}:{automation_account_id}: {secret_ARN}" } ] }
注意
SAP HANA 数据库用户 ID

SAP HANA 数据库中的有效用户SYSTEMDB需要获得所需的授权才能进行 SAP HANA 更新。

在示例代码中,用户和密码存储在Amazon Secrets Manager作为秘密。遵循授予最小权限的原则,使用具有所需授权的用户。欲了解更多详情,请参阅创建权限较低的数据库用户进行更新

Amazon Key Management Service

示例代码使用Amazon Secrets Manager在不同的地方分享秘密Amazon Web Services 账户。如Amazon Secrets Manager加密参数的内容,KMS 密钥用于加密和解密操作。您的所有人都必须可以访问 KMS 密钥Amazon Web Services 账户。有关更多信息,请参阅创建密钥

准备运行 SSM 自动化文档

在运行 SSM 自动化文档之前,必须确保存在 SAP HANA 数据库的有效备份,并且连接到 SAP HANA 数据库的应用程序已正确停止。欲了解更多详情,请参阅行政

对于由操作系统或第三方群集软件管理的 SAP HANA 数据库,在启动自动补丁之前,必须将群集置于维护模式。SSM 自动化文档必须先在辅助节点上运行。

有关 SAP HANA 集群环境的更多详细信息,请参阅SAP HANA 开启Amazon:SLES 和 RHEL 的高可用性配置指南。有关在启用 SAP HANA 系统复制的情况下更新 SAP HANA 数据库的更多详细信息,请参阅更新在系统复制设置中运行的 SAP HANA 系统

并发使您能够定义应并行更新多少个 SAP HANA 数据库。有关更多信息,请参见大规模控制自动化

问题排查

按照以下步骤查看每个 SSM 自动化的状态。

  1. 打开 console.aws.amazon.com。

  2. 转到 Amazon Systems Manager。

  3. 在左侧导航窗格中,选择自动化

  4. 选择配置首选项>处决

  5. 您可以在中查看 SSM 自动化的状态自动化执行部分。

Amazon Web Services Management Console使您能够深入研究每项执行、查看已执行的步骤以及每个步骤的结果。你可以理解发生的故障以前SSM 自动化。用于故障排除之后SSM 自动化已启动,请查看日志。您可以通过以下路径在 Amazon EC2 上找到 SSM 日志。

/var/lib/amazon/ssm/{instance-id}/document/orchestration/{automation_step_execution_id}/awsrunShellScript/0.awsrunShellScript

您可以将每个 SSM 自动化的输出发送给亚马逊CloudWatch日志。有关更多信息,请参见配置亚马逊CloudWatch运行命令的日志

SAP HANA 版本报告

你可以使用Amazon QuickSight创建无服务器的 BI 仪表板,用作 SAP HANA 软件版本的存储库。和Amazon QuickSight,你可以在所有版本中查看所有 SAP HANA 数据库版本Amazon Web Services 账户。有关更多信息,请参见通过以下方式维护 SAP 环境清单Amazon Systems Manager和Amazon Athena

这个HDB_Report_Version示例代码中的步骤收集 SAP HANA 版本信息,并将该数据上传到 Amazon S3 存储桶。(在示例代码中,Amazon S3 存储桶有一个/HANA包含 SAP HANA 版本信息的文件夹。) 您可以使用此存储桶中的数据作为源数据集进行馈送Amazon QuickSight仪表板。有关更多信息,请参见使用 Amazon S3 文件创建数据集。您可以通过安排自动刷新来确保数据的准确性。有关更多信息,请参见刷新 SPICE 数据

您必须为 Amazon S3 存储桶设置 IAM 权限。以下是用于存储 SAP HANA 版本信息的示例 Amazon S3 存储桶策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account_id}:role/service-role/{ec2_role}" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::{bucket_name}/*", "arn:aws:s3:::{bucket_name}" ] } ] }