Terraform:具备主机自动故障切换功能的 SAP HANA 横向扩容系统部署指南

本指南介绍如何使用 Terraform 部署包含 SAP HANA 主机自动故障切换故障恢复解决方案的 SAP HANA 横向扩容系统。使用 Terraform,您可以部署一个符合 SAP 支持要求并遵循 SAP 和 Compute Engine 最佳做法的系统。

生成的 SAP HANA 系统包含一个主实例主机、最多 15 个工作器主机和最多 3 个备用主机,所有主机都位于同一个 Compute Engine 可用区内。

该系统还包括适用于 SAP HANA 备用节点的 Google Cloud 存储空间管理器(SAP HANA 的存储空间管理器),该管理器负责管理故障切换期间将存储设备转移到备用节点的操作。SAP HANA 的存储空间管理器安装在 SAP HANA /shared 卷中。

如需 SAP 提供的关于主机自动故障切换解决方案的更多信息,请参阅主机自动故障切换

如果您并不需要使用主机自动故障切换功能,请不要使用本指南,而是参阅 Terraform:SAP HANA 部署指南

如果您需要在 Linux 高可用性集群中部署 SAP HANA,请使用以下指南之一:

本指南适用于熟悉 SAP 横向扩容配置(包括用于实现高可用性的备用主机,以及网络文件系统)的 SAP HANA 高级用户。

前提条件

在创建 SAP HANA 高可用性横向扩容系统之前,请确保满足以下前提条件:

  • 您已阅读 SAP HANA 规划指南SAP HANA 高可用性规划指南
  • 您或您的组织已有一个 Google Cloud 账号,并且您已为 SAP HANA 部署创建了一个项目。如需了解如何创建 Google Cloud 账号和项目,请参阅 SAP HANA 部署指南中的设置 Google 账号
  • 如果您需要 SAP 工作负载根据数据驻留、访问权限控制、支持人员或监管要求运行,则必须创建所需的 Assured Workloads 文件夹。如需了解详情,请参阅 SAP on Google Cloud 的合规性和主权控制
  • SAP HANA 安装媒体存储在可用于您的部署项目和区域的 Cloud Storage 存储桶中。如需了解如何将 SAP HANA 安装媒体上传到 Cloud Storage 存储桶,请参阅 SAP HANA 部署指南中的创建 Cloud Storage 存储桶
  • 您已有一个 NFS 解决方案(例如代管式 Filestore 解决方案),用于在横向扩容 SAP HANA 系统中的主机之间共享 SAP HANA /hana/shared/hanabackup 卷。在部署该系统之前,应先在 Terraform 配置文件中指定 NFS 服务器的装载点。如需部署 Filestore NFS 服务器,请参阅创建实例
  • 托管 SAP HANA 横向扩容节点的 SAP HANA 子网中的所有虚拟机之间都必须能够进行通信。

  • 如果在项目元数据中启用了 OS Login,则需要暂时停用 OS Login,直到部署完成。出于部署目的,此过程会在实例元数据中配置 SSH 密钥。启用 OS Login 后,基于元数据的 SSH 密钥配置会停用,并且此部署将失败。部署完成后,您可以再次启用 OS Login。

    如需了解详情,请参阅以下主题:

创建网络

出于安全考虑,建议您创建一个新的网络。您可以通过添加防火墙规则或使用其他访问权限控制方法来控制哪些人有权访问该网络。

如果您的项目具有默认 VPC 网络,请勿使用。 请创建自己的 VPC 网络,以保证只有您明确创建的防火墙规则在起作用。

在部署期间,虚拟机实例通常需要访问互联网来下载 Google Cloud's Agent for SAP。如果您使用的是由 Google Cloud 提供的某一经 SAP 认证的 Linux 映像,那么虚拟机实例还需要访问互联网来注册许可以及访问操作系统供应商代码库。具有 NAT 网关和虚拟机网络标记的配置支持这种访问,即使目标虚拟机没有外部 IP 地址,也是如此。

如需为您的项目创建 VPC 网络,请完成以下步骤:

  1. 创建自定义模式网络。如需了解详情,请参阅创建自定义模式网络

  2. 创建一个子网,并指定区域和 IP 地址范围。如需了解详情,请参阅添加子网

设置 NAT 网关

如果您需要创建一个或多个没有公共 IP 地址的虚拟机,则需要使用网络地址转换 (NAT) 以使虚拟机能够访问互联网。使用 Cloud NAT,这是 Google Cloud 提供的一项软件定义的代管式服务,可让虚拟机将出站数据包发送到互联网,并接收任何对应的已建立入站响应数据包。或者,您可以将单独的虚拟机设置为 NAT 网关。

如需为项目创建 Cloud NAT 实例,请参阅使用 Cloud NAT

为项目配置 Cloud NAT 后,虚拟机实例可以在没有公共 IP 地址的情况下安全地访问互联网。

添加防火墙规则

默认情况下,隐式防火墙规则会阻止从 Virtual Private Cloud (VPC) 网络外部传入的连接。如需允许传入的连接,请为您的虚拟机设置防火墙规则。在与虚拟机建立传入的连接后,防火墙会允许通过此连接的双向流量。

您还可以创建防火墙规则,允许对指定端口进行外部访问,或限制同一网络中各虚拟机之间的访问。如果使用 default VPC 网络类型,则系统还会应用一些其他默认规则(例如 default-allow-internal 规则),以允许在同一网络中所有端口上的各虚拟机之间建立连接。

