在 Linux 和 Windows 上为 IBM Db2 for SAP 手动部署虚拟机

本部署指南介绍了如何为支持 SAP 应用的 Linux、Unix 和 Windows 版 IBM Db2 系统部署 Google Cloud 资源。

如需使用 Terraform 为支持 SAP 应用的 IBM Db2 实例自动部署 Google Cloud 资源,请参阅在 Linux 上为 IBM Db2 自动部署虚拟机

如需详细了解如何规划您的部署,请参阅 IBM Db2 for SAP 规划指南

前提条件

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

如果您还没有启用了结算功能的 Google Cloud 项目,则必须先创建一个,然后才能部署用于 IBM Db2 安装的虚拟机 (VM)。

如需创建项目,请执行以下操作:

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  5. 确保您的 Google Cloud 项目已启用结算功能

配置 gcloud 命令环境

本部分中的说明使用 Cloud Shell 输入用于部署或配置 Google Cloud 资源的 gcloud 命令。您可在浏览器中通过 Google Cloud 控制台访问 Cloud Shell。

在您每次启动 Cloud Shell 时,Cloud Shell 都会在 Google Cloud 预配的一个虚拟机上运行。第一次使用 Cloud Shell 时,Google Cloud 还会为您创建一个持久性 $HOME 目录;每当您打开 Cloud Shell 时,系统都会恢复该目录。

预配的虚拟机包含最新的 Google Cloud CLI。因此,您在 Cloud Shell 中使用的 gcloud 命令与在本地安装的 gcloud CLI 实例中使用的命令相同。

如果您已安装 gcloud CLI,则可以从本地机器发出在这些说明中使用的 gcloud 命令。但是,使用本地安装的 gcloud CLI 时,您必须始终确保使用的 gcloud CLI 为最新版本。

无论是使用 Cloud Shell 还是 gcloud CLI,您都可以设置和更改 gcloud 命令环境的属性,并将它们保存为“配置”。配置是键值对的集合,它们会影响 gcloud 命令的行为。

您可以对 Cloud Shell 中的配置执行如下一些基本操作:

  • 初始化配置:

    gcloud init
  • 查看当前 gcloud 配置的设置:

    gcloud config list
  • 切换到所需的 Google Cloud 项目。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。

    gcloud config set project PROJECT_ID
  • 设置默认区域。将 REGION 替换为 Google Cloud 区域。

    gcloud config set compute/region REGION
  • 设置默认可用区。将 ZONE 替换为 Google Cloud 可用区。

    gcloud config set compute/zone ZONE
  • 创建新配置。将 NAME 替换为配置的名称。

    gcloud config configurations create NAME

如需详细了解如何使用配置,请参阅管理 gcloud CLI 配置

创建网络

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

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

在部署期间,虚拟机实例通常需要访问互联网来下载 Google Cloud's 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 地址的情况下安全地访问互联网。

添加防火墙规则

默认情况下,系统会屏蔽从 Google Cloud 网络外部传入的连接。如需允许传入的连接,请为您的虚拟机设置防火墙规则。 这些防火墙规则仅适用于新传入虚拟机的连接。在与虚拟机建立连接后,防火墙会允许通过此连接的双向流量。

通过创建防火墙规则,您可以允许对指定端口进行访问,也可以允许同一子网中各虚拟机之间互相访问。

如要允许以下访问,请创建防火墙规则:

  • 访问 SAP NetWeaver 使用的默认端口,具体请参阅所有 SAP 产品的 TCP/IP 端口
  • 从您的计算机或公司网络环境连接到 Compute Engine 虚拟机实例。如果您不确定使用哪个 IP 地址,请与您公司的网络管理员联系。
  • 3 层式、横向扩缩或高可用性配置中的虚拟机之间的通信。例如,如果您要部署 3 层式系统,则子网中应至少有 2 个虚拟机:一个用于 SAP NetWeaver,另一个用于数据库服务器。为启用两个虚拟机之间相互通信,您必须创建防火墙规则以允许来自子网的流量。

