用于 SAP HANA 安装的 Cloud Storage Backint 代理指南

这些说明介绍了如何安装和配置适用于 SAP HANA 的 Cloud Storage Backint 代理(Backint 代理)。

如需了解 Backint 代理的配置选项,请参阅适用于 SAP HANA 的 Cloud Storage Backint 代理概览

前提条件

您必须先安装 SAP HANA,然后才能安装 Backint 代理。如需在 Google Cloud 上安装 SAP HANA,请参阅 SAP HANA 部署指南

如需了解如何在 Bare Metal 解决方案上安装 SAP HANA,请参阅 Bare Metal 解决方案上的 SAP HANA 规划指南

如果主机虚拟机无法访问互联网,您需要配置专用 Google 访问通道,以便 Backint 代理可以访问 Google Cloud API。如需配置专用 Google 访问通道,请参阅配置专用 Google 访问通道

创建 Cloud Storage 存储桶以进行备份

在配置 Backint 代理之前,您需要创建一个 Cloud Storage 存储分区来保存备份。

如需创建 Cloud Storage 存储桶,请使用 Google Cloud 控制台。

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

  1. 在 Google Cloud 控制台中打开 Cloud Storage 浏览器。

    打开 Cloud Storage 浏览器

  2. 点击创建存储桶

  3. 为您的存储桶命名,然后点击继续

  4. 按照提示选择您的存储分区选项。

  5. 点击创建

  6. 要配置存储桶权限,请点击“权限”标签。默认情况下,您作为存储桶的所有者,拥有存储桶的读写权限。您还可以允许其他主账号访问您的存储桶。

在 SAP HANA 主机上安装 Backint 代理

Backint 代理安装在与 SAP HANA 数据库相同的共享文件系统中。

在 SAP HANA 横向扩容部署中,在 SAP HANA 系统的每个节点上安装 Backint 代理。为了简化管理,您可以将配置文件存储在可供部署中的所有节点访问的共享位置,例如 /hana/shared

  1. 使用 SSH 连接到您的 SAP HANA 主机。如果您的主机是 Compute Engine 虚拟机,您可以在“虚拟机实例”页面中点击虚拟机实例对应的 SSH 按钮,也可以使用自己偏好的 SSH 方法。

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

    sudo su - SID_LCadm
    
  3. 下载并安装 Backint 代理。

    curl -O https://storage.googleapis.com/cloudsapdeploy/backint-gcs/install.sh
    chmod +x install.sh
    ./install.sh
    

    install.sh 脚本会执行以下操作:

    • /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs 中以 JAR 文件的形式安装 Backint 代理。
    • 下载兼容的 Java 运行时环境版本。
    • 设置调用 Backint 代理的 backint 脚本。除非收到 Cloud Customer Care 指示,否则请勿修改 backint 脚本。
    • 完成后,发出一条消息提示您更新 parameters.txt 文件并设置身份验证。 如需了解详情,请参阅配置 Backint 代理和 SAP HANA
  4. 如果您属于以下任一情况,则需要为 Backint 代理创建服务账号:

    • 您需要 Backint 代理使用与主机 Compute Engine 虚拟机所用资源集不同的资源权限。
    • SAP HANA 在裸机解决方案上运行。
    • SAP HANA 不在 Google Cloud 上运行。

    要为 Backint 代理创建服务账号:

    1. 在 Google Cloud 控制台中,转到服务账号页面。

      转到“服务账号”页面

    2. 选择您的 Google Cloud 项目。

    3. 点击创建服务账号

    4. 为服务账号指定名称并提供说明(可选)。

    5. 点击创建并继续

    6. 点击继续以创建没有权限的服务账号。

    7. 根据具体情况授予其他用户访问服务账号的权限。

    8. 点击完成

    9. 在 Google Cloud 控制台中的服务账号页面上,点击您刚创建的服务账号的电子邮件地址。

    10. 在服务账号名称下,点击密钥标签页。

    11. 点击添加密钥下拉菜单,然后选择创建新密钥以创建服务账号密钥

    12. 接受 JSON 作为密钥类型,然后点击创建。私钥已保存到您的计算机。

  5. 将 JSON 密钥文件上传到 SAP HANA 主机。

    • .json 文件存储在 SID_LCadm 用户可以访问的目录中,例如 /usr/sap/SID/home
    • 确保 SID_LCadm 用户有权读取该文件。
  6. 更新 Cloud Storage 存储桶,以向服务账号授予使用存储桶的权限:

    1. 在 Cloud Storage 浏览器中点击您的存储桶名称。

      打开 Cloud Storage 浏览器

    2. 点击权限标签页。

    3. 点击添加主账号

    4. 新的主账号字段中,输入服务账号的完整电子邮件地址。例如:

      backint-test@my-project.iam.gserviceaccount.com

    5. 点击选择角色下拉列表,然后输入 Storage Object Admin。

    6. 点击保存

