概述
在使用 SAP 的系统时,SAP HANA 作为底层的数据库对于支撑整个业务系统是十分重要的。在本篇博客中我们会介绍一下如何利用 AWS S3 服务进行数据库的备份。在利用 S3 进行备份之前,所有的备份文件都会存放在安装有 HANA 实例的 EBS 卷中,结构如下所示:
操作细节
利用 S3 进行备份我们会用到 Incron 作为工具,Incron 除了可以像 Cron 一样根据时间运行命令,还可以根据文件或者目录变化进行触发。因此在本篇博客中我们会监控 /backup 目录来触发备份行为。
假设我们备份文件的路径位/backup, 则目录下文件的详细信息如下:
数据备份 | 增量数据备份 – 每天
权量数据备份 – 每周 | 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
如果没有安装,可以利用一下命令安装。
Bash
如果没有找到 incron,可能首先需要添加安装包库,命令如下:
Bash
配置 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 事件出发后运行的命令
$@/ – /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
监控 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://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/
评论