飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

如何利用 S3 备份 SAP HANA 数据库

  • 2020-03-04
  • 本文字数:4183 字

    阅读完需:约 14 分钟

如何利用 S3 备份 SAP HANA 数据库

概述

在使用 SAP 的系统时,SAP HANA 作为底层的数据库对于支撑整个业务系统是十分重要的。在本篇博客中我们会介绍一下如何利用 AWS S3 服务进行数据库的备份。在利用 S3 进行备份之前,所有的备份文件都会存放在安装有 HANA 实例的 EBS 卷中,结构如下所示:


操作细节

利用 S3 进行备份我们会用到 Incron 作为工具,Incron 除了可以像 Cron 一样根据时间运行命令,还可以根据文件或者目录变化进行触发。因此在本篇博客中我们会监控 /backup 目录来触发备份行为。



假设我们备份文件的路径位/backup, 则目录下文件的详细信息如下:


col 1col 2col 3col 4col 5


  | 计划                       | 本地路径                                                               | 本地保留时间  | S3上保留时间
复制代码


数据备份 | 增量数据备份 – 每天


权量数据备份 – 每周 | System DB: /backup/data/SYSTEMDB


Tenant DB: /backup/data/DB_ | 7 或 15 天 | 依据业务而定日志备份 | 每 15 分钟自动备份 | System DB – /hana/log/SYSTEMDB


Tenant DB – /hana/log/DB_ | 7 或 15 天 | 依据业务而定


注意:实际上在后续的实际操作环节我所用到备份路径为:


/usr/sap/AWS/HDB00/backup/

安装 Incron

确认 Incron 是否已经安装:


Bash


# rpm -qa | grep -i incron
复制代码



如果没有安装,可以利用一下命令安装。


Bash


SLES # zypper install incron
复制代码


如果没有找到 incron,可能首先需要添加安装包库,命令如下:


Bash


zypper addrepo https://download.opensuse.org/repositories/utilities/SLE_12_SP4_Backports/utilities.repo zypper refresh zypper install incron
复制代码

配置 Incron

成功安装后,通过 incrontab -e 命令开始编辑脚本,命令会打开一个编辑器。


incrontab 的命令格式如下


– 想要监控的路径. Incron 不能自动监控子目录,所以我们要指定到具体文件所在的录上。


– This is one of several options:


  • IN_ACCESS,即文件被访问

  • IN_MODIFY,文件被 write

  • IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等

  • IN_CLOSE_WRITE,可写文件被 close

  • IN_CLOSE_NOWRITE,不可写文件被 close

  • IN_OPEN,文件被 open

  • IN_MOVED_FROM,文件被移走,如 mv

  • IN_MOVED_TO,文件被移来,如 mv、cp

  • IN_CREATE,创建新文件

  • IN_DELETE,文件被删除,如 rm

  • IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己

  • IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己

  • IN_UNMOUNT,宿主文件系统被 umount

  • IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)

  • IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)


– 当事件被触发后所运行的命令。可以使用通配符来简化命令


$符号


$@ – 添加监控文件系统路径


$# – 添加事件相关文件名称


$% – 添加事件标记(文字)


$& – 添加事件标记 (数字)


# incrontab -l


利用 root 用户执行此命令查看当前脚本



# incrontab -e


打开编辑模版并将下面四个命令写入


Bash


/usr/sap/AWS/HDB00/backup/data/SYSTEMDB IN_MOVED_TO aws s3 cp $@/$# s3://hanabackup4me$@/$# --sse /usr/sap/AWS/HDB00/backup/data/DB_AWS IN_MOVED_TO aws s3 cp $@/$# s3://hanabackup4me$@/$# --sse /usr/sap/AWS/HDB00/backup/log/SYSTEMDB IN_MOVED_TO aws s3 cp $@/$# s3://hanabackup4me$@/$# --sse /usr/sap/AWS/HDB00/backup/log/DB_AWS IN_MOVED_TO aws s3 cp $@/$# s3://hanabackup4me$@/$# --sse
复制代码


命令解释:


/usr/sap/AWS/HDB00/backup/data/SYSTEMDB 被监控的文件目录,可以根据服务器上备份文件位置不同修改。


IN_MOVED_TO 触发事件,当有文件写入的时候出发命令 ()


aws s3 cp 事件出发后运行的命令


$@/ – /usr/sap/AWS/HDB00/backup/data/SYSTEMDB


$# – COMPLETE_DATA_BACKUP_databackup_0_1


s3://hanabackup4me# – s3://hanabackup4me usr/sap/AWS/HDB00//backup/data/SYSTEMDB/COMPLETE_DATA_BACKUP_databackup_0_1


sse – AWS S3 Server-side encryption


注意:在设置监控前就已经存在的文件不会被写入 S3.

S3 桶策略设置