如需创建防火墙规则,请执行以下操作:

  1. 在 Google Cloud 控制台中,进入 VPC 网络防火墙页面。

    进入“防火墙”

  2. 点击页面顶部的创建防火墙规则

    • 网络字段中,选择您的虚拟机所在的网络。
    • 目标字段中,选择网络中的所有实例
    • 来源过滤条件字段中,选择下列选项之一:
      • IP 地址范围:用于允许从特定 IP 地址传入的流量。 请在来源 IP 地址范围字段中指定相应 IP 地址范围。
      • 子网:用于允许从特定子网传入的流量。请在下面的子网字段中指定相应子网名称。此选项可用于允许 3 层式或横向扩缩式配置中的各虚拟机之间互相访问。
    • 协议和端口部分,选择指定的协议和端口并指定 tcp:PORT_NUMBER;
  3. 点击创建以创建防火墙规则。

为 Google Cloud 上的 Db2 部署虚拟机

在创建虚拟机时,您可以指定多个选项,包括操作系统、区域、机器类型和永久性磁盘。

如需创建虚拟机,请执行以下操作:

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

    转到“映像”

  2. 要使用公共映像,请从列表中选择一个受支持的映像。SAP 已经认证了 Google Cloud 上 IBM Db2 的以下映像:

    • Red Hat Enterprise Linux 7.4
    • SUSE Linux Enterprise Server 12 SP2 或更高版本
    • Windows Server 2012 R2 及更高版本
  3. 点击创建实例

  4. 为您的虚拟机输入一个名称。该名称不得超过 13 个字符,因为这是 SAP 支持的最大长度。如需了解详情,请参阅《SAP 说明 611361:SAP 服务器的主机名》

  5. 根据内部资源和用户的位置以及要使用的机器类型,为您的虚拟机选择可用区。

    如需详细了解 SAP Netweaver 支持的可用区,请参阅以下指南和 SAP 说明:

  6. 将机器类型更改为某一受支持的机器类型。要查看受支持的机器类型及其永久性磁盘限制,请参阅 IBM Db2 for SAP 规划指南

  7. (可选)在启动磁盘部分中,点击更改。在启动磁盘对话框中,您可以配置启动磁盘的大小和类型。完成启动磁盘的配置后,点击选择以提交更改。

  8. 展开管理、安全、磁盘、网络、单独租用部分。

  9. 管理标签页的可用性政策下,验证是否设置了以下默认值:

    • 为确保 SAP 系统的可用性,请将抢占设置为关闭(推荐)
    • 为确保虚拟机能够在发生维护或故障事件时重启,请将自动重启设置为开启(推荐)
    • 为确保虚拟机在基础架构维护期间迁移到其他硬件,请将主机维护期间设置为迁移虚拟机实例(推荐)
  10. 磁盘标签页上,清除在删除实例时也删除启动磁盘复选框。

接下来,您需要创建一组磁盘卷,以用于存储数据库数据、数据库日志和存储过程。请针对每个磁盘卷执行以下步骤:

  1. 磁盘标签页的额外磁盘下,点击添加新磁盘以添加永久性磁盘以进行存储。
  2. (可选)在名称字段中输入一个名称。
  3. 类型下,选择磁盘类型。
  4. 来源类型下,选择无(空白磁盘)
  5. 指定磁盘大小。磁盘大小取决于 SAP 和 IBM Db2 的要求。请参阅:
  6. 要添加磁盘,请点击完成
  7. 对系统所需的每个磁盘都重复上述步骤。

最后,您需要配置网络详细信息并创建虚拟机:

  1. 网络标签页的网络接口下,选择您之前创建的网络。
  2. SSH 密钥标签页上,选择屏蔽项目范围的 SSH 密钥
  3. 要创建并启动该虚拟机,请点击创建

连接到您的虚拟机

接下来,您需要与您的虚拟机建立连接。

Linux

连接到 Linux 虚拟机的最简单方法是从浏览器通过 Google Cloud 控制台建立连接,或从命令行通过 Google Cloud CLI 建立连接。此外,您也可以使用常用的 SSH 工具连接到 Linux 虚拟机。

