IBM Cloud Docs
在现有 IBM Cloud VPC 上通过自动化将 SAP HANA db 备份部署到 Cloud Object Storage

在现有 IBM Cloud VPC 上通过自动化将 SAP HANA db 备份部署到 Cloud Object Storage

如果 HANA 数据库实例已部署在 VPC 中,您可以使用 Terraform 脚本在 IBM Cloud Object Storage (COS) 中创建存储 HANA 数据库备份所需的设置。 Terraform 脚本使用你提供的 VPC 信息,然后调用 Ansible playbooks 在指定的 VPC 上创建 SAP 架构。 IBM Cloud 上的 Terraform 可对 IBM Cloud 虚拟私有云 (VPC) 基础架构资源进行可预测和一致的调配,从而使您能够快速构建复杂的云环境。IBM Cloud VPC 基础架构由 SAP 认证的硬件组成,这些硬件使用英特尔® 至强 CPU 和其他英特尔® 技术。

您有两种部署方法可供选择:

  • Terraform 脚本通过 CLI 在部署服务器(bastion 服务器)上运行。
  • Schematics 用户界面,可从云仪表板菜单访问。

您可以将 SAP HANA db 备份存储到 Cloud Object Storage 中。

SAP 已实施的解决方案

图 1。 从标准 SAP NW on HANA db 架构将 SAP HANA db 备份到 Cloud Object Storage
从标准 SAP NW on HANA db 架构将 SAP HANA db 备份到 Cloud Object Storage

创造了什么

该自动化解决方案专为实施 SAP HANA 备份解决方案而设计,该解决方案使用 Backint 和.NET。IBM Cloud Object Storage. 它基于 SAP Note“2935898 - Install and Configure SAP HANA Backint Agent for Amazon S3”。

SAP HANA Backint Agent 的最低版本为 Amazon S3,用于 IBM Cloud Object Storage 的最低版本为 1.2.17。 SAP HANA Backint Agent for 需要,包括 SSL 支持。Amazon S3 Python 3.7 Python 软件包是 SAP HANA 2 安装程序的一部分,不包括 SSL 支持。 Python 3.7 如果之前没有安装,则会在 /usr/local/bin 目录中安装支持 SSL 的"......"。 SAP HANA Backint Agent for 安装在 目录中。Amazon S3 /hana/shared/< SID >/backint_agent

该设置会将系统和租户数据库的初始完整数据备份到 Cloud Object Storage。 数据库的定期备份策略必须由客户配置。

所有数据备份、日志备份和目录备份文件都保存在 Cloud Object Storage 实例中创建的同一个专用存储桶中(没有强制存储配额),方法是在与 SAP HANA 系统相同的 IBM Cloud Gen2 VPC 中使用具有安全远程 SSH 访问权限的现有 bastion 主机。 该设置使用区域存储类别、智能层定价选项和标准定价计划。 SAP HANA 系统部署在以下操作系统之一上:

  • SUSE Linux Enterprise Server 15 SP 4 for SAP
  • SUSE Linux Enterprise Server 15 SP 3 for SAP
  • Red Hat Enterprise Linux 8.6 对于 SAP
  • Red Hat Enterprise Linux 8.4 对于 SAP

脚本文件

配置文件和脚本文件可在 GitHub. GitHub Terraform 存储库 - HANA 备份 Cloud Object Storage

Schematics 部署

配置和脚本文件在 GitHub. 使用 Schematics 接口时,应提供以下信息:

  • 工作区信息。
  • GitHub 解决方案的路径。
  • Schematics 界面中的参数值;它们与 input.auto.tfvars 文件中的参数相同,后者用于 CLI。

Terraform 界面

要运行 Terraform 脚本,应修改

  • input.auto.tfvars 文件,用于指定解决方案的现有 VPC 资源。 您应提供以下变量的值:
    • VPC 名称
    • 区域
    • 安全组
    • 子网
    • 资源组
    • HostName(s)
    • 为 HA 设置
    • 备份保留天数

您可以更改默认的 SAP 系统配置设置,以匹配您的解决方案。 您还可以指定下载 SAP 工具包的位置。

IBM Cloud Provider plug-in for Terraform on IBM Cloud 使用这些配置文件和 Ansible playbooks 将 HANA 数据库备份存储到 Cloud Object Storage 中,以用于您 IBM Cloud 账户中指定 VPC 中已安装的 HANA 数据库实例。

支持

