为 SAP HANA 配置基于 Backint 的备份和恢复

本指南介绍如何配置 Google Cloud 的 Agent for SAP,以便为 SAP HANA 执行基于 Backint 的备份和恢复。

如需了解此功能,请参阅适用于 SAP HANA 的基于 Backint 的备份和恢复

如需了解如何使用 Backint 为 SAP HANA 执行备份和恢复操作,请参阅使用 Backint 执行备份和恢复

准备工作

  • 验证已安装 Google Cloud 的 Agent for SAP 3.2 版(最新版)。如需查看相关说明,请参阅适合您的场景的安装指南
  • 如果您已在裸金属解决方案服务器上安装代理,请确保已满足所需的前提条件并设置服务账号。如需查看相关说明,请参阅在 Linux 上配置 Google Cloud 的 Agent for SAP
  • 如果您需要为在 Compute Engine 虚拟机 (VM) 实例或裸金属解决方案服务器以外的主机上运行的 Google Cloud 的 Agent for SAP 实例启用此功能,则您必须在组件 BC-OP-LNX-GOOGLE 中创建一个支持 SAP 的突发事件,以便 SAP 和 Google Cloud 都可以评估您的配置。
  • 安装 SAP HANA:

创建 Cloud Storage 存储桶

在启用 Google Cloud 的 Agent for SAP 的 Backint 功能之前,请确保存在一个用于存储备份的 Cloud Storage 存储桶。如果您有 Cloud Storage 存储桶,则可以跳过本部分。

如需了解如何将备份存储在 Cloud Storage 存储桶中,请参阅将备份存储在 Cloud Storage 存储桶中

要创建 Cloud Storage 存储桶,请执行以下操作:

Google Cloud 控制台

  1. In the Google Cloud console, go to the Cloud Storage Buckets page.

    Go to Buckets page

  2. Click Create bucket.
  3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
    • For Name your bucket, enter a name that meets the bucket naming requirements.
    • For Choose where to store your data, do the following:
      • Select a Location type option.
      • Select a Location option.
    • For Choose a default storage class for your data, select a storage class.
    • For Choose how to control access to objects, select an Access control option.
    • For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
  4. Click Create.