您可能需要通过创建防火墙规则来隔离或限制与数据库主机的连接,具体取决于适用于您的环境的 IT 政策。

根据您的使用场景,您可以创建防火墙规则来允许下列各项中的访问:

  • 所有 SAP 产品的 TCP/IP 中列出的默认 SAP 端口。
  • 从您的计算机或公司网络环境到 Compute Engine 虚拟机实例的连接。如果您不确定使用哪个 IP 地址,请与您公司的网络管理员联系。
  • SAP HANA 子网中虚拟机之间的通信,包括 SAP HANA 横向扩容系统中节点之间的通信,或采用三层架构的数据库服务器和应用服务器之间的通信。您可以通过创建允许来自子网的流量的防火墙规则,使虚拟机之间能够互相通信。

如需为您的项目创建防火墙规则,请参阅创建防火墙规则

创建具有备用主机的 SAP HANA 横向扩容系统

在以下说明中,您将完成下列操作:

  • 使用您填写的配置文件调用 Terraform,以创建 SAP HANA 系统。
  • 验证部署。
  • 通过模拟主机故障来测试备用主机。

以下说明中的某些步骤使用 Cloud Shell 来输入 gcloud 命令。如果您安装了最新版本的 Google Cloud SDK,则可以改为从本地终端输入 gcloud 命令。

定义并创建 SAP HANA 系统