IBM® 不对这些材料提供任何担保,也不提供任何服务或技术支持。 建议您在实际系统中使用从本网站下载的任何资料之前,先仔细检查这些资料。

尽管此处提供的材料未得到 IBM® 服务组织的支持,但开发人员欢迎您提出意见,并保留随时修改、重新改编或删除材料的权利。 要报告问题或提供建议或意见,请打开 GitHub 问题。

虚拟服务器实例配置

该解决方案适用于现有的 VSI,SAP HANA,部署在现有的 VPC 中。 详情请见下文:

准备工作

使用脚本前

  • 基于上述操作系统之一构建的 SAP HANA 系统应部署在 IBM Cloud Gen2 VPC 中,无论是否有 HA,都应部署在单台主机上。

  • 具有安全远程 SSH 访问权限的 bastion 服务器必须与 SAP HANA 系统部署在 IBM Cloud Gen2 VPC 的同一区域和区域内。

  • 应提供一对用于运行备份配置自动化的 SSH 密钥。 应在 /root/.ssh/authorized_keys 的 SAP HANA VSI 上手动添加 SSH 公钥,并在 IBM Cloud 上传。

  • 运行 SAP HANA 备份自动化的 IBM Cloud 用户应在 IBM Cloud Object Storage 上具有 Manager 角色。 要查看或使用凭证,用户必须拥有 IAM 级别的访问权限 " resource-controller.credential.retrieve_all "。 该权限赋予管理员角色,可覆盖任何凭证级别的访问权限,使用户能够查看凭证。

要为运行“SAP HANA db 备份到 Cloud Object Storage”所需的角色提供访问权限,请访问 https://cloud.ibm.com/iam/users 并选择要运行自动化的 USER_ID。

SAP HANA Cloud Object Storage
图 1。 SAP HANA 数据库备份到 数据库备份到 数据库备份到 Cloud Object Storage

  • IBM COS aws-s3-backint-.*-linuxx86_64.tar.gz 的备份代理工具包应手动上传到部署服务器(bastion 服务器)上。 该工具包是 SAP HANA 工具包文件的一部分,可在 */DATA_UNITS/HDB_SERVER_LINUX_X86_64/server 路径中找到。 可以提供整个 SAP HANA 工具包,也可以只提供用于 IBM COS 的备份代理工具包,但应使用的最低备份代理工具包版本是 aws-s3-backint-1.2.17-linuxx86_64

  • 必须在 bastion 服务器上手动上传 SAP 提供的 Python 脚本 create_hdbbackint.py ( SAP 注释 2935898 - 安装和配置 SAP HANA Backint Agent for Amazon S3 ),以修改 hdbbackint 脚本,使其指向 Python 3 库。

  • HANA DB 系统用户应为 SYSTEMDB 和所有租户数据库设置相同的密码。

使用 Schematics 用户界面将 SAP HANA Backup 部署到 VPC 上的 IBM Cloud Object Storage

使用以下步骤,通过 Schematics 界面配置 COS 的 SAP HANA 备份。 如果在 SAP HANA 全新安装后运行,脚本需要一小时才能完成。

  1. 从 IBM Cloud 菜单中选择 Schematics.

  2. 单击创建工作空间

  3. 指定模板页面:

    • 输入 URL 的 github 代码库,该代码库中包含该产品的 Schematics 代码。
    • 选择 自述文件中列出的 Terraform 版本
    • 单击下一步
  4. 工作区详细信息页面:

    • 输入工作区名称。
    • 选择资源组
    • 为工作区选择一个位置。 工作区位置不必与资源位置一致。
    • 选择下一步
  5. 选择“**创建 **”来创建工作区。

  6. 在工作区设置页面的输入变量部分,查看默认输入变量,并提供与解决方案相匹配的值。

    有关各参数的详细说明,请查阅 GitHub repo Readme 文件中的“输入参数文件”一章。 此外,确保将包含密码、API 和 ssh 私钥等敏感信息的参数标记为“敏感”。 这些参数在输入参数文件下的自述文件中被标记为“敏感”参数。 保存您修改的每个参数。

  7. 在工作区设置页面,单击生成计划。 等待计划完成。

  8. 单击查看日志以查看 Terraform 执行计划的日志文件。

  9. 单击“应用计划”应用 Terraform 模板。

  10. 查看日志文件,以确保在供应、修改或删除过程中未发生任何错误。

通过可部署架构瓦片将 SAP HANA 备份部署到 VPC 上的 IBM Cloud Object Storage

