速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

评论

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

淘宝商品详情API返回值:深度挖掘其业务价值

代码忍者

pinduoduo API API 性能测试

云桌面VS传统PC:企业用户该如何取舍

青椒云云电脑

云桌面

一文读懂HyperWorks的耦合求解功能

智造软件

CAE altair hyperworks

数据仓库 Palo 2.0 for Apache Doris 冷热分离原理分析

Baidu AICLOUD

数据仓库 数据仓库服务

Spring Boot3集成 LiteFlow 实现业务流程编排

江南一点雨

活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!

博睿数据

天猫商品描述API返回值中的商品参数对比与竞品分析

技术冰糖葫芦

API 接口 API 文档 API 测试 API 性能测试

Python:条件分支 if 语句全讲解

不在线第一只蜗牛

Python

浙江鲲鹏昇腾产业与人才创新论坛成功举办!

Geek_2d6073

「软件设计哲学」于延保代码改造中的实践

京东科技开发者

阿里云可观测 2024 年 9 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

在Vue3中如何实现四种全局状态数据的统一管理?

不在线第一只蜗牛

JavaScript vue.js 前端

在API 接口的设计中数据的安全性和完整性,该如何保证?

伤感汤姆布利柏

Mac专用投屏工具:AirServer 7 for Mac 激活版

你的猪会飞吗

AIrserver7 Mac软件下载站 AirServer 7 mac激活版

博睿数据Bonree ONE全面适配HarmonyOS NEXT,守护鸿蒙原生应用稳健前行

博睿数据

内核级流量治理引擎Kmesh八大新特性解读

华为云开发者联盟

服务网格 ebpf Sidecar Kmesh

精准监控,高效运营 —— 商品信息实时分析为商家带来新机遇

技术冰糖葫芦

API 接口 API 文档 API 测试 pinduoduo API API 性能测试

拍立淘API返回值在商品数据分析中的应用

代码忍者

pinduoduo API API 性能测试

如何挑选CDN加速器节点网络?

Ogcloud

CDN 网络加速 CDN加速 企业网络加速 CDN网络加速

老韩运维知识解析系列02:深入理解网络监控指标与实战应用

Geek_a83400

Code Review:探索工程实践之道

京东科技开发者

打造你的专属语音助手,基于函数计算托管 CosyVoice 语音模型

阿里巴巴云原生

阿里云 云原生 函数计算

登顶!智源BGE首开国产模型Hugging Face月度下载全球第一

智源研究院

繁星·数智思享会第2期:流程挖掘,全知视角驱动业务增长

望繁信科技

流程挖掘 流程资产 流程智能 望繁信科技 数字换转型

通义灵码 AI 程序员来了!丨阿里云云原生 9 月产品月报

阿里巴巴云原生

阿里云 云原生 通义灵码

什么是iPaaS?iPaaS选型、落地及案例分析

RestCloud

数据集成 应用集成 ipaas

3个步骤轻松集成Push Kit,实现App消息推送

快乐非自愿限量之名

人工智能 深度学习 HarmonyOS

解锁保险新世界-带你走进保险基本法

京东科技开发者

没有方向盘和踏板,特斯拉发布无人驾驶出租车;字节豆包推出 AI 智能体耳机 Ola Friend丨 RTE 开发者日报

声网

基于 Nginx 的大型互联网集群架构与实战方案

EquatorCoco

nginx 架构 运维

软件测试学习笔记丨二叉树:添加练习

测试人

软件测试

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