部署适用于 SAP NetWeaver 的 Oracle 数据库

本部署指南介绍了如何预配运行 Oracle 数据库所需的资源,以便在 Google Cloud上与基于 SAP NetWeaver 的应用搭配使用。

如需了解如何规划此实现,请参阅规划 SAP NetWeaver 的 Oracle 数据库实现

准备工作

  1. 请参阅规划 SAP NetWeaver 的 Oracle 数据库实现
  2. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Make sure that billing is enabled for your Google Cloud project.

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Install the Google Cloud CLI.
  10. To initialize the gcloud CLI, run the following command:

    gcloud init
  11. 如果您需要 SAP 工作负载根据数据驻留、访问权限控制、支持人员或监管要求运行,则必须创建所需的 Assured Workloads 文件夹。如需了解详情,请参阅 SAP on Google Cloud的合规性和主权控制
  12. 确保您有权访问 Oracle 数据库安装媒体。

创建 VPC 网络

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

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

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

如需设置网络,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 VPC 网络页面。

    转到 VPC 网络页面

  2. 点击创建 VPC 网络
  3. 输入网络的名称

    名称必须遵循命名惯例。VPC 网络使用 Compute Engine 命名惯例。

  4. 对于子网创建模式,选择自定义
  5. 新子网部分,为子网指定以下配置参数:
    1. 输入子网的名称
    2. 对于区域,请选择您要在其中创建子网的 Compute Engine 区域
    3. 对于 IP 栈类型,请选择 IPv4(单栈),然后输入 CIDR 格式的 IP 地址范围,例如 10.1.0.0/24

      这是子网的主要 IPv4 地址范围。如果您计划添加多个子网,请为网络中的每个子网分配互不重叠的 CIDR IP 地址范围。请注意,每个子网及其内部 IP 地址范围都映射到一个区域。

    4. 点击完成
  6. 如需添加更多子网,请点击添加子网,然后重复上述步骤。您可以在创建网络后向网络添加更多子网。
  7. 点击创建

gcloud

  1. 转至 Cloud Shell。

    打开 Cloud Shell

  2. 如需在自定义子网模式下创建新网络,请运行以下命令:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    NETWORK_NAME 替换为新网络的名称。名称必须遵循命名惯例。VPC 网络使用 Compute Engine 命名惯例。

    指定 --subnet-mode custom 可避免使用默认的自动模式,该模式会自动在每个 Compute Engine 区域创建一个子网。如需了解详情,请参阅子网创建模式

  3. 创建一个子网,并指定区域和 IP 地址范围:
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    替换以下内容:

    • SUBNETWORK_NAME:新子网的名称
    • NETWORK_NAME:您在上一步中创建的网络的名称
    • REGION:该子网所在的区域
    • RANGE以 CIDR 格式指定的 IP 地址范围,例如 10.1.0.0/24

      如果您计划添加多个子网,请为网络中的每个子网分配互不重叠的 CIDR IP 地址范围。请注意,每个子网及其内部 IP 地址范围均映射到一个区域。

  4. (可选)重复上述步骤并添加更多子网。

设置 NAT 网关

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

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

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

准备 Oracle Linux 映像

如需准备运行 Oracle 数据库(适用于 SAP 系统)所需的 Oracle Linux 映像,您需要将该映像导入 Google Cloud 项目并安装必要的驱动程序。