配置 Backint 代理和 SAP HANA

您可以通过在纯文本配置文件中指定参数来配置 Backint 代理。

您可以为所有备份类型(数据、日志和目录)使用相同的配置,也可以为每种备份类型使用不同的配置,为每个备份类型使用不同的配置。

您可以通过指定 global.ini 文件中的参数来指定 SAP HANA 中每个 Backint 代理配置文件的路径。

  1. 通过在 parameters.txt 文件中指定参数来配置 Backint 代理。您可以根据需要重命名文件。

    1. 使用您的首选方式修改 parameters.txt 文件。该文件安装在以下目录中。

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

      您可以重命名 parameters.txt 文件,并为数据、日志和目录备份使用不同的配置文件。

      如需了解配置参数的说明和性能建议,请参阅 Backint 代理的配置选项

    2. 指定用于备份的 Cloud Storage 存储桶的名称。

      #BUCKET bucket-name
      
    3. 如果您为 Backint 代理创建了服务账号和私钥,请将 JSON 密钥文件的路径添加到。

      #SERVICE_ACCOUNT /path/key-file-name.json

    以下示例展示了有效的 parameters.txt 文件的内容。 请注意,示例中的 # 是语法的一部分,并不表示该行是注释。

    #BUCKET hana-backups
    #DISABLE_COMPRESSION
    #SERVICE_ACCOUNT /usr/sap/ABC/home/example-project-123456-d591d63bba6f.json
  2. 可选:将 Backint 代理配置为在备份和恢复时绕过或使用代理。默认情况下,Backint 代理将绕过 HTTP 代理。

    对实例元数据服务器的查询必须始终绕过 HTTP 代理服务器。根据代理服务器的要求,使用 httphttps 代理参数。

    如需为 Backint 代理指定代理服务器设置,请修改文件 /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/jre/conf/net.properties

    例如,以下配置指定了 HTTPS 代理服务器:

    http.proxyHost=proxy-host
    http.proxyPort=proxy-port
    http.nonProxyHosts=localhost|127.*|[::1]|169.254.169.254|metadata.google.internal
    https.proxyHost=proxy-host
    https.proxyPort=proxy-port
    

    如需详细了解如何将 Backint 代理与代理服务器搭配使用,请参阅代理服务器和 Backint 代理

  3. 配置 SAP HANA 以使用 Backint 代理:

    1. 使用 SAP HANA Studio 或 SAP HANA Cockpit 将 global.ini 配置文件的 backup 部分中的以下参数设置为表中显示的值。进行这些更改后,您无需重启 SAP HANA。

      如果您要为不同类型的备份使用不同的配置文件,请指定下表介绍的不同配置文件。否则,请针对所有类型指定相同的配置文件。

      参数
      catalog_backup_parameter_file /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters-catalog.txt
      catalog_backup_using_backint true
      data_backup_parameter_file /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters-data.txt
      log_backup_parameter_file /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters-log.txt
      log_backup_using_backint true
    2. 使用 SAP HANA Studio 为 global.ini 文件的 persistence 部分中的 basepath_catalogbackupbasepath_logbackup 指定相同的值。例如:

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

  4. 通过在 Cloud Storage 存储桶中创建备份并从备份恢复来测试安装。

  5. 如需支持 Backint 代理自动更新功能,请启用从 SAP HANA 虚拟机到 https://www.googleapis.com/ 的远程 HTTP 请求。

  6. 您也可以选择启用 Cloud Logging。

    • 如果 SAP HANA 在 Compute Engine 虚拟机上运行,请将 com.google.cloud.logging.LoggingHandler 处理程序添加到 /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/logging.properties 文件的 com.google.cloud.partners.handlers 属性。
    • 如果 SAP HANA 在 Google Cloud 之外运行,请安装 Google Cloud CLI 并使用 gcloud auth application-default login 命令配置应用默认登录。