或者,您可以为 Linux 虚拟机生成新的密钥对,并将其应用于您的项目,这样您就可以使用第三方工具建立连接,例如在 Windows 工作站上使用 PuTTY 进行连接。如需了解详情,请参阅创建 SSH 密钥

您还可以使用其他配置连接到您的虚拟机。如需获取受支持环境和已知问题的列表,请参阅通过浏览器进行 SSH 连接

控制台

如需在 Google Cloud 控制台中直接通过浏览器使用 ssh 进行连接,请按照以下所述操作:

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。

    转到“虚拟机实例”

  2. 在虚拟机实例列表中,点击要连接的实例所在行中的 SSH

    实例名称旁边的 SSH 按钮。

gcloud

Google Cloud CLI 会在您需要时生成和应用新的项目范围 SSH 密钥,从而为您管理 SSH 密钥。如需通过 gcloud CLI 进行连接,请执行以下操作:

gcloud compute ssh VM_NAME

VM_NAME 替换为虚拟机名称。

现在,您就可以使用终端在您的 Linux 虚拟机上运行命令了。完成操作后,请使用 exit 命令断开与虚拟机的连接。

Windows

要连接到基于 Windows 的虚拟机,您必须首先为该虚拟机生成一个密码,然后使用 RDP 或 PowerShell 连接到该虚拟机。

生成密码

创建 Windows 虚拟机后,您必须先为该虚拟机生成一个密码,然后才能与其建立连接:

  1. 在 Google Cloud 控制台中,前往 Compute Engine 虚拟机实例页面。

    进入“虚拟机实例”

  2. 点击要生成新密码的 Windows 实例。

  3. 实例详情页面上,点击创建或重置 Windows 密码。系统会为您生成一个密码。

  4. 要创建新的用户和密码,请指定一个用户名。

  5. 点击设置。请记下该用户名和密码,以供在登录虚拟机时使用。

使用 RDP

如果您的防火墙规则允许通过端口 3389 进行访问,您可以使用 RDP 连接到 Windows 实例并启动远程桌面会话。或者,您可以使用 PowerShell 终端连接到 Windows 实例

通过 Windows 远程桌面连接客户端或第三方客户端手动连接,从而连接到 Windows 实例上的远程桌面:

  1. 如果您还没有 RDP 客户端,请立即安装一个。如需了解 Microsoft 提供的有关可用 RDP 客户端的信息,请参阅远程桌面客户端
  2. 获取 Windows 虚拟机的外部 IP 地址。如需查找虚拟机 IP 地址,您可以使用以下任一方法:
    • 在 Google Cloud 控制台中,转到虚拟机实例页面。
    • 使用 gcloud CLI 运行 gcloud compute instances list 以列出虚拟机实例及其外部 IP 地址。
  3. 在 RDP 客户端中,提供虚拟机的外部 IP 地址作为要连接的 IP 地址。
  4. 输入您的登录信息,并将网域字段留空。如果这是您第一次连接到该虚拟机,或者如果您忘记了密码,请创建或重置 Windows 密码