使用以下步骤,通过目录瓦片界面在现有 VPC 上配置 SAP NetWeaver (ABAP) Linux /HANA。 剧本需要 2-3 个小时才能完成。

  1. 从 IBM Cloud Catalog 菜单中选择 Cloud Object Storage on VPC for SAP HANA Backup on Deployable Architecture tile。 有关此部署的更多信息,请参阅 Readme 文件。

  2. 选择最新版本。

  3. 选择标准变体。

  4. 单击审查部署选项

    • 添加到项目,将此部署添加到 IBM Cloud 项目,并与其他部署合并。 IBM Cloud 项目还包括其他几个流水线步骤,包括部署验证、成本计算、合规性验证和审批流程。
    • 从 CLI 创建以获取 CLI 命令。 使用此命令,您可以通过 CLI 触发部署。
    • 使用代码将代码嵌入到其他 terraform 部署中。
    • 使用 IBM Cloud Schematics 直接触发部署流程。
  5. 选择使用 IBM Cloud Schematics 选项部署。 现在,为该安装添加输入参数。 参数分为 3 类:

    • 工作区- 这些参数定义了在 Schematics 中自动创建的工作区:
      • 输入工作区名称或使用默认名称。
      • 用于创建资源的资源组。 使用默认值或创建资源组。
      • 选择一个位置来创建 Schematics 工作空间。 工作区位置不必与资源位置一致。
    • 所需输入变量- 查看默认输入变量,并提供与解决方案相匹配的值。 这些参数针对您的部署。 更多详细信息,请参阅 自述文件
    所需变量
    参数 描述
    backint_cos_kit IBM COS 工具包备份代理的完整路径。 仅当未提供 HANA_KIT_FOR_BACKINT_COS 时才是必需的。 确保 backint 代理工具包的版本至少为 aws-s3-backint-1.2.17-linuxx86_64。
    bastion_floating_ip 输入来自堡垒服务器的浮动 IP。
    创建_hdbbackint_script SAP 提供的 Python 脚本的完整路径( SAP note 2935898 - Install and Configure SAP HANA Backint Agent for Amazon S3 ),以修改 "hdbbackint "脚本,使其指向 Python 3 库。
    hana_main_password HANA 系统主密码。 HANA DB 系统用户必须为 SYSTEMDB 和所有租户数据库设置相同的密码。
    DB_HOSTNAME_1 现有 HANA VSI 的主机名。 必需。 如果为 HANA 配置了高可用性,数据库必须是 HANA DB VSI 1 的主机名。
    HANA_SID 现有 SAP HANA 系统 ID。 SAP 系统 ID 用于标识 SAP HANA 系统。
    HANA_SYSNO 现有 SAP HANA 实例编号。 指定 SAP HANA 系统的实例编号。
    HANA_TENANTS 现有 SAP HANA 租户数据库列表。
    HA_CLUSTER 选择是否为 HANA 数据库配置了高可用性。 接受的值:yes/no。 如果值为“否”,则只需填写 " DB_HOSTNAME_1 "变量。 如果值为“是”,则需要填写下两个变量:DB_HOSTNAME_1, DB_HOSTNAME_2。
    ibm_cloud_api_key IBM Cloud API 密钥(敏感*值)。
    生命周期政策 HANA 数据库备份和事务日志备份的保留天数。
    區域 部署 HANA VSI 的云区域。 COS 与 HANA VSI 在同一区域创建。 这里 列出了 VPC 的区域和分区。 IBM Cloud Schematics 中查看支持的地点。
    RESOURCE_GROUP 用于 VSI 和卷资源的现有资源组名称。 资源小组列表请 点击此处
    SECURITY_GROUP 现有安全组的名称。 这里有安全组列表。
    SUBNET 现有子网的名称。 子网列表可 在此处获取。
    VPC 现有 VPC 的名称。 VPC 列表可 在此处获取。
    private_ssh_key 以 OpenSSH 格式输入 id_rsa 私钥对内容(敏感*值)。 该私钥只能在 terraform 配置期间使用,建议在 SAP 部署后更改。
    • 可选输入变量- 查看并更新可选参数。 更多详细信息,请参阅 自述文件
    可选变量
    参数 描述
    DB_HOSTNAME_2 现有 HANA VSI 的主机名 2. 仅当为 HANA 数据库配置了高可用性时才需要。
    hana_kit_for_backint_cos SAP HANA 工具包文件的完整路径,用于自动化提取 IBM COS 的 backint 代理工具包 aws-s3-backint-....-linuxx86_64.tar.gz。 仅当未提供 BACKINT_COS_KIT 时才是必需的。 确保所含备份代理工具包的版本至少为 aws-s3-backint-1.2.17-linuxx86_64。
    id_rsa_file_path private_ssh_key 的文件路径默认为自动生成。 如果更改,则必须包含 git repo 文件夹的相对路径。
  6. 接受许可协议。

  7. 选择部署。 部署开始后,您将进入 Schematics 页面,该页面显示脚本日志文件,供您监控部署进度。