将 Backint 代理更新到新版本

在生产环境中将 Backint 代理更新到新版本之前,请务必在非生产环境中测试新版本。如需了解 Backint 代理提供的版本,请参阅该版本的版本说明

如需将 Backint 代理更新到新版本,请执行以下操作:

  1. 确保在与更新重叠的时间段内没有正在进行或已预定的数据备份。

  2. 通过将 SAP HANA enable_auto_log_backup 参数设置为 no 来停用自动日志备份。如需查看相关说明,请参阅 SAP HANA 文档启用和停用自动日志备份

  3. 启用从 SAP HANA 主机到 https://www.googleapis.com/ 的远程 HTTP 请求。

  4. SID_LCadm 身份在 SAP HANA 主机上安装新版本:

    curl -O https://storage.googleapis.com/cloudsapdeploy/backint-gcs/update.sh
    chmod +x update.sh
    ./update.sh

    update.sh 脚本会执行以下操作:

    • /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs 中安装新版本的 Backint 代理。
    • 更新 backint 脚本以调用新的 Backint 代理版本。
    • 更新 VERSION.txt 中的版本号。
    • update.sh 脚本存储在本地的 /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs 中。
    • 完成后发送消息。

    更新过程不会修改或替换现有 parameters.txt 文件。如需使用新版本中引入的任何新选项,您需要将相应的参数添加到现有 parameters.txt 文件中。

    更新过程会在 /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs 目录中保留早期版本的 Backint 代理,以便您可以在需要时回退到早期版本。

  5. 通过将 SAP HANA enable_auto_log_backup 参数设置为 yes 来启用自动日志备份。如需查看相关说明,请参阅 SAP HANA 文档启用和停用自动日志备份

  6. 监控您的系统是否成功备份。

回退到之前的版本

如果您的新版本的 Backint 代理出现问题,并且 Google Cloud 或 SAP 支持团队建议您回退到之前的版本,您可以通过修改 backint 脚本文件来完成。

您无需移除可能已在 parameters.txt 文件中为新版本添加的任何参数。之前版本的 Backint 代理会忽略来自较新版本的参数。

要回退到之前的版本,请执行以下操作:

  1. SID_LCadm 身份打开 backint 脚本进行修改。例如:

    vi /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/backint
  2. 将 Backint 代理 JAR 文件的名称更改为之前版本的 JAR 文件的名称。

    例如,如果您要从版本 1.0.6 回退到版本 1.0.4,则需要进行如下更改:

    -jar /usr/sap/ABC/SYS/global/hdb/opt/backint/backint-gcs/sap-backint-gcs-1.0.6.jar
    至:

    -jar /usr/sap/ABC/SYS/global/hdb/opt/backint/backint-gcs/sap-backint-gcs-1.0.4.jar

  3. 打开 VERSION.txt 文件进行修改,并指定之前的版本号。这样做的目的是使更新机制了解您运行的是哪个版本。

    vi /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/VERSION.txt
  4. 通过触发备份来测试 Backint 代理。

问题排查

如需排查适用于 SAP HANA 的 Backint 代理的相关问题,请参阅适用于 SAP HANA 的 Backint 代理问题排查

获取 Backint 代理支持

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