在下面的操作步骤中,您将下载并填写 Terraform 配置文件,使用标准 Terraform 命令初始化当前工作目录并下载 Google Cloud 提供的 Terraform 提供程序插件和模块文件,然后应用配置来部署虚拟机、永久性磁盘和 SAP HANA 实例。

  1. 确认项目资源(例如永久性磁盘和 CPU)的当前配额是否足以满足您要安装的 SAP HANA 系统的要求。如果配额不足,则部署将失败。如需了解 SAP HANA 配额需求,请参阅有关 SAP HANA 的价格和配额考虑因素

    转到“配额”页面

  2. 打开 Cloud Shell。

    转到 Cloud Shell

  3. 将用于 SAP HANA 高可用性横向扩容系统的 sap_hana_scaleout.tf 配置文件下载到您的工作目录:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/terraform/sap_hana_scaleout.tf
  4. 在 Cloud Shell 代码编辑器中打开 sap_hana_scaleout.tf 文件。

    如需打开 Cloud Shell 代码编辑器,请点击 Cloud Shell 终端窗口右上角的铅笔图标。

  5. sap_hana_scaleout.tf 文件中,更新以下参数值,方法是将双引号中的内容替换为安装所需的值。例如,您可以将“ZONE”替换为“us-central1-f”。

    参数名 数据类型 说明
    source 字符串

    指定部署期间要使用的 Terraform 模块的位置和版本。

    sap_hana_scaleout.tf 配置文件包含 source 参数的两个实例:一个实例是当前活跃对象,另一个实例则作为注释包含在文件内。默认处于活跃状态的 source 参数会指定 latest 作为模块版本。source 参数的第二个实例(默认通过前导 # 字符停用)会指定一个时间戳,用于标识特定模块版本。

    如果您需要所有部署使用同一模块版本,则从指定版本时间戳的 source 参数移除前导 # 字符,并将该字符添加到指定 latestsource 参数。

    project_id 字符串 指定要在其中部署此系统的 Google Cloud 项目的 ID。 例如 my-project-x
    zone 字符串

    指定要在其中部署 SAP 系统的可用区。可用区必须在您为子网选择的区域内。

    例如,如果您的子网部署在 us-central1 区域,您可以指定 us-central1-a 之类的可用区。

    machine_type 字符串 指定要在其上运行 SAP 系统的 Compute Engine 虚拟机 (VM) 的类型。如果您需要自定义虚拟机类型,请指定一个预定义虚拟机类型,其中 vCPU 的数量最接近但仍大于所需的数量。部署完成后,修改 vCPU 数量和内存量

    例如 n1-highmem-32

    subnetwork 字符串 指定您在先前步骤中创建的子网的名称。如果您要部署到共享 VPC,请以 SHARED_VPC_PROJECT_ID/SUBNETWORK 形式指定该值。例如 myproject/network1
    linux_image 字符串 指定要在其中部署 SAP 系统的 Linux 操作系统映像的名称。 例如 rhel-9-2-sap-hasles-15-sp5-sap。 如需查看可用操作系统映像的列表,请参阅 Google Cloud 控制台中的映像页面。
    linux_image_project 字符串 指定包含您为 linux_image 参数指定的映像的 Google Cloud 项目。此项目可以是您自己的项目,也可以是某个 Google Cloud 映像项目。 对于 Compute Engine 映像,请指定 rhel-sap-cloudsuse-sap-cloud。如需查找操作系统的映像项目,请参阅操作系统详细信息
    instance_name 字符串 指定主机虚拟机实例的名称。该名称可以包含小写字母、数字和连字符。工作器主机和备用主机的虚拟机实例使用相同的名称并在后面附加 w 和各自的主机编号。
    sap_hana_shared_nfs 字符串 指定 /hana/shared 卷的 NFS 装载点。例如 10.151.91.122:/hana_shared_nfs
    sap_hana_backup_nfs 字符串 指定 /hanabackup 卷的 NFS 装载点。例如 10.216.41.122:/hana_backup_nfs
    sap_hana_deployment_bucket 字符串 如需在部署的虚拟机上自动安装 SAP HANA,请指定包含 SAP HANA 安装文件的 Cloud Storage 存储桶路径。请勿在路径中包含 gs://;仅包含存储桶名称和任何文件夹的名称。例如,my-bucket-name/my-folder

    Cloud Storage 存储桶必须存在于您为 project_id 参数指定的 Google Cloud 项目中。

    sap_hana_sid 字符串 如需在部署的虚拟机上自动安装 SAP HANA,请指定 SAP HANA 系统的 ID。此 ID 必须由 3 个字母数字字符组成,并以字母开头。所有字母必须大写。 例如 ED1
    sap_hana_instance_number 整数 可选。指定 SAP HANA 系统的实例编号(0 到 99)。默认值为 0
    sap_hana_sidadm_password 字符串 如需在部署的虚拟机上自动安装 SAP HANA,请为安装脚本指定一个临时 SIDadm 密码,以便在部署期间使用。该密码必须至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。

    我们建议您使用密文,而不是以纯文本形式指定密码。如需了解详情,请参阅密码管理

    sap_hana_sidadm_password_secret 字符串 可选。如果您使用 Secret Manager 存储 SIDadm 密码,请指定与此密码对应的密文的名称

    在 Secret Manager 中,请确保密文值(即密码)至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。

    如需了解详情,请参阅密码管理

    sap_hana_system_password 字符串 如需在部署的虚拟机上自动安装 SAP HANA,请为安装脚本指定一个临时数据库超级用户密码,以便在部署期间使用。该密码必须至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。

    我们建议您使用密文,而不是以纯文本形式指定密码。如需了解详情,请参阅密码管理

    sap_hana_system_password_secret 字符串 可选。如果您使用 Secret Manager 存储数据库超级用户密码,请指定与此密码对应的密文的名称

    在 Secret Manager 中,请确保密文值(即密码)至少包含 8 个字符,并且至少包含 1 个大写字母、1 个小写字母和 1 个数字。

    如需了解详情,请参阅密码管理

    sap_hana_double_volume_size 布尔值 可选。如需将 HANA 卷大小翻倍,请指定 true。如果要在同一虚拟机上部署多个 SAP HANA 实例或要部署灾难恢复 SAP HANA 实例,此参数会非常有用。默认情况下,卷大小会根据虚拟机大小自动计算为所需的最小大小,同时仍满足 SAP 认证和支持要求。默认值为 false
    sap_hana_sidadm_uid 整数 可选。指定一个值来替换 SID_LCadm 用户 ID 的默认值。默认值为 900。您可以将此值更改为其他值,以便在 SAP 环境中保持一致性。
    sap_hana_sapsys_gid 整数 可选。替换 sapsys 的默认组 ID。默认值为 79
    sap_hana_worker_nodes 整数 指定您需要的额外 SAP HANA 工作器主机的数量。您可以指定 1 到 15 个工作器主机。请勿用引号括起值。默认值为 1。
    sap_hana_standby_nodes 整数 指定您需要的额外 SAP HANA 备用主机的数量。您可以指定 1 到 3 个备用主机。请勿用引号括起值。默认值为 1。
    network_tags 字符串 可选。指定要与虚拟机实例关联的一个或多个网络标记(以英文逗号分隔),用于防火墙或路由。

    如果您指定 public_ip = false 而不指定网络标记,请务必另外提供一种访问互联网的方法。

    nic_type 字符串 可选。指定要用于虚拟机实例的网络接口。您可以指定值 GVNICVIRTIO_NET。如需使用 Google 虚拟 NIC (gVNIC),您需要指定一个支持 gVNIC 的操作系统映像作为 linux_image 参数的值。如需查看操作系统映像列表,请参阅操作系统详细信息

    如果您没有为此参数指定值,则系统会根据您为 machine_type 参数指定的机器类型自动选择网络接口。

    此参数在 sap_hana 模块 202302060649 或更高版本中可用。
    disk_type 字符串 可选。指定要为部署中的所有 SAP 卷部署的永久性磁盘或超磁盘的默认类型。默认值为 pd-ssd。以下是此参数的有效值:pd-ssdpd-balancedhyperdisk-extremehyperdisk-balancedpd-extreme

    请注意,如果指定值 hyperdisk-extremehyperdisk-balanced,则 /usr/sap 目录会装载在单独的平衡永久性磁盘 (pd-balanced) 中。这是因为 /usr/sap 目录不需要具有与 /hana/data/hana/log 目录一样高的性能。

    您可以使用一些高级参数替换此默认磁盘类型以及关联的默认磁盘大小和默认 IOPS。如需了解详情,请转到您的工作目录,运行 terraform init 命令,然后查看 /.terraform/modules/sap_hana_scaleout/variables.tf 文件。在生产环境中使用这些参数之前,请务必在测试环境中对其进行测试。

    use_single_shared_data_log_disk 布尔值 可选。默认值为 false,指示 Terraform 为以下每个 SAP 卷部署单独的永久性磁盘或超磁盘:/hana/data/hana/log/hana/shared/usr/sap。如需将这些 SAP 卷装载到同一永久性磁盘或超磁盘上,请指定 true
    public_ip 布尔值 可选。决定是否为虚拟机实例添加一个公共 IP 地址。默认值为 true
    service_account 字符串 可选。指定主机虚拟机以及主机虚拟机上运行的程序将要使用的用户管理的服务账号的电子邮件地址。例如 svc-acct-name@project-id.iam.gserviceaccount.com

    如果您指定此参数而不指定值,或者直接省略此参数,则安装脚本会使用 Compute Engine 默认服务账号。如需了解详情,请参阅 Google Cloud 上的 SAP 程序的身份和访问权限管理

    sap_deployment_debug 布尔值 可选。仅当 Cloud Customer Care 要求您为部署启用调试时才指定为 true,这会使部署生成详细的部署日志。默认值为 false
    reservation_name 字符串 可选。如需为此部署使用特定的 Compute Engine 虚拟机预留,请指定预留的名称。默认情况下,安装脚本会根据以下条件选择任何可用的 Compute Engine 预留。

    无论是您指定预留名称还是安装脚本自动选择预留,都必须对预留进行如下设置才能使用该预留:

    • specificReservationRequired 选项设置为 true;或在 Google Cloud 控制台中,选中选择特定预留选项。
    • 某些 Compute Engine 机器类型支持的 CPU 平台不在该机器类型的 SAP 认证范围内。如果目标预留要用于以下任何机器类型,则必须按如下所示为该预留指定最低要求 CPU 平台:
      • n1-highmem-32:Intel Broadwell
      • n1-highmem-64:Intel Broadwell
      • n1-highmem-96:Intel Skylake
      • m1-megamem-96:Intel Skylake
    • 对于经过 SAP 认证在 Google Cloud 上使用的所有其他机器类型,最低要求 CPU 平台应符合 SAP 最低 CPU 要求。
    vm_static_ip 字符串 可选。为虚拟机实例指定有效的静态 IP 地址。如果未指定,系统会自动为您的虚拟机实例生成 IP 地址。

    此参数在 sap_hana_scaleout 模块版本 202306120959 或更高版本中提供。

    worker_static_ips 列表(字符串) 可选。为横向扩容系统中的工作器实例指定一组有效的静态 IP 地址。如果未指定此参数的值,系统会自动为每个工作器虚拟机实例生成一个 IP 地址。 例如 [ "1.0.0.1", "2.3.3.4" ]

    静态 IP 地址按实例创建顺序分配。例如,如果您选择部署 3 个工作器实例,但仅为参数指定 2 个 IP 地址worker_static_ips,则这些 IP 地址将分配给 Terraform 配置部署的前两个虚拟机实例。对于第三个工作器虚拟机实例,系统会自动生成 IP 地址。

    此参数在 sap_hana_scaleout 模块版本 202306120959 或更高版本中提供。

    standby_static_ips 列表(字符串) 可选。为横向扩容系统中的备用实例指定一组有效的静态 IP 地址。如果未指定此参数的值,系统会自动为每个备用虚拟机实例生成一个 IP 地址。 例如 [ "1.0.0.1", "2.3.3.4" ]

    静态 IP 地址按实例创建顺序分配。例如,如果您选择部署 3 个备用实例,但仅为参数指定 2 个 IP 地址standby_static_ips,则这些 IP 地址将分配给 Terraform 配置部署的前两个虚拟机实例。对于第三个备用虚拟机实例,系统会自动生成 IP 地址。

    此参数在 sap_hana_scaleout 模块 202306120959 或更高版本中可用。

    以下示例展示了一个已完成的配置文件,该文件在 us-central1-f 可用区部署了一个包含三个工作器主机和一个备用主机的 SAP HANA 横向扩容系统。 每个主机安装在运行 Compute Engine 公共映像提供的 Linux 操作系统的 n2-highmem-32 虚拟机上。NFS 卷由 Filestore 提供。临时密码仅在部署和配置处理期间使用。

    为清楚起见,示例中省略了配置文件中的注释。

    # ...
    module "hana_scaleout" {
    source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # By default, this source file uses the latest release of the terraform module
    # for SAP on Google Cloud. To fix your deployments to a specific release
    # of the module, comment out the source property above and uncomment the source property below.
    #
    # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # ...
    #
    project_id = "example-project-123456"
    zone = "us-central1-f"
    machine_type = "n2-highmem-32"
    subnetwork = "example-sub-network-sap"
    linux_image = "sles-15-sp4-sap"
    linux_image_project = "suse-sap-cloud"
    
    instance_name = "hana-scaleout-w-failover"
    sap_hana_shared_nfs = "10.74.146.58:/hana_shr"
    sap_hana_backup_nfs = "10.188.249.170:/hana_bup"
    # ...
    sap_hana_deployment_bucket = "hana2-sp5-rev53"
    sap_hana_sid = "HF0"
    sap_hana_instance_number = 00
    sap_hana_sidadm_password = "TempPa55word"
    sap_hana_system_password = "TempPa55word"
    # ...
    sap_hana_worker_nodes = 3
    sap_hana_standby_nodes = 1
    vm_static_ip = "10.0.0.1"
    worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
    standby_static_ips = ["10.0.0.5"]
    # ...
    }
  6. 初始化当前工作目录并下载 Google Cloud 提供的 Terraform 提供程序插件和模块文件:

    terraform init

    terraform init 命令会为其他 Terraform 命令准备该工作目录。

    如需强制刷新工作目录中的提供程序插件和配置文件,请指定 --upgrade 标志。如果省略 --upgrade 标志,并且您未对工作目录进行任何更改,则 Terraform 会使用本地缓存的副本,即使在 source 网址中指定了 latest 也是如此。

  7. (可选)创建 Terraform 执行计划:

    terraform plan

    terraform plan 命令会显示当前配置所需的更改。如果您跳过此步骤,则 terraform apply 命令会自动创建新计划并提示您批准该计划。

  8. 应用执行计划:

    terraform apply

    当系统提示您批准操作时,请输入 yes

    terraform apply 命令会设置 Google Cloud 基础架构。当 Compute Engine 机器启动时,Google Cloud 基础架构会调用启动脚本来配置操作系统并安装 SAP HANA。

    当 Terraform 拥有控制权时,状态消息将写入 Cloud Shell。调用脚本后,状态消息将写入 Logging,并可在 Google Cloud 控制台中查看,如检查 Logging 日志中所述。

    完成时间可能有所不同,但整个流程通常需要 45 分钟到 1 小时来完成。

验证部署

如需验证部署,请检查 Cloud Logging 中的部署日志,检查主要主机和工作器主机的虚拟机上的磁盘和服务,在 SAP HANA Studio 中显示该系统,然后测试备用主机的接管情况。

查看日志

  1. 在 Google Cloud 控制台中,打开 Cloud Logging 以监控安装进度并检查错误。

    转到 Cloud Logging

  2. 过滤日志:

    日志浏览器

    1. 日志浏览器页面中,转到查询窗格。

    2. 资源下拉菜单中选择全局,然后点击添加

      如果您没有看到全局选项,请在查询编辑器中输入以下查询:

      resource.type="global"
      "Deployment"
      
    3. 点击运行查询

    旧式日志查看器

    • 旧版日志查看器页面中,从基本选择器菜单选择全局作为日志记录资源。
  3. 分析过滤后的日志:

    • 如果显示 "--- Finished",则表示部署已完成处理,您可以继续执行下一步。
    • 如果出现配额错误,请执行以下步骤:

      1. 对于任何不符合 SAP HANA 规划指南中列出的 SAP HANA 要求的配额,请在“IAM 和管理”的配额页面上提高配额。

      2. 打开 Cloud Shell。

        转到 Cloud Shell

      3. 转到工作目录,然后删除部署以清理失败安装产生的虚拟机和永久性磁盘:

        terraform destroy

        当系统提示您批准该操作时,请输入 yes

      4. 重新运行部署。

连接到虚拟机以检查磁盘和 SAP HANA 服务

部署完成后,通过检查主实例主机和一个工作器主机的磁盘和服务,确认磁盘和 SAP HANA 服务是否已正确部署。

  1. 在 Compute Engine“虚拟机实例”页面上,连接到主实例主机的虚拟机和一个工作器主机的虚拟机,方法是分别点击这两个虚拟机实例对应行上的 SSH 按钮。

    转到虚拟机实例

    连接到工作器主机时,请确保未连接到备用主机。备用主机与工作器主机使用相同的命名惯例,但在第一次接管之前,前者的工作器主机后缀编号值最大。例如,如果您有三个工作器主机和一个备用主机,则在第一次接管之前,备用主机的后缀为“w4”。

  2. 在每个终端窗口中,切换到 root 用户。

    sudo su -
  3. 在每个终端窗口中,显示磁盘文件系统。

    df -h

    在主实例主机上,您应该会看到类似如下所示的输出:

    hana-scaleout-w-failover:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G   18M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sdb3                        45G  6.4G   39G  15% /
    /dev/sdb2                        20M  3.0M   17M  15% /boot/efi
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    /dev/mapper/vg_hana_data-data   422G   12G  411G   3% /hana/data/HF0/mnt00001
    /dev/mapper/vg_hana_log-log     128G  7.8G  121G   7% /hana/log/HF0/mnt00001
    tmpfs                            26G     0   26G   0% /run/user/174
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/900
    tmpfs                            26G     0   26G   0% /run/user/1000

    在工作器主机上,请注意 /hana/data/hana/log 目录的装载点不同:

    hana-scaleout-w-failoverw1:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
    tmpfs                            26G     0   26G   0% /run/user/1000

    在备用主机上,除非备用主机接管故障主机,否则系统不会装载数据和日志目录:

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
  4. 在每个终端窗口中,切换到 SAP HANA 操作系统用户。将 SID_LC 替换为您在配置文件中指定的 sap_hana_sid 值。SID_LC 值必须采用小写字母。

    su - SID_LCadm
  5. 在每个终端窗口中,确保 SAP HANA 服务(例如 hdbnameserverhdbindexserver 及其他服务)正在实例上运行。

    HDB info

    在主实例主机上,您应该会看到类似于以下截断示例的输出:

    hana-scaleout-w-failover:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failover:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      25987    25986   0.4      15248       6312 -sh
    hf0adm      26049    25987   0.0      10448       4036  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      26084    26049   0.0      19892       3864      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      22386    22385   0.0      15248       6248 -sh
    hf0adm      19164        1   0.0      13604       3124 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19171    19164   0.0     481188      84340  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failover/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failover/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19193    19171   3.4    9616860    3970304      \_ hdbnameserver
    hf0adm      19583    19171   0.3    4636456     206500      \_ hdbcompileserver
    hf0adm      19586    19171   0.3    4883932     235764      \_ hdbpreprocessor
    hf0adm      19624    19171   5.9    9896896    4193620      \_ hdbindexserver -port 30003
    hf0adm      19627    19171   1.2    7920208    1605448      \_ hdbxsengine -port 30007
    hf0adm      20072    19171   0.5    6825984     531884      \_ hdbwebdispatcher
    hf0adm      15053        1   0.0     590628      33208 hdbrsutil  --start --port 30003 --volume 3 --volumesuffix mnt00001/hdb00003.00003 --identifier 1689854702
    hf0adm      14420        1   0.0     590560      33308 hdbrsutil  --start --port 30001 --volume 1 --volumesuffix mnt00001/hdb00001 --identifier 1689854671
    hf0adm      14155        1   0.1     554820      33320 /usr/sap/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover -D -u hf0adm
    hf0adm      14030        1   0.0      57024      11060 /usr/lib/systemd/systemd --user
    hf0adm      14031    14030   0.0     243164       4036  \_ (sd-pam)

    在工作器主机上,您应该会看到类似于以下截断示例的输出:

    hana-scaleout-w-failoverw1:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw1:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      16442    16441   0.0      15248       6276 -sh
    hf0adm      17317    16442   0.0      10448       4032  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      17352    17317   0.0      19892       3816      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      11873        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11880    11873   0.0     477076      84260  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11902    11880   0.8    7738216     784912      \_ hdbnameserver
    hf0adm      12140    11880   0.4    4245828     199884      \_ hdbcompileserver
    hf0adm      12143    11880   0.4    4758024     235448      \_ hdbpreprocessor
    hf0adm      12176    11880   0.6    6046020     534448      \_ hdbwebdispatcher
    hf0adm      12210    11880   2.0    8363976    1743196      \_ hdbindexserver -port 30003
    hf0adm      10452        1   0.0     525100      33640 hdbrsutil  --start --port 30003 --volume 4 --volumesuffix mnt00002/hdb00004.00003 --identifier 1689855202
    hf0adm      10014        1   0.1     554696      31992 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1 -D -u hf0adm

    在备用主机上,您应该会看到类似于以下截断示例的输出:

    hana-scaleout-w-failoverw4:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw4:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      15597    15596   0.5      15248       6272 -sh
    hf0adm      15659    15597   0.0      10448       4004  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      15694    15659   0.0      19892       3860      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      10285        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10292    10285   0.0     478076      84540  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10314    10292   0.6    7468320     729308      \_ hdbnameserver
    hf0adm      10492    10292   0.3    3851320     191636      \_ hdbcompileserver
    hf0adm      10495    10292   0.3    4493296     227884      \_ hdbpreprocessor
    hf0adm      10528    10292   0.4    5381616     509368      \_ hdbwebdispatcher
    hf0adm       9750        1   0.0     620748      32796 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4 -D -u hf0adm
  6. 如果您使用的是 RHEL for SAP 9.0 或更高版本,请确保虚拟机实例上已安装软件包 chkconfigcompat-openssl11

    如需查看 SAP 提供的详细信息,请参阅 SAP 说明 3108316 - Red Hat Enterprise Linux 9.x:安装和配置

连接 SAP HANA Studio

  1. 从 SAP HANA Studio 连接到 SAP HANA 主实例主机。

    您可以从 Google Cloud 外部的 SAP HANA Studio 实例进行连接,也可以从 Google Cloud 上的实例进行连接。您可能需要允许目标虚拟机和 SAP HANA Studio 之间的网络访问。

    如需在 Google Cloud 上使用 SAP HANA Studio 并允许访问 SAP HANA 系统,请参阅在 Compute Engine Windows 虚拟机上安装 SAP HANA Studio

  2. 在 SAP HANA Studio 中,点击默认系统管理面板上的 Landscape 标签页。您应该会看到类似于以下示例的显示内容。

    SAP HANA Studio 中的“横向”视图的屏幕截图

清理并重试部署

如果上述各部分中的任何部署验证步骤显示安装失败,则必须撤消部署并通过完成以下步骤重试:

  1. 解决所有错误以确保您的部署不会因同一原因再次失败。如需了解如何检查日志或解决配额相关错误,请参阅检查日志

  2. 打开 Cloud Shell;如果已在本地工作站上安装了 Google Cloud CLI,则打开一个终端。

    打开 Cloud Shell

  3. 转到包含用于此部署的 Terraform 配置文件的目录。

  4. 通过运行以下命令删除属于部署的所有资源:

    terraform destroy

    当系统提示您批准该操作时,请输入 yes

  5. 按照本指南前面的说明重试部署。

执行故障切换测试

在确认 SAP HANA 系统已成功部署后,请测试故障切换功能。

以下说明介绍了通过切换到 SAP HANA 操作系统用户并输入 HDB stop 命令来触发故障切换。HDB stop 命令会启动 SAP HANA 的正常关停,并将磁盘与主机分离,从而实现相对快速的故障切换。

如需执行故障切换测试,请执行以下操作:

  1. 使用 SSH 连接到工作器主机的虚拟机。您可以在 Compute Engine 虚拟机实例页面中通过点击每个虚拟机实例对应的 SSH 按钮进行连接,也可以使用自己偏好的 SSH 方法。

    转到虚拟机实例

  2. 切换到 SAP HANA 操作系统用户。在以下命令中,将 SID_LC 替换为您在 Terraform 配置文件中为 sap_hana_sid 参数指定的值。

    su - SID_LCadm
  3. 通过停止 SAP HANA 来模拟故障:

    HDB stop

    HDB stop 命令会启动关停 SAP HANA 的操作,以触发故障切换。在故障切换期间,磁盘会与故障主机分离,然后重新挂接到备用主机。故障主机将重启并成为备用主机。

  4. 在等待一段时间直至接管完成后,使用 SSH 连接到接管故障主机的主机。

  5. 切换到根用户:

    sudo su -
  6. 显示磁盘文件系统信息:

    df -h

    您应该会看到类似于如下内容的输出。请注意,故障主机中的 /hana/data/hana/log 目录现已装载到接管的主机上。

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
  7. 在 SAP HANA Studio 中,打开 SAP HANA 系统的 Landscape 视图以确认故障切换是否成功:

    • 故障切换所涉及的主机的状态应为 INFO
    • Index Server Role (Actual) 列应该会将故障主机显示为新备用主机。

    SAP HANA Studio 中的“横向”视图的屏幕截图

验证 Google Cloud 的 Agent for SAP 的安装

部署虚拟机并安装您的 SAP 系统后,请验证 Google Cloud's Agent for SAP 是否正常运行。

验证 Google Cloud 的 SAP 代理正在运行

如需验证代理是否正在运行,请按照以下步骤操作:

  1. 与主机虚拟机实例建立 SSH 连接。

  2. 运行以下命令:

    systemctl status google-cloud-sap-agent

    如果代理正常运行,则输出包含 active (running)。例如:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

如果代理未在运行,请重启代理

验证 SAP Host Agent 正在接收指标

如需验证基础架构指标是否由 Google Cloud's Agent for SAP 收集并正确发送到 SAP Host Agent,请按照以下步骤操作:

  1. 在您的 SAP 系统中,输入事务 ST06
  2. 在概览窗格中,检查以下字段的可用性和内容,以确保 SAP 与 Google 监控基础架构的端到端设置正确无误:

    • Cloud ProviderGoogle Cloud Platform
    • Enhanced Monitoring AccessTRUE
    • Enhanced Monitoring DetailsACTIVE

为 SAP HANA 设置监控

(可选)您可以使用 Google Cloud 的 Agent for SAP 来监控 SAP HANA 实例。从 2.0 版开始,您可以将代理配置为收集 SAP HANA 监控指标并将其发送到 Cloud Monitoring。借助 Cloud Monitoring,您可以创建信息中心以直观呈现这些指标,并根据指标阈值设置提醒等。

如需详细了解如何使用 Google Cloud 的 Agent for SAP 收集 SAP HANA 监控指标,请参阅 SAP HANA 监控指标收集

启用 SAP HANA 快速重启

Google Cloud 强烈建议为 SAP HANA 的每个实例(尤其是较大的实例)启用 SAP HANA 快速重启。当 SAP HANA 终止但操作系统保持运行时,SAP HANA 快速重启可以减少重启时间。

Google Cloud 提供的自动化脚本会代您将操作系统和内核设置配置为支持 SAP HANA 快速重启。您只需定义 tmpfs 文件系统并配置 SAP HANA。

如需定义 tmpfs 文件系统并配置 SAP HANA,您可以按照手动步骤进行操作,也可以使用 Google Cloud 提供的自动化脚本来启用 SAP HANA 快速重启。如需了解详情,请参阅:

如需了解 SAP HANA 快速重启的完整权威说明,请参阅 SAP HANA 快速重启选项文档

手动步骤

配置 tmpfs 文件系统

成功部署主机虚拟机和基本 SAP HANA 系统后,您需要在 tmpfs 文件系统中创建和装载 NUMA 节点的目录。

显示虚拟机的 NUMA 拓扑

在映射所需的 tmpfs 文件系统之前,您需要知道虚拟机有多少 NUMA 节点。如需显示 Compute Engine 虚拟机上的可用 NUMA 节点,请输入以下命令:

lscpu | grep NUMA

例如,m2-ultramem-208 虚拟机类型有四个 NUMA 节点(编号为 0-3),如以下示例所示:

NUMA node(s):        4
NUMA node0 CPU(s):   0-25,104-129
NUMA node1 CPU(s):   26-51,130-155
NUMA node2 CPU(s):   52-77,156-181
NUMA node3 CPU(s):   78-103,182-207
创建 NUMA 节点目录

为虚拟机中的每个 NUMA 节点创建一个目录,并设置权限。

例如,对于编号为 0-3 的四个 NUMA 节点:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
将 NUMA 节点目录装载到 tmpfs

装载 tmpfs 文件系统目录,并使用 mpol=prefer 为每个目录指定 NUMA 节点首选设置:

SID 使用大写字母指定 SID。

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID
mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID
mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID
mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
更新 /etc/fstab

为了确保装载点在操作系统重新启动后可用,请将条目添加到文件系统表 /etc/fstab 中:

tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,relatime,mpol=prefer:0
tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,relatime,mpol=prefer:1
tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,relatime,mpol=prefer:2
tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,relatime,mpol=prefer:3

可选:设置内存用量限制

tmpfs 文件系统可以动态扩缩。

如需限制 tmpfs 文件系统使用的内存,您可以使用 size 选项设置 NUMA 节点卷的大小限制。例如:

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

您还可以通过设置 global.ini 文件的 [memorymanager] 部分中的 persistent_memory_global_allocation_limit 参数,限制给定 SAP HANA 实例和给定服务器节点的所有 NUMA 节点的总 tmpfs 内存用量。

快速重启的 SAP HANA 配置

要配置 SAP HANA 以使用快速重启,请更新 global.ini 文件并指定要存储在永久性内存中的表。

更新 global.ini 文件中的 [persistence] 部分

配置 SAP HANA global.ini 文件中的 [persistence] 部分以引用 tmpfs 位置。用英文分号分隔每个 tmpfs 位置:

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

上述示例为 4 个 NUMA 节点指定了 4 个内存卷,对应于 m2-ultramem-208。如果您是在 m2-ultramem-416 上运行,则需要配置 8 个内存卷 (0..7)。

修改 global.ini 文件后,重启 SAP HANA。

SAP HANA 现在可以将 tmpfs 位置用作永久性内存空间。

指定要存储在永久性内存中的表

指定要存储在永久性内存中的特定列表或分区。

例如,如需为现有表启用永久性内存,请执行 SQL 查询:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

如需更改新表的默认设置,请在 indexserver.ini 文件中添加参数 table_default。例如:

[persistent_memory]
table_default = ON

如需详细了解如何控制列、表以及哪些监控视图提供详细信息,请参阅 SAP HANA 永久性内存

自动步骤

Google Cloud 提供的用于启用 SAP HANA 快速重启的自动化脚本会更改目录 /hana/tmpfs*、文件 /etc/fstab 和 SAP HANA 配置。运行脚本时,您可能需要执行其他步骤,具体取决于这是 SAP HANA 系统的初始部署,还是需要将机器大小调整为其他 NUMA 大小。

对于 SAP HANA 系统的初始部署或调整机器大小以增加 NUMA 节点的数量,请确保在执行 Google Cloud 提供的用于启用 SAP HANA 快速重启的自动化脚本期间正在运行 SAP HANA。

当您调整机器大小以减少 NUMA 节点的数量时,请确保在执行 Google Cloud 提供的用于启用 SAP HANA 快速重启的自动化脚本期间已停止 SAP HANA。执行脚本后,您需要手动更新 SAP HANA 配置以完成 SAP HANA 快速重启设置。如需了解详情,请参阅用于快速重启的 SAP HANA 配置

如需启用 SAP HANA 快速重启,请按照以下步骤操作:

  1. 与主机虚拟机建立 SSH 连接。

  2. 切换到根用户:

    sudo su -

  3. 下载 sap_lib_hdbfr.sh 脚本:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. 让该文件可执行:

    chmod +x sap_lib_hdbfr.sh
  5. 验证脚本没有错误:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    如果该命令返回错误,请与 Cloud Customer Care 团队联系。如需详细了解如何与 Customer Care 团队联系,请参阅获取 Google Cloud 上的 SAP 支持

  6. 在替换 SAP HANA 数据库的 SYSTEM 用户的 SAP HANA 系统 ID (SID) 和密码后运行脚本。要安全地提供密码,我们建议您在 Secret Manager 中使用 Secret。

    使用 Secret Manager 中的 Secret 名称运行脚本。此 Secret 必须存在于包含主机虚拟机实例的 Google Cloud 项目中。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    替换以下内容:

    • SID:使用大写字母指定 SID。例如 AHA
    • SECRET_NAME:指定与 SAP HANA 数据库的 SYSTEM 用户密码相对应的 Secret 名称。此 Secret 必须存在于包含主机虚拟机实例的 Google Cloud 项目中。

    或者,您可以使用纯文本密码运行脚本。启用 SAP HANA 快速重启后,请务必更改密码。不建议使用纯文本密码,因为密码将记录在虚拟机的命令行历史记录中。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    替换以下内容:

    • SID:使用大写字母指定 SID。例如 AHA
    • PASSWORD:指定 SAP HANA 数据库的 SYSTEM 用户的密码。

如果系统成功运行了初始运行,您应该会看到如下所示的输出:

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

连接到 SAP HANA

请注意,由于此处的说明不使用 SAP HANA 的外部 IP,因此您只能使用 SSH 通过堡垒实例连接到 SAP HANA 实例,或使用 SAP HANA Studio 通过 Windows Server 进行连接。

  • 如需通过堡垒实例连接到 SAP HANA,请使用您选择的 SSH 客户端连接到堡垒主机,然后再连接到 SAP HANA 实例。

  • 如需通过 SAP HANA Studio 连接到 SAP HANA 数据库,请使用远程桌面客户端连接到 Windows Server 实例。连接后,手动安装 SAP HANA Studio 并访问 SAP HANA 数据库。

执行部署后任务

在使用 SAP HANA 实例之前,我们建议您执行以下几个部署后步骤。如需了解详情,请参阅 SAP HANA 安装和更新指南

  1. 更改 SAP HANA 系统管理员和数据库超级用户的临时密码。

  2. 使用最新补丁程序更新 SAP HANA 软件。

  3. 如果 SAP HANA 系统部署在 VirtIO 网络接口上,我们建议您确保 TCP 参数 /proc/sys/net/ipv4/tcp_limit_output_bytes 的值设置为 1048576。此修改有助于提高 VirtIO 网络接口上的总体网络吞吐量,而不会影响网络延迟时间。

  4. 安装任何其他组件,如应用函数库 (AFL) 或智能数据访问 (SDA)。

  5. 如果要升级现有 SAP HANA 系统,请使用标准备份和恢复过程或使用 SAP HANA 系统复制从现有系统加载数据。

  6. 配置和备份新的 SAP HANA 数据库。如需了解详情,请参阅 SAP HANA 操作指南

评估 SAP HANA 工作负载

如需对 Google Cloud 上运行的 SAP HANA 工作负载自动执行持续验证检查,您可以使用 Workload Manager

借助 Workload Manager,您可以根据 SAP、Google Cloud 和操作系统供应商的最佳实践自动扫描和评估 SAP HANA 工作负载。这有助于提高工作负载的质量、性能和可靠性。

如需了解 Workload Manager 支持用于评估 Google Cloud 上运行的 SAP HANA 工作负载的最佳实践,请参阅适用于 SAP 的 Workload Manager 最佳实践。如需了解如何使用 Workload Manager 创建和运行评估,请参阅创建和运行评估

后续步骤