如需准备 Oracle Linux 映像,请按以下步骤操作:

  1. 从 Oracle 下载经 SAP 认证可在 Google Cloud上与基于 SAP NetWeaver 的应用搭配使用的 Oracle Linux 映像。

    如需了解 SAP 认证的操作系统版本,请参阅支持的操作系统

  2. 将映像导入 Compute Engine 映像:

  3. 创建自定义操作系统映像:

    1. 使用导入的映像创建一个小型虚拟机,并将实例名称设置为 vm-ol-gvnic

      如需了解具体方法,请参阅通过自定义映像创建实例

    2. 使用 SSH 连接到您的实例。

    3. 安装 gve 驱动程序:

      yum install kernel-uek-modules-extra.x86_64
      echo gve > /etc/modules-load.d/gve.conf
      
    4. 停止实例。

      如需了解如何执行此操作,请参阅停止或重启 Compute Engine 实例

    5. 关闭附加到计算实例的磁盘的默认自动删除行为。这样可以防止在您删除计算实例时启动磁盘被删除。

      gcloud compute instances set-disk-auto-delete vm-ol-gvnic \
         --no-auto-delete \
         --disk=vm-ol-gvnic
    6. 为启动磁盘创建临时映像:

      gcloud compute images create ol-uek-temp \
         --source-disk=vm-ol-gvnic \
         --source-disk-zone=ZONE \
         --storage-location=LOCATION
      

      替换以下内容:

      • ZONE:启动磁盘部署的可用区
      • LOCATION:您要存储图片的 Cloud Storage 位置
    7. 使用您创建的临时映像创建支持 Google 虚拟 NIC (gVNIC) 的启动磁盘映像:

      gcloud compute images create ol-uek-production \
         --source-image=ol-uek-temp \
         --source-image-project=PROJECT_ID \
         --guest-os-features="GVNIC" \
         --storage-location=LOCATION

      替换以下内容:

      • PROJECT_ID:源映像所在的 Google Cloud 项目的项目 ID
      • LOCATION:您要存储图片的 Cloud Storage 位置
    8. 除了启用了 gVNIC 的启动磁盘映像外,删除您在此部分中创建的临时映像和虚拟机:

      gcloud compute images delete ol-uek-temp
      gcloud compute instances delete vm-ol-gvnic --zone=ZONE
      gcloud compute disks delete DISK_NAME --zone=ZONE
      

      替换以下内容:

      • ZONE:启动磁盘部署的可用区
      • DISK_NAME:您要删除的临时虚拟机的启动磁盘的名称

为 Oracle 数据库创建 Compute Engine 实例

创建 Compute Engine 实例时,您可以指定多个选项,例如机器类型、实例的创建区域以及用于存储的额外磁盘。

如需为 Oracle 数据库创建 Compute Engine 实例,请完成以下步骤:

  1. 在 Google Cloud 控制台中,转到 Compute Engine 映像页面。

    转到“映像”

  2. 选择您在上一部分中准备的 Oracle Linux 映像,然后点击创建实例

  3. 名称字段中,输入实例的名称。

    该名称不得超过 13 个字符,因为这是 SAP 支持的最大长度。如需了解详情,请参阅 SAP 备注 611361:SAP ABAP 平台服务器的主机名

  4. 区域可用区字段中,选择要创建实例的区域和可用区。

    选择这些参数时,请务必考虑内部资源和用户的位置,以及您要使用的机器类型的可用性。如需了解如何选择区域和可用区,请参阅方案区域和可用区

  5. 将机器类型更改为某一受支持的机器类型。

    如需了解受支持的机器类型及其永久性磁盘限制,请参阅规划 SAP NetWeaver 的 Oracle 数据库实现

  6. 前往操作系统和存储空间标签页。

  7. 为 Oracle 数据库创建其他磁盘。如需了解需要为哪些驱动器预配磁盘,请参阅部署架构

  8. 如需创建磁盘,请按以下步骤操作:

    1. 额外的存储空间和虚拟机备份下,点击添加新磁盘
    2. 名称字段中,输入磁盘的名称。
    3. 磁盘存储类型字段中,选择空白磁盘
    4. 磁盘类型字段中,选择受支持的磁盘类型。如需了解支持的磁盘类型,请参阅规划指南中的块存储
    5. 大小字段中,设置符合性能要求的值。
    6. 点击保存
    7. 针对您需要预配的每个磁盘重复上述步骤。
  9. 点击创建

为硬盘设置格式并进行装载

  1. 使用 SSH 连接到您的计算实例。
  2. 确保您已将 Hyperdisk 或 Persistent Disk 卷挂接到计算实例,并且这些卷足够大,可以为实例提供高性能存储。
  3. 使用 LVM 为包含所有必需硬盘的逻辑卷的硬盘设置格式并进行装载。

如需了解磁盘驱动器及其分组,请参阅部署架构

准备操作系统

  1. 使用 SSH 连接到您的 Compute Engine 实例。
  2. 根据 Oracle 的建议,请确保停用 Transparent HugePages 功能。

    如需验证这一点,请按以下步骤操作:

    1. 运行以下命令,检查是否已启用 Transparent HugePages 功能:

      cat /sys/kernel/mm/transparent_hugepage/enabled
      
    2. 如果已启用 Transparent HugePages 功能,请运行以下命令将其停用:

      ORIGINAL=$(grep GRUB_CMDLINE_LINUX /etc/default/grub)
      INSERT=" transparent_hugepage=never"
      TARGET=$(printf '%s\n' "$ORIGINAL" | sed -e "s/\"$/$INSERT&/")
      sed -i "s%^GRUB_CMDLINE_LINUX.*$%$TARGET%" /etc/default/grub
      grub2-mkconfig -o /boot/grub2/grub.cfg
      
    3. 重启实例。如需了解如何执行此操作,请参阅重启实例

    如需了解 SAP 提供的有关这些功能的信息,请参阅以下 SAP 说明:

  3. 安装 Oracle 数据库预安装 RPM:

    yum install oracle-database-preinstall-19c
    

    如果您使用的是 Oracle Linux 9,请另行运行以下命令:

    yum in libxcrypt-compat
    