开始备份前

要开始使用 IBM Cloud Object Storage,您需要具备以下条件:

  • 进入 IBM Cloud Platform 账户
  • 设置账户以访问 VPC。 确保您的账户已 升级为付费账户
  • 创建一个部署服务器(bastion 服务器)来存储 SAP 工具包。 更多信息,请参阅 自动 SAP bastion 服务器 - SAP 媒体存储库
  • 从 SAP Portal 将 SAP 工具包下载到部署服务器。 记下下载的位置。 Ansible 解压文件。 更多信息,请参阅 自述文件
  • 创建或检索 IBM Cloud API 密钥。 API 密钥用于通过创建或检索 SSH 密钥 ID 进行身份验证。
  • 登录 IBM Cloud 平台,并确定您对 IBM Cloud 服务的权限。
  • 部署服务器(bastion 服务器)上应已安装 Terraform。 更多信息,请参阅 SAP 部署的 Bastion 服务器
  • 在使用“HANA 数据库备份到 Cloud Object Storage”自动化模块之前,HANA 数据库实例应安装在 IBM Cloud 账户中指定的 VPC 上。
  • 在 Cloud Object Storage 中运行此自动化模块进行 HANA 备份之前,确保所有 HANA 数据库系统用户的密码相同。

使用 Terraform CLI 和部署服务器(bastion 服务器)创建基础架构

使用这些步骤和“HANA db 备份到 Cloud Object Storage”自动化模块,为现有 VPC 中已部署的 SAP HANA db 2.0 配置 SAP HANA db 备份到 Cloud Object Storage。

脚本需要 1-2 个小时才能完成。 最后执行系统数据库和租户数据库的完整备份。

  1. 访问部署服务器(bastion 服务器)CLI。

  2. https://github.com/IBM-Cloud/sap-hana-backup-cos

    git clone https://github.com/IBM-Cloud/sap-hana-backup-cos.git
    
    cd sap-hana-backup-cos
    
  3. 指定您的 VPC。 修改 input.auto.tfvars 文件,指定现有 VPC 和组件名称的信息。 有关变量的说明,请参阅 自述文件。 已通过“HANA 数据备份到 Cloud Object Storage”自动化解决方案验证的 VSI 操作系统映像有

    • SUSE Linux Enterprise Server 15 SP 4 for SAP
    • SUSE Linux Enterprise Server 15 SP 3 for、SAP
    • Red Hat Enterprise Linux 8.6 SAP 或
    • Red Hat Enterprise Linux 8.4 对于 SAP

    注:上述任何操作系统发行版和版本都可用于 IBM Cloud Gen2 VPC 中 HANA 数据库主机(带或不带 HA)的预先部署。 该 HANA 备份解决方案是在 IBM Cloud 提供的以下操作系统镜像上实施和测试的:ibm-sles-15-4-amd64-sap-hana-3, ibm-sles-15-3-amd64-sap-hana-3, ibm-redhat-8-6-amd64-sap-hana-2, ibm-redhat-8-4-amd64-sap-hana-2。

    # Infra VPC variables
    REGION           = "eu-de"
    VPC              = "ic4sap"
    SECURITY_GROUP   = "ic4sap-securitygroup"
    RESOURCE_GROUP   = "wes-automation"
    SUBNET           = "ic4sap-subnet"
    ID_RSA_FILE_PATH = "/root/.ssh/id_rsa_backup"
    
    # Cloud Object Storage variables:
    
    LIFECYCLE_POLICY = "60"
    
    # HANA VSI variables:
    
    HA_CLUSTER       = "yes/no"
    DB_HOSTNAME_1    = "hanadb-vsi1"
    DB_HOSTNAME_2    = ""
    
  4. 自定义 SAP 系统配置。 在同一 input.auto.tfvars 文件中,编辑传递给 Ansible 自动部署的 SAP 系统配置变量。 有关变量的说明,请参阅 自述文件

    # SAP HANA backup configuration
    
    HANA_SID                 = "HDB"
    HANA_SYSNO               = "00"
    HANA_TENANTS             = ["Ten_HDB1", "Ten_HDB2"]
    
    # Kits paths - for HANA db backup to Cloud Object Storage
    
    BACKINT_COS_KIT          = "/storage/hdb_backup_kit_files/aws-s3-backint/aws-s3-backint-1.2.18-linuxx86_64.tar.gz"
    HANA_KIT_FOR_BACKINT_COS = ""
    CREATE_HDBBACKINT_SCRIPT ="/storage/hana_backup_kit_files/create_hdbbackint.py"
    
  5. 初始化 Terraform CLI。

    terraform init
    
  6. 创建 Terraform 执行计划。 Terraform 执行计划总结了自动化脚本根据输入变量执行的所有操作。

    terraform plan --out plan1
    

    您应输入 SAP HANA 主密码(所有 HANA SYSTEM 数据库用户的密码都应相同)和 API 密钥。 SAP 主密码长度应为 10 - 14 个字符,至少包含一个数字(0-9)。 密码只能包含以下字符:a-z、A-Z、0-9、@、#、$、.该密码不能包含感叹号"!"。 密码不应以数字或下划线()开头。

  7. 验证计划是否显示了要创建的所有资源,名称和值是否正确。 如果需要调整计划,请编辑 input.auto.tfvars 文件以修正资源,然后再次运行 terraform 计划。

  8. 应用已保存的地形改造计划。

    terraform apply "plan1"
    

    资源已创建,您将看到与 terraform 计划输出类似的输出结果。

  9. IBM Cloud Object Storage 实例和桶,并将 Hana DB 系统配置为使用 backint 备份。

  10. 将 SAP 凭据和虚拟服务器实例 IP 添加到 SAP GUI 或 HANA STUDIO。 有关 SAP GUI 的更多信息,请参阅 SAP GUI。

