通过 SAP Backint 接口将 SAP HANA 备份数据直接传输到阿里云 OSS。
安装 Agent
创建配置目录。
mkdir -p /usr/sap/<SID>/SYS/global/hdb/opt/hdbconfig/将
<SID>替换为 SAP HANA 系统 ID(SID),例如HDB。下载安装脚本。
curl -O https://gosspublic.alicdn.com/oss-backint/v1/install.sh执行安装脚本。
chmod +x install.sh ./install.sh <SID>输出示例:
<version> has successfully installed.验证安装结果。
/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 = EcsRamRoleHanaRAM 角色 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_exampleOIDC
如果 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 = TestOidcAssumedRoleSessionExternal 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)支持的所有参数。
参数 | 说明 |
| (必填)OSS Bucket 名称。 |
| (必填)Bucket 所在地域,例如 |
| (必填)凭证配置名称。详细信息请参见更多凭证方式。 |
| (必填)SAP HANA 系统 ID,由安装脚本自动写入。 |
| OSS Endpoint。不设置时根据 |
| Bucket 中的对象前缀。默认值: |
| 备份对象的访问控制列表(ACL)。可选值: |
| 备份对象的标签,使用键值对格式,例如 |
| 备份对象的存储类型。可选值: |
| 服务端加密方式。可选值: |
| 数据加密算法。 |
| KMS 托管的用户主密钥(CMK)ID。 |
| Endpoint 寻址方式。可选值: |
| 签名算法版本。可选值: |
| 读取超时时间,单位为秒。默认值: |
| 连接超时时间,单位为秒。默认值: |
| 失败后的最大重试次数。默认值: |
| 是否跳过 TLS 证书验证。默认值: |
| 代理服务器地址。 |
| 出站连接绑定的本地地址。 |
| 列举操作每页返回的结果数。默认值: |
| 多文件间的并发数。默认值: |
| 分片上传和并行下载的文件大小阈值,单位为字节。默认值: |
| 管道模式的并发数。默认值: |
| 管道模式的分片大小,单位为字节。单个管道的最大备份文件大小为此值 × 10,000。默认值: 备份时的内存峰值估算公式:job × pipe-parallel × pipe-part-size。例如默认配置下:5 × 3 × 6 MiB = 90 MiB。 |
| 文件模式的并发数,自动计算,最大为 12。SAP HANA 使用管道模式,此参数不生效。 |
| 文件模式的分片大小,单位为字节,自动计算。SAP HANA 使用管道模式,此参数不生效。 |
| 是否使用较短的 OSS 备份路径。默认值: 缩短为: |
| 日志级别。可选值: |
| 日志输出文件路径。设置为 |