使用 PowerShell
  1. 如果您尚未在 Windows 虚拟机上创建用户名和密码,请创建或重置您的 Windows 密码
  2. 添加防火墙规则或修改现有防火墙规则,以在 Windows Server 虚拟机所在的 Google Cloud 网络上打开端口 5986
  3. 在本地工作站上,打开 PowerShell 终端。
  4. (可选)您可以初始化一个变量以保留用户凭据,这样您就无需在每次连接到该实例时输入它们。如果您跳过此步骤,系统之后会提示您输入用户名和密码。

    $credentials = Get-Credential
    
  5. 使用 Enter-PSSession 命令启动远程 PowerShell 会话,然后加入相应标志以使用 SSL 并跳过凭据检查。

    Enter-PSSession -ComputerName [IP_ADDRESS] -UseSSL -SessionOption
    (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials
    

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

接下来,您需要为硬盘设置格式,并将其装载到虚拟机中。

Linux

连接到虚拟机后,请为硬盘设置格式并进行装载。

您可以选择使用 Logical Volume Manager (LVM) 为单个磁盘设置格式,并根据需要将其拆分为多个目录。以下过程分别演示了使用和不使用 LVM 时的具体操作方法。

在不使用 LVM 的情况下为硬盘设置格式并进行装载

要在不使用 LVM 的情况下为硬盘设置格式并进行装载,请执行以下操作:

  1. 在已连接到虚拟机的终端中,创建可用于装载每个设备的目录:

     sudo mkdir -p /db2
     sudo mkdir -p /db2/DBSID
     sudo mkdir -p /db2/DBSID/log_dir
     sudo mkdir -p /db2/DBSID/db2dump
     sudo mkdir -p /db2/DBSID/sapdata
     sudo mkdir -p /db2/DBSID/saptmp
    
  2. 在该终端中,使用 ls 命令标识要装载的磁盘。

    ls /dev/disk/by-id/
    

    您将看到类似如下所示的输出。磁盘 ID 通常包含磁盘名称和一个 google- 前缀或一个 scsi-0Google_ 前缀。本示例使用 google- 形式的 ID。

    google-example-instance
    google-example-instance-db2
    google-example-instance-db2-dbsid
    google-example-instance-db2-dump
    google-example-instance-db2-log-dir
    google-example-instance-db2-sapdata
    google-example-instance-db2-saptmp
    
  3. 为这些磁盘设置格式。如果您使用的是 Db2 V11.1,则建议使用 xfsext4 文件系统,因为它们都支持快速预分配文件系统功能。Db2 V10.5 不支持 xfsext4

    以下命令会将每个磁盘格式化为具有单个 ext3 文件系统但无分区表:

    sudo mkfs.ext3 -F /dev/disk/by-id/google-example-instance-db2
    sudo mkfs.ext3 -F /dev/disk/by-id/google-example-instance-db2-dbsid
    sudo mkfs.ext3 -F /dev/disk/by-id/google-example-instance-db2-dump
    sudo mkfs.ext3 -F /dev/disk/by-id/google-example-instance-db2-sapdata
    sudo mkfs.ext3 -F /dev/disk/by-id/google-example-instance-db2-saptmp
    sudo mkfs.ext3 -F /dev/disk/by-id/google-example-instance-db2-log-dir
    
  4. 将每个磁盘装载到虚拟机:

     sudo mount -o discard,defaults /dev/disk/by-id/google-example-instance-db2 /db2
     sudo mount -o discard,defaults /dev/disk/by-id/google-example-instance-db2-dbsid /db2/DBSID
     sudo mount -o discard,defaults /dev/disk/by-id/google-example-instance-db2-dump /db2/DBSID/db2dump
     sudo mount -o discard,defaults /dev/disk/by-id/google-example-instance-db2-sapdata /db2/DBSID/sapdata
     sudo mount -o discard,defaults /dev/disk/by-id/google-example-instance-db2-saptmp /db2/DBSID/saptmp
     sudo mount -o discard,defaults /dev/disk/by-id/google-example-instance-db2-log-dir /db2/DBSID/log_dir
    
  5. 配置对该设备的读写权限。对于本示例,为所有用户授予对设备的写入权限:

     sudo chmod a+w /db2
     sudo chmod a+w /db2/DBSID
     sudo chmod a+w /db2/DBSID/db2dump
     sudo chmod a+w /db2/DBSID/sapdata
     sudo chmod a+w /db2/DBSID/saptmp
     sudo chmod a+w /db2/DBSID/log_dir
    
  6. 或者,您可以将永久性磁盘添加到 /etc/fstab 文件中,以使该设备在虚拟机重启时自动重新装载。

    指定条目 /etc/fstab 文件时,请加入 nofail 选项,以便即使该磁盘不存在,实例也可以继续启动。例如,如果您截取了启动磁盘的快照,并创建了一个没有挂接任何永久性磁盘的新实例,那么该实例可以继续完成启动过程,而不会无限期地暂停。

  7. 创建 /etc/fstab 条目。使用 blkid 命令查找该设备上文件系统的 UUID,并修改 /etc/fstab 文件以将该 UUID 添加到装载选项中。对于每个硬盘,您只需一条命令即可完成此步骤:

     echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-example-instance-db2` /db2 ext3 discard,defaults,[NOFAIL] 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-example-instance-db2-dbsid` /db2/DBSID ext3 discard,defaults,[NOFAIL] 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-example-instance-db2-log-dir` /db2/DBSID/log_dir ext3 discard,defaults,[NOFAIL] 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-example-instance-db2-dump` /db2/DBSID/db2dump ext3 discard,defaults,[NOFAIL] 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-example-instance-db2-sapdata` /db2/DBSID/sapdata ext3 discard,defaults,[NOFAIL] 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/disk/by-id/google-example-instance-db2-saptmp` /db2/DBSID/saptmp ext3 discard,defaults,[NOFAIL] 0 2 | sudo tee -a /etc/fstab
    

    在本示例中,[NOFAIL] 是一个选项,用于指定系统在无法装载该磁盘时应执行的操作。

  8. 使用 cat 命令验证您的 /etc/fstab 条目内容正确:

    cat /etc/fstab
    

如果您分离了此永久性磁盘,或根据此实例的启动磁盘创建了一个快照,请修改 /etc/fstab 文件并移除此永久性磁盘所对应的条目。即使配置了 nofail 选项,您也应该使 /etc/fstab 文件与附加到该实例的设备保持同步,并在您创建启动磁盘快照之前移除这些条目。

使用 LVM 将驱动器格式化并进行装载

要使用 LVM 为包含所有必需硬盘的逻辑卷的单个磁盘设置格式并进行装载,请执行以下操作:

  1. 确保为硬盘创建的磁盘足够大,可以为所有卷提供其所需的存储空间。例如,在以下过程中,指定的磁盘大小为 100 GB。

  2. 运行 pvscan 以扫描所有磁盘的物理卷:

     sudo mkdir -p /db2
     sudo mkdir -p /db2/DBSID
     sudo mkdir -p /db2/DBSID/log_dir
     sudo mkdir -p /db2/DBSID/db2dump
     sudo mkdir -p /db2/DBSID/sapdata
     sudo mkdir -p /db2/DBSID/saptmp
    
  3. 初始化要供 LVM 使用的磁盘或分区:

    pvcreate /dev/sdb
    
  4. 创建卷组:

    vgcreate vg_db2 /dev/sdb
    
  5. 为每个硬盘创建所需大小的逻辑卷:

    lvcreate -L 8G -n db2 vg_db2
    lvcreate -L 8G -n db2dbsid vg_db2
    lvcreate -L 8G -n db2logdir vg_db2
    lvcreate -L 8G -n db2dump vg_db2
    lvcreate -L 8G -n db2saptmp vg_db2
    lvcreate -L 50G -n db2sapdata vg_db2
    
  6. 为这些卷设置格式。如果您使用的是 Db2 V11.1,则建议使用 xfsext4 文件系统,因为它们都支持快速预分配文件系统功能。Db2 V10.5 不支持 xfsext4

    以下命令会将每个卷格式化为具有单个 ext3 文件系统但无分区表:

    mkfs -t ext3 /dev/vg_db2/db2
    mkfs -t ext3 /dev/vg_db2/db2dbsid
    mkfs -t ext3 /dev/vg_db2/db2logdir
    mkfs -t ext3 /dev/vg_db2/db2dump
    mkfs -t ext3 /dev/vg_db2/db2saptmp
    mkfs -t ext3 /dev/vg_db2/db2sapdata
    
  7. 创建装载点:

    mkdir /db2
    
  8. 将文件系统装载到此装载点:

     sudo mount -o discard,defaults /dev/vg_db2/db2dbsid /db2/DBSID
     mkdir /db2/DBSID/log_dir
     sudo mount -o discard,defaults /dev/vg_db2/db2logdir /db2/DBSID/log_dir
     mkdir /db2/DBSID/db2dump
     sudo mount -o discard,defaults /dev/vg_db2/db2dump /db2/DBSID/db2dump
     mkdir /db2/DBSID/saptmp
     sudo mount -o discard,defaults /dev/vg_db2/db2saptmp /db2/DBSID/saptmp
     mkdir /db2/DBSID/sapdata
     sudo mount -o discard,defaults /dev/vg_db2/db2sapdata /db2/DBSID/sapdata
    

    生成的硬盘类似如下所示:

    Filesystem             1K-blocks    Used  Available  Use%  Mounted
    ...                          ...
    dev/mapper/vg_db2-db2    8378368   32976    8345392    1%  /db2
    dev/mapper/vg_db2-db2    8378368   33024    8345344    1%  /db2/DBSID
    dev/mapper/vg_db2-db2   52403200   32976   52370224    1%  /db2/DBSID/sapdata
    dev/mapper/vg_db2-db2    8378368   32976    8345392    1%  /db2/DBSID/saptmp
    dev/mapper/vg_db2-db2    8378368   32976    8345392    1%  /db2/DBSID/log_dir
    dev/mapper/vg_db2-db2    8378368   32976    8345392    1%  /db2/DBSID/db2dump
    
  9. 或者,您可以将永久性磁盘添加到 /etc/fstab 文件中,以使该设备在虚拟机重启时自动重新装载。

    指定条目 /etc/fstab 文件时,请加入 nofail 选项,以便即使该磁盘不存在,实例也可以继续启动。例如,如果您截取了启动磁盘的快照,并创建了一个没有挂接任何永久性磁盘的新实例,那么该实例可以继续完成启动过程,而不会无限期地暂停。

  10. 创建 /etc/fstab 条目。使用 blkid 命令查找该设备上文件系统的 UUID,并修改 /etc/fstab 文件以将该 UUID 添加到装载选项中。对于每个硬盘,您只需一条命令即可完成此步骤:

     echo UUID=`sudo blkid -s UUID -o value /dev/vg_db2/db2` /db2 ext3 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/vg_db2/db2dbsid` /db2/DBSID ext3 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/vg_db2/db2logdir` /db2/DBSID/log_dir ext3 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/vg_db2/db2dump` /db2/DBSID/db2dump ext3 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/vg_db2/db2saptmp` /db2/DBSID/saptmp ext3 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
     echo UUID=`sudo blkid -s UUID -o value /dev/vg_db2/db2sapdata` /db2/DBSID/sapdata ext3 discard,defaults,nofail 0 2 | sudo tee -a /etc/fstab
    

    在本示例中,[NOFAIL] 是一个选项,用于指定系统在无法装载该磁盘时应执行的操作。

  11. 使用 cat 命令验证您的 /etc/fstab 条目内容正确:

    cat /etc/fstab
    

如果您分离了此永久性磁盘,或根据此实例的启动磁盘创建了一个快照,请修改 /etc/fstab 文件并移除此永久性磁盘所对应的条目。即使配置了 nofail 选项,您也应该使 /etc/fstab 文件与附加到该实例的设备保持同步,并在您创建启动磁盘快照之前移除这些条目。

您还可以按照混合方法,使用 LVM 简化卷大小调整和管理,同时保留单独的永久性磁盘。这样,您就可以截取独立卷的快照,也可以移除一些卷以改为通过 NFS 服务(如 Filestore)或第三方文件共享解决方案(如适用于 Google Cloud 的 NetApp Cloud Volumes 服务)使用共享文件系统。

Windows

连接到 Windows 虚拟机后,请为磁盘设置格式以开始使用它们。此外,您还需要执行以下步骤来配置 Windows 页面文件:

  1. 开始菜单中,搜索“服务器管理器”并将其打开。
  2. 选择文件和存储服务,然后选择磁盘

    服务器管理器

  3. 磁盘对话框中,右键点击第一个非 MBR 磁盘,然后点击新建卷

  4. 使用默认值,并输入磁盘标签。

  5. 进入文件系统设置步骤后,将分配单元大小更改为以下列表中的一个值:

    • 数据库磁盘:32 KB
    • 页面文件:8 KB
    • 其他磁盘:默认值为 4 KB。
  6. 输入卷标签,以使用一个有意义的名称来描述该磁盘。

    “新建卷”向导

  7. 对其他每个磁盘重复上述步骤。

准备操作系统

为硬盘设置格式并进行装载后,请准备操作系统。

Linux

创建虚拟机后,请参阅相关的 SAP 安装说明,并确保您的系统包含指定的软件组件:

Windows

安装数据库服务器

现在,操作系统已配置完毕,接下来您就可以安装 IBM Db2 数据库服务器。

如需了解如何通过 IBM Db2 安装 SAP NetWeaver,请参阅专门针对您的 SAP NetWeaver 系统的安装指南

Linux

要在您的虚拟机上安装 IBM Db2,请执行以下操作:

  1. 与基于 Linux 的虚拟机建立 ssh 连接。
  2. 将 Db2 的完整 SAP 介质集下载或复制到该虚拟机。您可以从 SAP 支持门户下载 SAP 介质集。
  3. 使用 SAP Software Provisioning Manager 安装 IBM Db2 数据库服务器。
  4. 安装 IBM Db2 许可文件。如需详细了解如何安装从 SAP 获取的 Db2 许可,请参阅 SAP 说明 816773 - DB6:安装 SAP OEM 许可

Windows

要在您的虚拟机上安装 IBM Db2,请执行以下操作:

  1. 使用 RDP 或 Windows PowerShell 连接到基于 Windows 的虚拟机。
  2. 将 Db2 的完整 SAP 介质集下载或复制到该虚拟机。您可以从 SAP 支持门户下载 SAP 介质集。
  3. 安装 IBM Db2 数据库服务器。
  4. 安装 IBM Db2 许可文件。如需详细了解如何安装从 SAP 获取的 Db2 许可,请参阅 SAP 说明 816773 - DB6:安装 SAP OEM 许可

安装 Google Cloud 的 SAP 代理

为了提供支持和进行监控,Google Cloud 为在 Compute Engine 虚拟机实例和裸金属解决方案服务器上运行的 SAP 工作负载提供 Agent for SAP

根据 SAP 的要求,为了从 SAP 获取支持以及让 SAP 能够满足其服务等级协议 (SLA),您必须在运行任何 SAP 系统的所有 Compute Engine 虚拟机实例和裸金属解决方案服务器上安装 Google Cloud 的 Agent for SAP。如需详细了解支持前提条件,请参阅“SAP 说明 2456406 - Google Cloud Platform 上的 SAP:支持前提条件”

Google Cloud 的 Agent for SAP 3.2 版(最新版)是 Google Cloud 的 SAP NetWeaver 监控代理版本 2、SAP HANA 监控代理版本 2 和适用于 SAP HANA 的 Cloud Storage Backint 代理的继任版本。因此,除了指标收集之外,Google Cloud 的 Agent for SAP 3.2 版(最新版)还包含可选功能:适用于 SAP HANA 的基于 Backint 的备份和恢复。您可以选择启用这些功能,以便为 SAP 工作负载启用产品和服务(例如 Workload Manager)。

您在安装了 SAP 系统的主机上安装 Google Cloud's Agent for SAP。如需了解如何安装和配置代理、验证安装,以及验证代理按预期运行,请参阅在 Compute Engine 虚拟机实例上安装代理

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

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

执行部署后任务

在使用 IBM Db2 实例之前,我们建议您先执行以下几个部署后步骤:

  1. 使用最新的补丁程序更新 IBM Db2 软件(如果有)。
  2. 安装其他任何组件。
  3. 配置新的 IBM Db2 数据库并进行备份。

如需获取更多的部署后指导信息,请根据您使用的基于 IBM Db2 的 SAP 系统查阅相应安装指南中的“安装后任务”部分。

问题排查

本部分介绍如何更正常见问题。

排查虚拟机连接问题

如果您在通过 ssh 连接到虚拟机时遇到问题,请确保已创建相关防火墙规则,可以在您所使用的 Google Cloud 网络中打开端口 22

对于其他可能的问题,请参阅有关通过浏览器进行 ssh 连接的已知问题