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

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

管理

本部分提供有关操作 SAP HANA 系统所需的常见管理任务的指导,包括有关启动、停止和克隆系统的信息。

启动和停止运行 SAP HANA 主机的 EC2 实例

您可以随时停止一个或多个 SAP HANA 主机。在停止 SAP HANA 主机的 EC2 实例之前,首先在该实例上停止 SAP HANA。

恢复实例时,它将自动使用与以前相同的 IP 地址、网络和存储配置启动。您还可以选择使用 EC2 计划程序安排 EC2 实例的启动和停止。EC2 计划程序依赖于操作系统的本机关机和启动机制。这些本机机制将调用 SAP HANA 实例的有序关闭和启动。以下是 EC2 计划程序工作原理的架构图:


        EC2 计划程序

图 1:EC2 计划程序

将 SAP 资源标记为 Amazon

在上面标记 SAP 资源Amazon可以显著简化这些资源的识别、安全性、可管理性和计费。您可以使用Amazon管理控制台或 Amazon Command Line Interface (Amazon CLI) 的create-tags功能来标记您的资源。此表列出了一些示例标记名称和标记值:

标记名称 标签值
名称 SAP 服务器的虚拟(主机)名称
环境 SAP 服务器的环境角色;例如:SBX、DEV、QAT、STG、PRD。
应用程序 SAP 解决方案或产品;例如:ECC、CRM、BW、PI、SCM、SRM、EP
所有者 SAP 联系点
服务等级 已知的正常运行时间和停机时间计划表

标记资源后,您可以根据标记值应用特定的安全限制,例如访问控制。以下是 Sec Amazonurity 博客中此类策略的示例:

{ "Version" : "2012-10-17", "Statement" : [ { "Sid" : "LaunchEC2Instances", "Effect" : "Allow", "Action" : [ "ec2:Describe*", "ec2:RunInstances" ], "Resource" : [ "*" ] }, { "Sid" : "AllowActionsIfYouAreTheOwner", "Effect" : "Allow", "Action" : [ "ec2:StopInstances", "ec2:StartInstances", "ec2:RebootInstances", "ec2:TerminateInstances" ], "Condition" : { "StringEquals" : { "ec2:ResourceTag/PrincipalId" : "${aws:userid}" } }, "Resource" : [ "*" ] } ] }

Amazon身份和访问管理 (IAM) 策略仅允许基于标签值的特定权限。在这种情况下,当前用户 ID 必须匹配标记值,以便向用户授予权限。有关标记的更多信息,请参阅Amazon文档Amazon博客

监控

您可以使用各种 Amazon SAP 和第三方解决方案来监控 SAP 工作负载。以下是一些核心Amazon监控服务:

  • Amazon CloudWatch — CloudWatch 是一项Amazon资源监控服务。这对于用于收集资源利用率日志和创建警报以自动响应资源变化的 SAP 工作负载至关重要。Amazon

  • Amazon CloudTrail— CloudTrail 跟踪在您的Amazon账户中进行的所有 API 调用。它捕获有关 API 调用的关键指标,对于自动创建 SAP 资源的跟踪非常有用。

要获得Amazon和 SAP 支持,必须为 SAP 资源配置 CloudWatch 详细监控。您可以与 SAP 解决方案管理器配合使用本机Amazon监控服务。您可以在 Marketpl Amazonace 中找到第三方监控工具。

自动化

Amazon提供了多种选项,可通过编程方式编写资源脚本,以便以可预测和可重复的方式对其进行操作或扩展。您可以使用Amazon CloudFormation 在上自动化和操作 SAP 系统Amazon。以下是一些在上Amazon自动化 SAP 环境的示例:

领域 活动 Amazon 服务
基础设施部署

预配新的 SAP 环境

SAP 系统克隆

Amazon CloudFormation

Amazon CLI

容量管理

自动执行 SAP 应用程序服务器的纵向扩展/横向扩展

Amazon Lambda

Amazon CloudFormation

操作