命令行

    Create a Cloud Storage bucket and configure it as follows:
    • STORAGE_CLASS 替换为您偏好的存储类别
    • LOCATION 替换为您偏好的位置(ASIAEUUS
    • BUCKET_NAME 替换为 符合存储桶名称要求的存储桶名称。
    • gcloud storage buckets create gs://BUCKET_NAME --default-storage-class STORAGE_CLASS --location LOCATION

设置 IAM 角色

如需允许 Google Cloud 的 SAP for Agent 为 SAP HANA 执行备份和恢复操作,您必须确保 Compute Engine 虚拟机或裸金属解决方案服务器使用的服务账号包含 IAM 角色 Storage Object Admin (storage.objectAdmin)

如需将此角色添加到您的服务账号,请按以下步骤操作:

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

    转到 IAM

  2. 选择您的 Google Cloud 项目。

  3. 识别要添加角色的服务账号。

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

  5. 点击添加保存,将相应角色应用于该服务账号。

启用对 Cloud API 和元数据服务器的访问权限

在备份和恢复操作期间,Google Cloud 的 Agent for SAP 需要访问以下 Google Cloud IP 地址和主机:

  • 用于访问 Cloud Storage:storage.googleapis.com
  • 用于访问 Compute Engine 虚拟机实例元数据服务器:
    • oauth2.googleapis.com(用于进行身份验证)
    • 169.254.169.254
    • metadata.google.internal

如果 Google Cloud 的 SAP for SAP 和 SAP HANA 系统在无法访问互联网的 Compute Engine 虚拟机上运行,则需要配置专用 Google 访问通道,以便代理可以与 Cloud Storage 交互;如果使用专用服务账号,则可向 Google Cloud 验证自己的身份。如需了解说明,请参阅配置专用 Google 访问通道

启用 Backint 功能

如需启用 Google Cloud 的 Agent for SAP 的 Backint 功能,请完成以下步骤:

  1. 使用 SSH 连接到您的 SAP HANA 主机。

    如果您的主机是 Compute Engine 虚拟机,则可在 Google Cloud 控制台中的虚拟机实例页面针对您的虚拟机实例点击 SSH 按钮,或使用您偏好的 SSH 方法。

  2. 切换到 SAP HANA 系统管理员:

    sudo su - SID_LCadm

    SID_LC 替换为 SID。对于任何字母,请使用小写字母。

    此命令还会设置多个环境变量,包括使用 SAP HANA 数据库 SID 设置的 $SAPSYSTEMNAME

  3. 为 Google Cloud 的 Agent for SAP 启用 Backint 功能:

    /usr/bin/google_cloud_sap_agent installbackint

    或者,如需在具有不同 SID 的主机上安装 Backint 相关文件,请添加 sid 标志:

    /usr/bin/google_cloud_sap_agent installbackint -sid=DIFFERENT_SID_LC

    DIFFERENT_SID_LC 替换为所需 SAP HANA 实例的 SID。对于任何字母,请使用小写字母。

    命令成功运行后,与 Google Cloud 的 Agent for SAP 的 Backint 功能相关的所有文件都将安装在 /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/ 目录中。这包括将代理与 SAP HANA 集成所必需的文件。它还会在主机上检测适用于 SAP HANA 的 Cloud Storage Backint 代理,停用该代理,并将其文件复制到主机上的可恢复目录。如需了解详情,请参阅从 Backint 代理升级

  4. 配置 Backint 功能:

    运行命令

    如需配置代理的 Backint 功能,请运行 configurebackint 命令。我们建议使用此方法,而不是修改 Backint 配置文件。

    /usr/bin/google_cloud_sap_agent configurebackint \
      -f="PATH_TO_PARAMETERS_FILE" \
      -bucket="BUCKET_NAME"

    替换以下内容:

    • PATH_TO_PARAMETERS_FILEPARAMETERS.json Backint 配置文件的路径
    • BUCKET_NAME:指定存储 SAP HANA 备份的 Cloud Storage 存储桶的名称

      您可以选择在运行此命令时设置更多参数。如需了解这些参数,请参阅配置参数

    修改配置文件

    作为运行代理的 configurebackint 命令的替代方法,您可以按如下方式修改 Backint 配置文件:

    1. 打开 Backint 配置文件:

      /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters.json

      SID 替换为安装 Backint 相关文件的 SAP 系统的 SID。

      以下是配置文件所包含内容的示例:

      {
       "bucket": "",
       "log_to_cloud": true
      }
    2. 如需允许 Google Cloud 的 Agent for SAP 为 SAP HANA 系统执行基于 Backint 的备份和恢复操作,请修改配置文件,然后指定以下参数:

      • bucket:指定存储 SAP HANA 备份的 Cloud Storage 存储桶的名称
      • service_account_key:如果您已为 Google Cloud 的 Agent for SAP 创建服务账号,请指定主机上用于上传相应 JSON 编码服务账号密钥的目录的绝对路径

      如需了解详情,请参阅服务账号注意事项

    3. (可选)您可以修改其他配置参数。如需了解这些参数,请参阅配置参数

    4. 保存配置文件。

自定义 Backint 配置文件

(可选)启用 Google Cloud 的 Agent for SAP 的 Backint 功能后,您可以执行以下自定义操作:

  • 重命名 parameters.json 文件。

    为了指明此重命名操作,该文件在 Google Cloud 的 SAP for Agent 文档中称为 PARAMETERS.json

  • 为以下各项创建单独的配置文件:SAP HANA 数据卷、SAP HANA 日志卷和 SAP HANA 备份目录。

    请确保为每个配置文件设置唯一的名称。

  • 将这些配置文件移动到其他目录。例如,在横向扩容部署中,您可以将所有节点的 Backint 相关配置文件存储在可供节点访问的共享目录中。这样,您就可以更轻松地管理这些文件。

如果要执行上述任一自定义操作,请务必为 SAP HANA 的 global.ini 文件中的参数指定适当的文件名和路径。如需查看相关说明,请参阅配置 SAP HANA 以使用 Backint 功能

配置 SAP HANA 以使用 Backint 功能

启用 Google Cloud 的 Agent for SAP 的 Backint 功能后,需要配置 SAP HANA 系统以使用此功能:

  1. 使用 SAP HANA Studio 或 SAP HANA Cockpit 修改 global.ini 配置文件。

  2. global.ini 文件的 backup 部分中,为以下参数指定值:

    参数
    data_backup_parameter_file /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/PARAMETERS_DATA.json
    parallel_data_backup_backint_channels 对于多流处理数据备份,请根据您使用的 Cloud Storage 存储桶类型、所需的性能和磁盘吞吐量指定通道数量。
    log_backup_using_backint 如果要为 SAP HANA 备份日志卷使用单独的配置文件,请指定值 true
    log_backup_parameter_file

    如果要为 SAP HANA 备份日志卷使用单独的配置文件,请指定以下值: /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/PARAMETERS_LOG.json

    PARAMETERS_LOG 替换为用于 SAP HANA 日志卷备份的配置文件的名称。

    catalog_backup_using_backint 如果要为 SAP HANA 备份目录使用单独的配置文件,请指定值 true
    catalog_backup_parameter_file

    如果要为 SAP HANA 备份目录使用单独的配置文件,请指定以下值: /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/PARAMETERS_CATALOG.json

    PARAMETERS_CATALOG 替换为用于 SAP HANA 备份目录备份的配置文件的名称。

    以下是一个 global.ini 文件的示例,该文件配置为使用 Google Cloud 的 Agent for SAP 的 Backint 功能:

    [backup]
    log_backup_using_backint = true
    catalog_backup_using_backint = true
    parallel_data_backup_backint_channels = 16
    catalog_backup_parameter_file = /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters-catalog.json
    data_backup_parameter_file = /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters-data.json
    log_backup_parameter_file = /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters-log.json
  3. global.ini 文件的 persistence 部分中,为以下参数指定值:

    • basepath_logbackup:指定 SAP HANA 无法连接到 Cloud Storage 存储桶时文件系统中 SAP HANA 可用于存储日志备份的目录;确保此目录有足够的空间来存储备份。
    • basepath_catalogbackup:指定 SAP HANA 无法连接到 Cloud Storage 存储桶时文件系统中 SAP HANA 可用于存储 SAP HANA 备份目录的备份的目录;确保此目录有足够的空间来存储备份。

    参数 basepath_catalogbackup 和 basepath_logbackup 在 global.ini 文件的 persistence 部分中显示相同的值

验证备份和恢复

启用 Google Cloud 的 Agent for SAP 的 Backint 功能后,请务必通过在测试系统中创建和恢复备份来验证此功能。

如需进行测试,您可以使用代理的内置自身诊断工具。如需使用此内置工具验证备份和恢复,请运行以下命令:

sudo /usr/bin/google_cloud_sap_agent backint -u=IDENTIFIER -p=PATH_TO_PARAMETERS_FILE -f=diagnose

替换以下内容:

  • IDENTIFIER:可标识命令执行的值。此标识符用于命名在执行诊断时在 Cloud Storage 存储桶中创建的临时文件夹。
  • PATH_TO_PARAMETERS_FILEPARAMETERS.json 文件的路径

如果您在主机上安装了 Backint 代理,则首次使用 Google Cloud 的 Agent for SAP 执行备份操作时,Google Cloud 的 Agent for SAP 会创建 JSON 版本的文本配置文件。如需了解详情,请参阅从 Backint 代理升级

示例配置文件

以下是 Google Cloud 的 Agent for SAP 的 Backint 功能的已完成 PARAMETERS.json 配置文件:

{
  "bucket": "example-bucket-backup",
  "recovery_bucket": "example-bucket-recovery",
  "parallel_streams": 8,
  "service_account_key": "path/to/key/file.json",
  "rate_limit_mb": 100,
  "log_to_cloud": true,
  "log_level": "DEBUG"
}

配置参数

下表说明了 Google Cloud 的 Agent for SAP 的特定于 Backint 功能的配置参数。

如需了解 Backint 代理的配置参数与 Google Cloud 的 Agent for SAP 之间的映射,请参阅配置参数映射

如需了解 Google Cloud 的 SAP for Agent 的配置参数(包括与指标收集相关的参数),请参阅适用于您的场景的安装指南

参数
bucket

String

指定 Google Cloud 的 Agent for SAP 对其执行读取操作的 Cloud Storage 存储桶的名称。代理使用存储桶的存储类创建备份对象,并支持所有存储类别。代理使用 Compute Engine 默认加密来加密静态数据。

recovery_bucket

String

可选。指定代理在 RESTORE 操作期间读取的 Cloud Storage 存储桶的名称。如果未指定此参数,则代理会为以下所有操作使用为 bucket 参数指定的存储桶:BACKUPRESTOREINQUIREDELETEDIAGNOSE 操作。

log_to_cloud

Boolean

可选。如需将 Google Cloud 的 Agent for SAP 的 Backint 相关日志重定向到 Cloud Logging,请指定 true。默认值为 true

如需了解与 Backint 相关的日志文件,请参阅日志记录

log_level

String

可选。指定 Google Cloud 的 Agent for SAP 的 Backint 功能的日志记录级别,设置所需的值。可用的日志级别如下:

  • DEBUG
  • INFO
  • WARNING
  • ERROR

默认值为 INFO。除非有 Cloud Customer Care 的指导,否则请勿更改日志记录级别。

compress

Boolean

可选。指定 Google Cloud 的 SAP for Agent 是否在将备份写入 Cloud Storage 存储桶时启用压缩。默认值为 false

我们建议您不要启用压缩。尽管压缩减少了 Cloud Storage 中备份的存储费用,但它在备份操作期间需要更多的 CPU 处理,并且会减慢有效的备份吞吐量。

无论此参数如何,Google Cloud 的 Agent for SAP 在恢复操作期间都支持已压缩和未压缩的备份文件。

encryption_key

String

可选。指定您已配置 Cloud Storage 存储桶用于加密备份的客户提供的加密密钥的路径。请务必指定 base64 编码的 AES-256 密钥的完全限定路径。

您不能使用 kms_keyparallel_streams 参数指定 encryption_key 参数。

kms_key

String

可选。指定您已配置 Cloud Storage 存储桶用于加密备份的客户管理的加密密钥的路径。使用 projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KMS_KEY_NAME 格式指定路径,其中:

  • KMS_PROJECT_ID:KMS 密钥所在的 Google Cloud 项目的 ID
  • LOCATION:您的 KMS 密钥所在的 Cloud KMS 位置
  • KEY_RING_NAME:包含 KMS 密钥的密钥环的名称
  • KMS_KEY_NAME:KMS 密钥的名称

如果您的 SAP HANA 系统在 Compute Engine 虚拟机上运行,则该密钥必须可供虚拟机访问。如果您的 SAP HANA 系统在 Compute Engine 虚拟机以外的主机上运行,则 Cloud KMS 密钥必须可供 Google Cloud 的 Agent for SAP 使用的服务账号访问。 如需了解详情,请参阅服务账号

您不能使用 encryption_keyparallel_streams 参数指定 kms_key 参数。

folder_prefix

String

可选。指定为 Cloud Storage 存储桶中 Google Cloud 的 Agent for SAP 读写的文件夹设置前缀。您可以使用此参数来整理同一 Cloud Storage 存储桶中不同 SAP HANA 实例的备份。您可以指定单个文件夹(例如 folder1)或多级路径的文件夹(例如 folder1/folder2/folder3)。

此前缀作为文件夹插入 Cloud Storage 中 SAP HANA 备份的路径中的 BUCKET_NAMESID 值之间。如需了解详情,请参阅存储桶中的备份整理

recovery_folder_prefix

String

可选。指定为 RESTORE 操作期间代理读取的 Cloud Storage 存储桶中的文件夹设置前缀。您可以使用此参数来整理同一 Cloud Storage 存储桶中不同 SAP HANA 实例的备份。您可以指定单个文件夹(例如 folder1)或多级路径的文件夹(例如 folder1/folder2/folder3)。

retries

Int

指定 Google Cloud 的 Agent for SAP 在对 Cloud Storage 进行读写操作失败后重试的次数上限。默认值为 5,这也是建议的值。

parallel_streams

Int

可选。指定启用并行上传,并指定 Google Cloud 的 Agent for SAP 可以使用的并行上传流的最大数量。默认值 1 会停用并行上传。最大值为 32。任何超过此上限的值都将限制为 32。

如果要为流式数据启用并行上传,或者您的 Cloud Storage 存储桶具有保留政策,则还必须将 xml_multipart_upload 设置为 true

如果存在以下任一情况,请勿启用并行上传:

  • 目标 Cloud Storage 存储桶使用保留政策。
  • 您已指定 encryption_keykms_key 参数。

如果满足上述任何条件,则代理会退出,并显示 1 状态。如需了解并行上传,请参阅并行上传

xml_multipart_upload

Boolean

可选。指定在将备份写入 Cloud Storage 存储桶时是否使用 XML API 分段上传方法。默认值为 false

如需使用 XML API 分段上传方法,parallel_streams 的值必须大于 1

我们建议仅将 xml_multipart_upload 用于并行处理日志或目录备份。如需并行处理数据备份,我们建议您在 global.ini 文件的 backup 部分中设置 parallel_data_backup_backint_channels

如需了解如何为日志和数据备份创建单独的参数文件,以及如何为 parallel_data_backup_backint_channels 设置值,请参阅配置 SAP HANA 以使用 Backint 功能

如果发生任何失败情况,则系统会自动取消 XML 分段上传,并删除正在上传的数据。我们还建议您为 AbortIncompleteMultipartUpload 设置生命周期条件,以确保在上传操作失败时删除数据。

storage_class

String

可选。指定在将备份写入 Cloud Storage 存储桶时使用的存储类别。可用的存储类别如下所示:

  • STANDARD
  • NEARLINE
  • COLDLINE
  • ARCHIVE

默认值为 STANDARD

rate_limit_mb

Int

可选。指定备份或恢复操作期间 Compute Engine 出站网络带宽的上限(以 MB 为单位)。默认情况下,Google Cloud 不会限制 Google Cloud 的 Agent for SAP 的网络带宽。当您设置此参数时,吞吐量可能会有所不同,但不会超过指定的限制。

service_account_key

String

如果 Google Cloud 的 Agent for SAP 未在 Compute Engine 虚拟机上运行,请指定 JSON 编码的 Google Cloud 服务账号的完全限定路径。如果 Google Cloud 的 SAP for Agent 在 Compute Engine 虚拟机上运行,我们建议您不要指定此参数,而应使用 Compute Engine 默认身份验证。

指定此参数会指示 Google Cloud 的 Agent for SAP 在向 Cloud Storage 进行身份验证时使用服务账号密钥。

threads

Int

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定工作器线程数。默认值为主机中的处理器数量。

file_read_timeout_ms

Int

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定 Google Cloud 的 Agent for SAP 等待打开备份文件的最长时间(以毫秒为单位)。默认值为 60000(60 秒)。

buffer_size_mb

Int

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定此参数来控制备份或恢复操作期间发送到 Cloud Storage 的 HTTPS 请求的大小。默认块大小为 100 MB,这意味着往返 Cloud Storage 的单个 HTTP 请求流将保持开启状态,直到传输了 100 MB 的数据为止。

由于 Google Cloud 的 Agent for SAP 会在操作失败之前多次重试失败的 HTTP 请求,因此小于 100 MB 的缓冲区空间会减少请求失败时需要重新传输的数据。虽然更大的缓冲区空间可以提高吞吐量,但在请求失败时需要更多的内存用量和更多的时间来重新发送数据。

retry_backoff_initial

Int

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定指数退避算法网络重试中使用的重试期的初始值(以秒为单位)。默认值为 10

retry_backoff_max

Int

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定指数退避算法网络重试中使用的重试期的最大值(以秒为单位)。默认值为 300

retry_backoff_multiplier

Float

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定指数退避算法网络重试中使用的重试期的乘数。乘数必须大于 1,默认值为 2

log_delay_sec

Int

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定对 Cloud Storage 存储桶进行读写操作期间进度更新的日志记录延迟时间(以秒为单位)。默认值为 60

client_endpoint

String

这是可选的高级调参。除非收到 Customer Care 指示,否则请勿修改此参数。它的默认值很少需要修改。

指定 Cloud Storage 客户端的端点。默认值为 storage.googleapis.com

问题排查

如需排查 Google Cloud 的 Agent for SAP 3.2 版(最新版)的问题,请参阅 Google Cloud 的 Agent for SAP 问题排查指南

获取支持

如果您在解决 Google Cloud 的 Agent for SAP 的问题时需要帮助,请收集所需的诊断信息并与 Cloud Customer Care 联系。如需了解详情,请参阅适用于 SAP HANA 的 Google Cloud 的 Agent for SAP 诊断信息