安装 Google Cloud的 Agent for SAP

若要为 Google Cloud上运行的 SAP 系统(包括 SAP NetWeaver、SAP HANA、SAP ASE、SAP MaxDB 等)提供 SAP 支持,需要使用Google Cloud的 Agent for SAP。

在 Compute Engine 实例上安装 Google Cloud的 Agent for SAP 时,对于 SAP Host Agent 指标,代理会整合来自 Cloud Monitoring 和 Compute Engine API 的监控数据,并将这些数据提供给 SAP Host Agent。

如果您使用 Google Cloud提供的以下 RHEL 或 SLES“for SAP”操作系统映像,则 Google Cloud的 Agent for SAP 会与操作系统映像打包在一起:

  • RHEL:所有“for SAP”映像
  • SLES:SLES 15 SP4 for SAP 及更高版本

如需了解 Google Cloud的 Agent for SAP 支持的操作系统,请参阅支持的操作系统

代理的前提条件

在安装 Google Cloud的 Agent for SAP 之前,您需要确保满足以下前提条件。

设置所需的 IAM 角色

Google Cloud的 Agent for SAP 使用的服务账号必须至少具有 Compute Viewer (roles/compute.viewer)Monitoring Viewer (roles/monitoring.viewer)Workload Manager Insights Writer (roles/workloadmanager.insightWriter) 角色。

如需向您的服务账号添加所需的角色,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    转到 IAM

  2. 选择您的 Google Cloud 项目。

  3. 确定要向其添加角色的服务账号。

    • 如果该服务账号不在主账号列表中,则表明还没有为它分配任何角色。点击添加,然后输入该服务账号的电子邮件地址。
    • 如果该服务账号已经在主账号列表中,则表明它已具有角色。点击要修改的服务账号对应的修改按钮。
  4. 从可用角色列表中选择所需角色:

    • Compute Engine > Compute Viewer
    • Monitoring > Monitoring Viewer
    • Workload Manager > Workload Manager Insights Writer
  5. 点击添加保存,将相应角色应用于该服务账号。

启用对 Google Cloud API 的访问权限

Compute Engine 建议将计算实例配置为允许对所有 Cloud API 的所有访问权限范围,并且仅使用实例服务账号的 IAM 权限来控制对 Google Cloud 资源的访问。如需了解详情,请参阅创建使用用户管理的服务账号的虚拟机

如果您限制了对 Cloud API 的访问权限,则 Google Cloud的 Agent for SAP 要求主机 Compute Engine 实例具有以下最小 Cloud API 访问权限范围:

  • Cloud Platform已启用
  • Compute Engine只读
  • Stackdriver Monitoring API只读

如果您是在没有外部 IP 地址的计算实例上运行 SAP 应用,则需要对该计算实例的子网启用专用 Google 访问通道 ,以便 Google Cloud的 Agent for SAP 可以访问 Google API 和服务。如需在子网上启用专用 Google 访问通道,请参阅配置专用 Google 访问通道

安装代理

如需在使用 Oracle Linux 的 Compute Engine 实例上安装 Google Cloud的 Agent for SAP,请按以下步骤操作:

  1. 与计算实例建立 SSH 连接。

  2. 如需安装代理 3.7 版(最新版),请运行以下命令:

    sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM
    [google-cloud-sap-agent]
    name=Google Cloud Agent for SAP
    baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=0
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOM
    sudo yum install google-cloud-sap-agent

验证代理是否正在运行

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

  1. 与您的 Compute Engine 实例建立 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的 Agent for SAP 收集并正确发送到 SAP Host Agent,请按照以下步骤操作:

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

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

安装 Oracle 数据库

获取支持

如有 Google Cloud 基础架构或服务方面的问题,请与 Cloud Customer Care 联系。您可以在 Google Cloud 控制台中的支持概览页面上找到联系信息。如果 Customer Care 确定问题在于您的 SAP 系统,会将您引荐给 SAP 支持。

对于与 SAP 产品有关的问题,请通过 SAP 支持记录您的支持请求。SAP 会评估支持服务工单,如果该问题似乎是 Google Cloud基础设施问题,则 SAP 会将工单转移到其系统中的相应Google Cloud 组成团队:BC-OP-LNX-GOOGLEBC-OP-NT-GOOGLE

支持要求