SAP 备份自动化(请参阅备份示例

执行监控和可视化

亚马逊 CloudWatch Amazon Systems Manager

修补

您可以通过两种方式修补 SAP HANA 数据库,并提供最大限度地降低成本和/或减少停机时间的选项。借助Amazon,您可以根据需要配置更多服务器,以经济实惠的方式最大限度地减少修补停机时间。您还可以通过创建现有生产 SAP HANA 数据库的按需副本,最大限度地降低风险,进行逼真的生产就绪性测试。

下表汇总了两种修补方法的利弊:

修补方法

优点

权衡取舍

可用技术

修补现有服务器

额外的按需实例不收取任何费用

所涉及的相对复杂程度和设置任务最低

需要修补现有的操作系统和数据库

现有服务器和数据库停机时间最长

本机操作系统修补工具 Patch Manager

本机 SAP HANA 修补工具

预置和修补新服务器

利用最新的 AMI(只需要数据库补丁)

现有服务器和数据库的停机时间最短

可以选择单独或一起修补和测试操作系统和数据库

额外按需实例的成本更高

涉及更多的复杂性和设置任务

亚马逊机器映像 (AMI)

Amazon CLI

Amazon CloudFormation

SAP HANA 系统复制 SAP HANA 系统克隆 SAP HANA 备份

SAP Note:

1984882 - 使用 HANA 系统复制进行硬件交换,停机时间最短/为零

1913302 - HANA:暂停数据库连接以执行短期维护任务

第一种方法(修补现有服务器)涉及修补 SAP HANA 服务器的操作系统 (OS) 和数据库 (DB) 组件。此方法的目标是最大限度地减少任何额外的服务器成本,并避免产生设置额外系统或测试所需的任何任务。如果您具有明确定义的修补过程,并且对您当前的停机时间和成本感到满意,则此方法可能是最合适的。使用此方法,您必须为 Linux 发行版使用正确的操作系统 (OS) 更新过程和工具。请参阅此 SUSE 博客Red Hat 常见问题解答,或查看每个供应商的文档以了解其特定流程和程序。

除了我们的 Linux 合作伙伴提供的修补工具外,还Amazon提供名为 Patch Manager 的免费修补服务。Patch Manager 是一种自动化工具,可以帮助您简化操作系统的修补流程。您可以扫描 EC2 实例,查找缺失的补丁并自动安装,选择部署补丁的时间、控制实例的重启以及执行许多其他任务。您还可以为补丁定义自动批准规则,从而获得以下额外功能:将特定补丁加入黑名单或白名单、控制补丁在目标实例上的部署方式(例如,应用补丁前停止服务)以及安排在维护期间进行自动部署。

第二种方法(预置和修补新服务器)涉及配置一个新的 EC2 实例,该实例将接收源系统和数据库的副本。该方法的目标是最大限度地减少停机时间,最大限度地降低风险(通过拥有生产数据和执行类似生产的测试),并具有可重复的流程。如果您正在寻找更高程度的自动化来实现这些目标,并且对权衡感到满意,则此方法可能是最合适的。这种方法更加复杂,并且有更多的选项来满足您的要求。某些选项不是排他性的,可以一起使用。例如,您的 Amazon CloudFormation 模板可以包括最新的 Amazon 系统映像 (AMI),然后可以使用这些映像自动执行新 SAP HANA 服务器的预置、设置和配置。

有关更多信息,请参阅自动修补

备份和恢复

本节概述了 SAP HANA 系统的备份和恢复中使用的Amazon服务,并提供了备份和恢复场景示例。本指南不包括有关如何使用本机 HANA 备份和恢复功能或第三方备份工具执行数据库备份的详细说明。请参阅标准操作系统、SAP 和 SAP HANA 文档或备份软件供应商提供的文档。此外,备份计划、频率和保留期可能因系统类型和业务要求而异。有关这些主题的指导,请参阅以下标准 SAP 文档。

注意

有关上 SAP 系统的一般和高级备份和恢复概念的讨论,请参阅《SAP on Amazon AmazonBackup and Recovery 指南》

SAP 注释

说明

1642148 常见问题:SAP HANA 数据库备份和恢复
1821207 确定所需的恢复文件
1869119 使用 hdbbackupcheck 检查备份
1873247 使用 hdbbackupdiag --check 检查可恢复性
1651055 在 Linux 中安排 SAP HANA 数据库备份
2484177 为多租户 SAP HANA Cockpit 2.0 安排备份

创建 SAP HANA 系统的映像

您可以使用Amazon Web Services Management Console或命令行基于现有实例创建自己的 AMI。有关更多信息,请参阅 Amazon 文档。您可以将 SAP HANA 实例的 AMI 用于以下目的:

  • 要创建完整的离线系统备份(操作系统 /usr/sap、HANA 共享、备份、数据和日志文件),AMI 会自动保存在同一区域内的多个可用区中。Amazon

  • 要将 HANA 系统从一个Amazon区域移动到另一个区域-您可以按照Amazon文档中的说明创建现有 EC2 实例的映像并将其移动到另一个Amazon区域。将 AMI 复制到目标Amazon区域后,您可以在那里启动新实例。

  • 克隆 SAP HANA 系统 — 您可以创建现有 SAP HANA 系统的 AMI 来创建该系统的精确克隆。有关更多信息,请参阅下一节。

注意

请参阅本白皮书后面的还原 SAP HANA 备份和快照,查看适合生产环境的建议还原步骤。

提示

在创建 AMI 之前,SAP HANA 系统应处于一致状态。为此,请在创建 AMI 之前停止 SAP HANA实例或按照 SAP Note 1703435 中的说明操作。

AmazonBackup 解决方案的服务和组件

Amazon为存储和备份提供了多种服务和选项,包括Amazon Simple Storage Service (Amazon S3)、Amazon Identity and Access Management (IAM) 和 S3 Glacier。

Amazon S3

Amazon S3 是上任何 SAP 备份和恢复解决方案的中心Amazon。它为任务关键型和主数据存储提供了高度耐用的存储基础设施。它可在一年内提供 99.999999999% 的数据元持久性和 99.99% 的可用性。有关如何创建和配置 S3 存储桶以存储 SAP HANA 备份文件的详细说明,请参阅 Amazon S3 文档

IAM

助 IAM,您可以安全地控制用户对Amazon服务和资源的访问权限。您可以创建和管理Amazon用户和群组,并使用权限授予用户对Amazon资源的访问权限。您可以在 IAM 中创建角色并管理权限,以控制担任该角色的实体或Amazon服务可以执行哪些操作。您也可以定义由哪个实体承担该角色。

在部署过程中,Amazon CloudFormation创建一个 IAM 角色,该角色允许访问从 Amazon S3 获取对象和/或将对象放入 Amazon S3。在部署之后,此角色随后会在启动时分配给托管 SAP HANA 主节点和工作线程节点的每个 EC2 实例。


            IAM 角色示例

图 2:IAM 角色示例

为确保安全性并仅应用最低权限原则,此角色的权限仅限于备份和恢复所需的操作。

{"Statement":[ {"Resource":"arn:aws:s3::: <your-s3-bucket-name>/*", "Action":["s3:GetObject","s3:PutObject","s3:DeleteObject", "s3:ListBucket","s3:Get*","s3:List*"], "Effect":"Allow"}, {"Resource":"*","Action":["s3:List*","ec2:Describe*","ec2:Attach NetworkInterface", "ec2:AttachVolume","ec2:CreateTags","ec2:CreateVolume","ec2:RunI nstances", "ec2:StartInstances"],"Effect":"Allow"}]}

要稍后添加函数,您可以使用修Amazon Web Services Management Console改 IAM 角色。

S3 Glacier

S3 Glacier 是一项成本极低的服务,可为数据存档和备份提供安全耐用的存储。S3 Glacier 针对不经常访问的数据进行了优化,并提供了多种选项,例如快速、标准和批量数据检索方法。对于标准检索和批量检索,数据分别在 3-5 小时或 5-12 小时内可用。

但是,通过快速检索,S3 Glacier 为您提供了在 3-5 分钟内检索数据的选项,这对于偶尔出现的紧急请求来说非常理想。借助 S3 Glacier,您可以以每月每 GB 0.01 美元的价格可靠地存储大量或少量数据,与本地解决方案相比,节省了大量资金。如亚马逊 S3 开发人员指南中所述,您可以使用生命周期策略将 S AP HANA 备份推送到 S3 Glacier 进行长期存档。

备份目的地

与传统的本地基础架构Amazon相比,在上面备份 SAP 系统的主要区别在于备份目标。磁带是本地基础设施所用的典型备份目标。开启Amazon,备份存储在 Amazon S3 中。与磁带相比,Amazon S3 有许多好处,包括能够自动将源系统的备份存储在异地,因为 Amazon S3 中的数据可以在该Amazon地区的多个设施之间复制。

为 SAP 配置Amazon Launch Wizard的 SAP HANA 系统配置了一组 EBS 卷,用作初始本地备份目标。HANA 备份首先存储在这些本地 EBS 卷上,然后复制到 Amazon S3 进行长期存储。

您可以使用 SAP HANA Studio、SQL 命令或 DBA Cockpit 来启动或计划 SAP HANA 数据备份。除非已禁用,否则会自动写入日志备份。/backup 文件系统作为部署过程的一部分进行配置。


          SAP HANA 文件系统布局

图 3:SAP HANA 文件系统布局

SAP HANA global.ini 配置文件已经过自定义,可以直接访问数据库备份/backup/data/<SID>,而自动日志存档文件则转到/backup/log/<SID>

[persistence] basepath_shared = no savepoint_intervals = 300 basepath_datavolumes = /hana/data/<SID> basepath_logvolumes = /hana/log/<SID> basepath_databackup = /backup/data/<SID> basepath_logbackup = /backup/log/<SID>

一些第三方备份工具, NetBackup例如 Commvault 和 IBM Tivoli Storage Manager (IBM TSM),已与 Amazon S3 功能集成,可用于触发 SAP HANA 备份并将其直接保存到 Amazon S3 中,而无需先将备份存储在 EBS 卷上。

Amazon CLI

Amazon Command Line Interface(Amazon CLI) 是管理Amazon服务的统一工具,是作为基础映像的一部分安装的。使用各种命令,您可以直接从命令行控制多个Amazon服务,并通过脚本自动执行这些服务。可通过分配给实例的 IAM 角色访问您的 S3 存储桶(如前所)。使用适用于 Amazon S3 的Amazon CLI命令,您可以列出先前创建的存储桶的内容、备份文件和恢复文件,如Amazon CLI文档中所述。

imdbmaster:/backup # aws s3 ls --region=us-east-1 s3://node2- hana-s3bucket-gcynh5v2nqs3 Bucket: node2-hana-s3bucket-gcynh5v2nqs3 Prefix: LastWriteTime Length Name ------------- ------ ----

备份示例

以下是您可以执行典型备份任务的步骤:

  1. 在 SAP HANA 备份编辑器中,选择打开备份向导。还可以通过右键单击要备份的系统并选择备份来打开备份向导。

    1. 选择文件目标类型。这样可将数据库备份到指定文件系统中的文件。

    2. 指定备份目的地 (/backup/data/<SID>) 和备份前缀。

      
                  SAP HANA 备份示例

      图 4:SAP HANA 备份示例

    3. 选择下一步,然后选择完成。备份完成后,将显示一条确认消息。

    4. 验证备份文件在操作系统级别是否可用。下一步是使用 aws s3 s ync 命令将备份文件从 /backup 文件系统推送或同步到 Ama zon S3。

      imdbmaster:/ # aws s3 sync backup s3://node2-hana-s3bucket- gcynh5v2nqs3 --region=us-east-1
  2. 使用Amazon Web Services Management Console来验证文件是否已推送到 Amazon S3。您也可以使用本Amazon Command Line Interface节前面显示的 aws s3 ls 命令。

    
              备份后的 Amazon S3 存储桶内容

    图 5:备份后的 Amazon S3 存储桶内容

提示

aws s3 sync命令只会上传 Amazon S3 中不存在的新文件。使用定期计划的 cron 作业进行同步,然后删除已上传的文件。有关在 Linux 中安排定期备份作业的信息,请参阅 SAP Note 1651055,并使用命令扩展提供的脚本。aws s3 sync

远程计划和执行备份

您可以使用 S Amazonystems Manager 运行命令和 Amazon Ev CloudWatch ents 来远程安排 SAP HANA 系统的备份,而无需登录 EC2 实例。您也可以使用 cron 或任何其他实例级计划机制。

您可以使用 Systems Manager Run Command 以远程方式安全地管理托管实例的配置。托管实例是您混合环境中已经针对 Systems Manager 配置的任意 EC2 实例或本地计算机。利用 Run Command,您可以自动完成常用管理任务以及大规模执行临时配置更改

缩放。你可以使用 Amazon EC2 控制台、Amazon CLI PowerShell、Windows 或Amazon软件开发工具包中的运行命令。

Systems Manager 必备

Systems Manager 具有以下先决条件。

支持的操作系统 (Linux)

实例必须运行支持的 Linux 版本。

64 位和 32 位系统:

  • 亚马逊 Linux 2014.09、2014.03 或更高版本

  • Ubuntu Server 16.04 LTS、14.04 LTS 或 12.04 LTS

  • Red Hat Enterprise Linux (RHEL) 6.5 或更高版本

  • CentOS 6.3 或更高版本

仅 64 位系统:

  • 亚马逊 Linux 2015.09、2015.03 或更高版本

  • Red Hat Enterprise Linux (RHEL) 7.x 或更高版本

  • CentOS 7.1 或更高版本

  • SUSE Linux 企业服务器 (SLES) 12 或更高版本

有关支持的操作系统的最新信息,请参阅 Syst Amazonems Manager 文档

Systems Manager 的角色

对于处理命令的实例,Systems Manager 需要一个 IAM 角色,执行命令的用户需要一个单独的角色。两个角色都需要权限策略才能通过 Systems Manager API 进行通信。您可以选择使用 Systems Manager 托管策略或创建自己的角色并指定权限。有关更多信息,请参阅Amazon文档中的为 S ystems Manager 配置安全角色

如果您要配置本地服务器或虚拟机 (VM),或要使用 Systems Manager 配置虚拟机,那么还必须配置 IAM 服务角色。有关更多信息,请参阅Amazon文档中的创建 IAM 服务角色

SSM 代理 (EC2 Linux 实例)

AmazonSystems Manager 代理(SSM 代理)处理 Systems Manager 请求,并按照请求中的指定配置您的计算机。您必须下载 SSM 代理并安装到 EC2 Linux 实例中。有关更多信息,请参阅Amazon文档中的在 Linux 上安装 SSM 代理

要计划远程备份,请执行以下简要步骤:

  1. 在 EC2 实例上安装和配置 SSM 代理。有关详细的安装步骤,请参阅 S Amazonystems Manager 文档

  2. 为分配给 SAP HANA 实例的 EC2 实例角色提供 SSM 访问权限。有关如何为角色分配 SSM 访问权限的详细信息,请参阅 S Amazonystems Manager 文档

  3. 创建 SAP HANA 备份脚本。您可以使用以下示例脚本作为起点,并对其进行修改以满足您的要求。

    #!/bin/sh set -x S3Bucket_Name=<Name of the S3 bucket where backup files will be copied> TIMESTAMP=$(date +\%F\_%H\%M) exec 1>/backup/data/${SAPSYSTEMNAME}/${TIMESTAMP}_backup_log.out 2>&1 echo "Starting to take backup of Hana Database and Upload the backup files to S3" echo "Backup Timestamp for $SAPSYSTEMNAME is $TIMESTAMP" BACKUP_PREFIX=${SAPSYSTEMNAME}_${TIMESTAMP} echo $BACKUP_PREFIX # source HANA environment source $DIR_INSTANCE/hdbenv.sh # execute command with user key hdbsql -U BACKUP "backup data using file ('$BACKUP_PREFIX')" echo "HANA Backup is completed" echo "Continue with copying the backup files in to S3" echo $BACKUP_PREFIX sudo -u root /usr/local/bin/aws s3 cp --recursive /backup/data/${SAPSYSTEMNAME}/ s3://${S3Bucket_Name}/bkps/${SAPSYSTEMNAME}/data/ --exclude "*" --include "${BACKUP_PREFIX}*" echo "Copying HANA Database log files in to S3" sudo -u root /usr/local/bin/aws s3 sync /backup/log/${SAPSYSTEMNAME}/ s3://${S3Bucket_Name}/bkps/${SAPSYSTEMNAME}/log/ --exclude "*" --include "log_backup*" sudo -u root /usr/local/bin/aws s3 cp /backup/data/${SAPSYSTEMNAME}/${TIMESTAMP}_backup_log.out s3://${S3Bucket_Name}/bkps/${SAPSYSTEMNAME}
    注意

    此脚本考虑到 hdbuserstore 具有名为 Backup 的键。

  4. 通过直接执行 ssm 命令来测试一次性备份。

    注意

    要成功执行此命令,您必须使用 sudo 启用 <sid>adm login

    aws ssm send-command --instance-ids <HANA master instance ID> --document-name Amazon-RunShellScript --parameters commands="sudo - u <HANA_SID>adm TIMESTAMP=$(date +\%F\_%H\%M) SAPSYSTEMNAME=<HANA_SID> DIR_INSTANCE=/hana/shared/${SAPSYSTEMNAME}/HDB00 -i /usr/sap/HDB/HDB00/hana_backup.sh"
  5. 使用 “ CloudWatch 事件”,您可以按任意所需频率远程安排备份。导航到 “ CloudWatch 事件” 页面并创建规则。


            创建亚马逊 CloudWatch 活动规则

图 6:创建亚马逊 CloudWatch 活动规则

配置规则时:

  1. 选择 Schedule

  2. 选择 SSM Run Command 作为目标。

  3. 选择 Amazon-RunShellScript (Linux) 作为文档类型。

  4. 选择InstanceIds标签作为目标密钥。

  5. 在 “配置参数” 下选择 “常量”,然后键入run命令。

还原 SAP HANA 备份和快照

还原 SAP 备份

要从备份还原 SAP HANA 数据库,请执行以下步骤:

  1. 如果备份文件在 /backup 文件系统中尚不可用,但在 Amazon S3 中,请使用 aws s3 cp 命令从亚马逊 S3 恢复文件。此命令具有以下语法:

    aws --region <region> cp <s3-bucket/path> --recursive <backup- prefix>*.

    例如:

    imdbmaster:/backup/data/YYZ # aws --region us-east-1 s3 cp s3://node2-hana-s3bucket-gcynh5v2nqs3/data/YYZ . --recursive -- include COMPLETE*
  2. SAP HANA 管理指南中所述,使用恢复向导恢复 SAP HANA 数据库。指定文件作为目的地类型,然后输入正确的备份前缀。

    
              还原示例

    图 7:还原示例

  3. 恢复完成后,您可以继续正常操作并从 /backup/<SID>/* 目录清除备份文件。

还原 EBS 快照

要还原 EBS 快照,请执行以下步骤:

  1. 从快照创建新卷:

    aws ec2 create-volume --region us-west-2 --availability-zone us- west-2a --snapshot-id snap-1234abc123a12345a --volume-type gp2
  2. 将新创建的卷连接到您的 EC2 主机:

    aws ec2 attach-volume --region=us-west-2 --volume-id vol- 4567c123e45678dd9 --instance-id i-03add123456789012 --device /dev/sdf
  3. 在主机上挂载与 SAP HANA 数据关联的逻辑卷:

    mount /dev/sdf /hana/data
  4. 启动您的 SAP HANA 实例。

注意

对于大型任务关键型系统,我们强烈建议您在还原 AMI 后但在启动数据库之前对数据库数据和日志卷执行卷初始化命令。执行卷初始化命令将帮助您避免在数据库可用之前长时间等待。以下是您可以使用的示例 fio 命令:

sudo fio –filename=/dev/xvdf –rw=read –bs=128K –iodepth=32 – ioengine=libaiodirect=1 –name=volume-initialize

有关初始化 Amazon EBS 卷的更多信息,请参阅文档。Amazon

还原 AMI 快照

你可以通过恢复你的 SAP HANA AMI 快照Amazon Web Services Management Console。打开 Amazon EC2 控制台,然后在导航窗格中选择 AM I。

选择要还原的 AMI,展开操作,然后选择 启动


          还原 AMI 快照

图 8:还原 AMI 快照