写点什么

如何利用 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:52861

评论

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

一文详解 BRC20 衍生品协议 Bitcat,铭文市场长期发展的助推器

鳄鱼视界

图像处理AI软件推荐:Topaz Photo AI 激活直装版

胖墩儿不胖y

Mac软件 图像处理工具

INFINI Labs 产品更新 | Easysearch 新增快照搜索功能,Console 支持 OpenSearch 存储

极限实验室

console easysearch

生成式AI给我们带来的影响

月下独酌

大模型

为开发者服务,让梦想成为可能|孙文龙理事长发表专题演讲

开放原子开源基金会

Java 开源 程序员 开发者 算法

APIitem_get:你的淘宝商品详情搜索神器

技术冰糖葫芦

API 接口

PWM 调光的线性降压 LED 恒流驱动器

梦笔生花

Vue 2 即将停止更新

南城FE

JavaScript Vue 前端开发

数据库:mysqldump用法详解

百度搜索:蓝易云

MySQL Linux 运维 mysqldump 云服务器

【PHP】thinkPHP6中的MVC思想的小案例

Geek_Angel

php mvc thinkphp6

一文详解 BRC20 衍生品协议 Bitcat,铭文市场长期发展的助推

威廉META

拼多多ID取商品详情API:电商行业的秘密武器与实时数据获取的智慧之路

Noah

C 语言教程:数据类型和格式说明符

小万哥

c 程序员 软件 后端 开发

系统综合清理优化推荐 MacCleaner 3 Pro 激活中文版

mac大玩家j

系统优化 Mac软件 系统优化工具

小红书商品详情API:电商助力

Noah

开放原子云社区正式成立

开放原子开源基金会

Java 开源 程序员 开发者 算法

开源漏洞共享平台及安全奖励计划正式发布

开放原子开源基金会

Java 开源 程序员 开发者 算法

MacCleaner 3 Pro中文激活:Mac电脑强大的清理优化软件

胖墩儿不胖y

优化软件 Mac软件推荐 系统优化工具

体育直播程序源代码降低搭建门槛,低成本建体育赛事平台成为行业常态

软件开发-梦幻运营部

敏捷任务拆解、工作量评估和指派

laofo

Scrum 敏捷 敏捷开发 研发效能 持续交付

图说技术:我的技术文章配图实践经验

Java 工程师蔡姬

技术人 21 天技术人写作行动营

软件开发

Geek_8da502

GaussDB整体性能慢分析教程。

百度搜索:蓝易云

云计算 Linux 运维 GaussDB 云服务器

Cilium CNI深度指南

俞凡

Kubernetes 云原生 网络 通信

如何使用 NFTScan NFT API 在 Viction 网络上开发 Web3 应用

NFT Research

NFT NFT\ NFTScan

OpenHarmony创新赛圆满收官:引领开源趋势,开启创新技术新纪元

新消费日报

开放原子开源基金会与9个开源项目举行捐赠签约仪式

开放原子开源基金会

Java 开源 程序员 开发者 算法

单口千兆以太网物理层芯片

梦笔生花

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