OSS Backint Agent for SAP HANA

更新时间:
复制为 MD 格式

通过 SAP Backint 接口将 SAP HANA 备份数据直接传输到阿里云 OSS。

安装 Agent

  1. 创建配置目录。

    mkdir -p /usr/sap/<SID>/SYS/global/hdb/opt/hdbconfig/

    <SID> 替换为 SAP HANA 系统 ID(SID),例如 HDB

  2. 下载安装脚本。

    curl -O https://gosspublic.alicdn.com/oss-backint/v1/install.sh
  3. 执行安装脚本。

    chmod +x install.sh
    ./install.sh <SID>

    输出示例:<version> has successfully installed.

  4. 验证安装结果。

    /usr/sap/HT1/SYS/global/hdb/opt/hdbbackint -v

    输出示例:#SOFTWAREID "backint 1.06" "ALIBABACLOUD OSS 1.0.4"

配置 Agent

编辑以下配置文件,填写 OSS Bucket、地域和访问凭证:

/usr/sap/<SID>/SYS/global/hdb/opt/hdbconfig/oss-backint-agent.ini

配置示例如下:

[default]
bucket-name = my-hana-backup
region = cn-hangzhou
source-profile = ak-pair

[profile ak-pair]
access-key-id = LTAI5t****
access-key-secret = ****

启用 Backint 备份

<sid>adm 用户登录 SAP HANA,执行以下 SQL 将备份方式切换为 Backint:

-- 将 catalog、data、log 备份的参数文件指向 Agent 配置文件
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('backup', 'catalog_backup_parameter_file') = '/usr/sap/<SID>/SYS/global/hdb/opt/hdbconfig/oss-backint-agent.ini';
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('backup', 'catalog_backup_using_backint') = 'true';
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('backup', 'data_backup_parameter_file') = '/usr/sap/<SID>/SYS/global/hdb/opt/hdbconfig/oss-backint-agent.ini';
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('backup', 'log_backup_parameter_file') = '/usr/sap/<SID>/SYS/global/hdb/opt/hdbconfig/oss-backint-agent.ini';
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('backup', 'log_backup_using_backint') = 'true';

-- 启用持续日志记录,支持基于时间点的恢复
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'log_mode') = 'normal';

参数更改后,需要重启数据库或以 <sid>adm 用户执行以下命令使配置生效:

hdbnsutil -reconfig

验证配置

执行一次测试备份,确认配置正确:

BACKUP DATA USING BACKINT ('oss-backint-agent-test');

如果备份成功,备份数据会出现在 OSS Bucket 的 storage-prefix 路径下(默认前缀为 SAP-HANA-Backint)。关于如何执行日常备份和恢复操作,请参见 SAP HANA Backup and Recovery

更多凭证方式

场景

凭证方式

说明

SAP HANA 运行在 ECS 实例上

ECS RAM 角色(推荐)

无需管理 AccessKey,Agent 从实例元数据获取临时凭证。

跨账号备份

RAM 角色 ARN

通过 STS Token 实现安全的跨账号访问。

容器服务 ACK 集群(已启用 RRSA)

OIDC

通过 OIDC Token 实现 Pod 级别的凭证隔离。

外部密钥管理系统

External Process

通过自定义命令获取凭证。

ECS RAM 角色

如果 SAP HANA 运行在 ECS 实例上,使用 ECS RAM 角色无需管理 AccessKey。请确保 ECS 实例已绑定具有 OSS 访问权限的 RAM 角色。

source-profile = ecsramrole

[profile ecsramrole]
mode = EcsRamRole
# 可选。不设置时自动获取角色名称。
# ecs-role-name = EcsRamRoleHana

RAM 角色 ARN

如果需要将备份数据存储到其他阿里云账号的 OSS Bucket,可以使用 RAM 角色 ARN 进行跨账号授权。

source-profile = ramrolearn

[profile ramrolearn]
mode = RamRoleArn
access-key-id = yourAccessKeyID
access-key-secret = yourAccessKeySecret
role-arn = acs:ram::113511544585****:role/testrole
role-session-name = session_name_example

OIDC

如果 SAP HANA 运行在容器服务 ACK 集群中且已启用 RRSA(RAM Roles for Service Accounts),可以使用 OIDC 认证实现 Pod 级别的凭证隔离。