对于前面提到的 S3 写入操作所需要的权限,我们可以通过将包含有下面策略的角色(IAM Role)绑定给 HANA 所在 EC2 实例来完成,策略大致如下:


Bash


{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListAllBuckets",
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "AllowGetandPut",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::hanabackup4me",
"arn:aws:s3:::hanabackup4me/*"
]
}
]
}
复制代码


监控 Incron 运行情况

可以通过在 /var/log/messages 中查看入下图所示消息来确保 Incron 正常运行



检查 S3 桶中文件


通过 aws s3 ls s3://{bucketname}/{path}/可以产看相应文件

从 s3 恢复文件

通过命令 aws s3 ls s3://bucketname/backup/data/SYSTEMDB/可以取回备份文件并利用相应工具恢复 HANA 数据库

参考文档

https://blogs.sap.com/2019/05/10/hana-backup-recovery-strategy-in-aws/


https://blogs.sap.com/2018/01/22/sap-hana-2.0-server-installation-and-update-by-the-sap-hana-academy/


https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html


作者介绍:郭腾,AWS 中国团队的解决方案架构师,负责基于 AWS 的云计算方案架构咨询和设计。同时致力于 AWS 云服务在国内的应用和推广。在加入 AWS 之前,他曾就职于 SAP,从事技术支持和咨询相关工作。


原文链接:https://amazonaws-china.com/cn/blogs/china/how-to-back-up-hana-database-with-s3/


2020-03-04 20:52977

评论

发布
暂无评论
发现更多内容

在AIGC魔法世界里,你是麻瓜吗?

白洞计划

AIGC

在AIGC魔法世界里,你是麻瓜吗?

脑极体

AI

聊聊 220V交流 过零检测

矜辰所致

电路设计 过零检测 6 月 优质更文活动

华为云数据库GaussDB,无惧“卡脖子”,给世界一个更优选择

轶天下事

用友BIP全球司库十问之大型企业如何管好资金预算?

用友BIP

全球司库

人生三借、成就伟业

科技热闻

【SIGMOD 2023】深度学习弹性数据流水线系统GoldMiner,大幅提升任务和集群效率

阿里云大数据AI技术

人工智能 深度学习 数据库 企业号 6 月 PK 榜

MySQL一个关于derived table的bug描述与规避

GreatSQL

SUFS: 存储资源使用量预测服务

KaiwuDB

KaiwuDB 存储资源使用量预测

商业版数据库断供风险愈发扩大,浅谈GaussDB与国内企业的应对方式

轶天下事

华为云GaussDB:为企业提供智能、高效、安全的数据库解决方案

轶天下事

基于STM32的智能饮水机系统设计

DS小龙哥

6 月 优质更文活动

科勒携多款重磅产品惊艳亮相第27届中国国际厨卫展

科技热闻

2023-06-20:给定一个长度为N的数组arr,arr[i]表示宝石的价值 你在某天遇到X价值的宝石, X价值如果是所有剩余宝石价值中的最小值,你会将该宝石送人 X价值如果不是所有剩余宝石价值中的

福大大架构师每日一题

Go rust 算法、 福大大架构师每日一题

科创西安:秦创原·信创人才培养暨鸿蒙生态产教融合发展论坛举行

坚果

OpenHarmony 6 月 优质更文活动

【TypeScript】TS条件类型

不叫猫先生

typescript 6 月 优质更文活动

Wallys/wifi 6 router ipq8072 enterprise wireless dual band /support wifi6e card

Cindy-wallys

IPQ8072

开发者聚焦 | 不容错过的开发者新专栏就要来啦!

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

向量数据库的行业标准逐渐清晰!Vector DB Bench 正式开源!

Zilliz

非结构化数据 测试工具 Milvus 向量数据库 zillizcloud

谁是蔡崇信?|耶鲁大学QA

B Impact

Idea Mybatis插件:提高CRUD效率

林贻民

MySQL mybatis IntelliJ IDEA

Golden Gate’s (GGX) : 通过多方计算实现跨链一体化

股市老人

C语言编程语法—利用栈实现对后缀表达式的求解

芯动大师

C语言 6 月 优质更文活动

第四课 设计千万级学生管理系统考试试卷存储方案

家有两宝

架构训练营

以创新驱动增长,百度营销助力成人教育机构迎战金秋季

科技热闻

以GaussDB举例,浅谈商业版数据库的断供风险以及国产数据库的重要性

轶天下事

科勒亮相设计上海2023,全方位打造敢创艺术空间

科技热闻

检测客户端访问设备的一种新方法

为自己带盐

.net core 设备检测

SAP UI5 OData 谣言粉碎机:极短时间内发送两个 Odata 请求,前一个会自动被 cancel 掉吗

汪子熙

SAP OData ui5 思爱普 6 月 优质更文活动

如何利用 S3 备份 SAP HANA 数据库_数据库_AWS_InfoQ精选文章