后续步骤

创建 VPC 后,请勿使用 IBM Cloud 控制面板和用户界面修改 VPC。 Terraform 脚本创建的是一个完整的解决方案,使用用户界面有选择地修改资源可能会导致意想不到的结果。

如果需要移除备份服务:

删除“Hana 备份到 Cloud Object Storage”配置并删除 Cloud Object Storage。

首先更改/调整 Hana 备份配置,不使用备份/备份到 IBM Cloud Object Storage:

  1. 检查并更改/删除任何已计划的 Hana 数据库备份作业(针对 SYSTEM 和租户 DB),方法是使用与计划作业相同的工具(OS crontab、SAP DB13、SAP HANA Cockpit、Hana Studio),不使用备份/备份到 IBM Cloud Object Storage。
  2. 确保 Hana“LOG 备份设置”从备份/备份更改为 Cloud Object Storage 至任何其他“目标类型”(文件/磁盘、其他备份工具)。 您可以使用 SAP HANA Cockpit、Hana Studio 或其他工具。 仔细检查“Hana 备份日志”文件和新的备份位置,查看 Hana 日志是否根据需要自动备份。
  3. 确保 Hana“备份目录”目标从备份/备份 Cloud Object Storage 更改为任何其他“目标类型”(文件/磁盘、其他备份工具)。 您可以使用 SAP Hana Cockpit、Hana Studio。
  4. 确保您不需要以前保存在 Cloud Object Storage 中的 Hana 数据和日志备份。 Cloud Object Storage 并删除所有 Hana 数据备份和日志备份。 如果还需要,请确保之前已将它们保存在其他位置。
  5. 使用与 IBM Cloud Object Storage 不同的新备份位置(文件/磁盘、其他备份工具),为 SYSTEM 和租户 DB 运行完整的数据备份测试。 确保在新位置成功完成所有备份。
  6. 使用新的“目标类型”(文件/磁盘、其他备份工具)检查并重新安排 SYSTEM 和租户 DB 的完整数据备份。

其次,释放 IBM Bucket 并删除所有备份:

  1. 运行 terraform destroy,删除已使用的 IBM 桶(以及 Cloud Object Storage 实例)及其所有内容/备份。
  • Python 3.7 with ssl support" 和 " S3 backint" 的已用文件/目录仍存在于 Hana VSI 的操作系统层面,但 Hana 将不再使用它们。

销毁后的后续步骤

创建 VPC 后,请勿使用 IBM Cloud 控制面板和用户界面修改 VPC。 Terraform 脚本创建的是一个完整的解决方案,使用用户界面有选择地修改资源可能会导致意想不到的结果。