source-profile = oidcrolearn

[profile oidcrolearn]
mode = OidcRoleArn
oidc-provider-arn = acs:ram::113511544585****:oidc-provider/TestOidcProvider
oidc-token-file-path = OIDCTokenFilePath
role-arn = acs:ram::113511544585****:role/testoidc
role-session-name = TestOidcAssumedRoleSession

External Process

如果组织使用外部密钥管理系统,可以配置 Agent 通过自定义命令获取凭证。命令返回的 JSON 需符合以下格式之一:

长期凭证:

{
  "AccessKeyId": "yourAccessKeyID",
  "AccessKeySecret": "yourAccessKeySecret"
}

临时凭证:

{
  "AccessKeyId": "yourAccessKeyID",
  "AccessKeySecret": "yourAccessKeySecret",
  "Expiration": "2023-12-29T07:45:02Z",
  "SecurityToken": "yourSecurityToken"
}

配置示例:

source-profile = process

[profile process]
mode = Process
credential-process = /path/to/your/credential-script

配置参考

以下表格列出了 Agent 配置文件(oss-backint-agent.ini)支持的所有参数。

参数

说明

bucket-name

(必填)OSS Bucket 名称。

region

(必填)Bucket 所在地域,例如 cn-hangzhou

source-profile

(必填)凭证配置名称。详细信息请参见更多凭证方式

hana-sid

(必填)SAP HANA 系统 ID,由安装脚本自动写入。

endpoint

OSS Endpoint。不设置时根据 region 自动生成公网 Endpoint。如需使用内网 Endpoint,请手动设置,例如 https://oss-cn-hangzhou-internal.aliyuncs.com

storage-prefix

Bucket 中的对象前缀。默认值:SAP-HANA-Backint

object-acl

备份对象的访问控制列表(ACL)。可选值:defaultprivatepublic-readpublic-read-write

object-tagging

备份对象的标签,使用键值对格式,例如 Project=SAP&Environment=Production

object-storage-class

备份对象的存储类型。可选值:StandardIAArchiveColdArchiveDeepColdArchive。使用归档及以下类型时,恢复前需先解冻对象。

server-side-encryption

服务端加密方式。可选值:AES256KMSSM4。使用 KMS 时需同时设置 server-side-encryption-key-id

server-side-data-encryption

数据加密算法。

server-side-encryption-key-id

KMS 托管的用户主密钥(CMK)ID。

addressing-style

Endpoint 寻址方式。可选值:virtualpathcname。默认值:virtual

sign-version

签名算法版本。可选值:v1v4。默认值:v4

read-timeout

读取超时时间,单位为秒。默认值:20

connect-timeout

连接超时时间,单位为秒。默认值:10

retry-times

失败后的最大重试次数。默认值:10

skip-verify-cert

是否跳过 TLS 证书验证。默认值:false

proxy

代理服务器地址。

bind-address

出站连接绑定的本地地址。

page-size

列举操作每页返回的结果数。默认值:100

job

多文件间的并发数。默认值:5

big-file-threshold

分片上传和并行下载的文件大小阈值,单位为字节。默认值:67108864(64 MiB)。

pipe-parallel

管道模式的并发数。默认值:3

pipe-part-size

管道模式的分片大小,单位为字节。单个管道的最大备份文件大小为此值 × 10,000。默认值:6291456(6 MiB),支持最大约 60 GB。如需备份更大的数据库,请增大此值。

备份时的内存峰值估算公式:job × pipe-parallel × pipe-part-size。例如默认配置下:5 × 3 × 6 MiB = 90 MiB。

file-parallel

文件模式的并发数,自动计算,最大为 12。SAP HANA 使用管道模式,此参数不生效。

file-part-size

文件模式的分片大小,单位为字节,自动计算。SAP HANA 使用管道模式,此参数不生效。

shorten-backup-destination-enabled

是否使用较短的 OSS 备份路径。默认值:false
设为 true 时,备份路径从:

oss://<bucket>/<storage-prefix>/<sid>/DB_<user_id>/usr/sap/<sid>/SYS/global/hdb/backint/

缩短为:

oss://<bucket>/<storage-prefix>/<sid>/DB_<user_id>/

log-level

日志级别。可选值:offinfodebug。默认值:off

log-file

日志输出文件路径。设置为 - 时输出到标准输出。