本文档中所出现的命令,全部在真实环境中使用。

环境:S4 hana 1809 SP3,  HANA2.0 SP 044 , SUSE Linux Enterprise for SAP Applications 12 SP4

 

2020.2.24 中午我演练了一把生产环境的异机恢复:

1、恢复机的HANA数据库做了一次全备。

2、停下恢复机,扩展了主机内存至192GB。

3、从备份机上拿到凌晨生产机的数据库全备放到恢复机上。

4、用这一份生产机的备份副本恢复HANA数据库。

5、启动SAP服务器验证。

6、再把之前的恢复机数据库恢复还原。

总共用时1个小时,终于我可是说玩转了HANA数据库的备份与恢复,在虚拟机的世界里。

 

 

 

一、HANA数据库的文件备份目录

数据库版本: HANA2.0  SP044

HANA默认安装后,存放备份的位置如图,对数据库做一次全库备份后,

归档日志会不断产生,如果不管理,用不了多久会爆满文件系统。

二、HANA数据库的本地备份、定期清理

全库备份一般在晚上执行,只要有一份全库备份,恢复系统将会很轻松,所以全库备份对系统至关重要的。

数据库归档日志每15分钟产生一次,有了归档日志,数据库可用恢复到指定时间点,所以归档日志备份也是很有必要的。

关于全库定时备份的shell脚本:

S4系统,可以在DB13中定制每天的定时备份。

但我还有一个SAP PO 系统,没有ABAP端,需要加一个脚本每天定时备份。

1、用vi mybackup.sh 新建这个脚本放到/tmp目录下:

hdbuserstore set BACKUP podev:38815 SYSTEM PASSWORD

PREFIX="$(date +"%Y%m%d-%H%M%S")"

hdbsql -U BACKUP "BACKUP DATA USING  FILE ('$PREFIX')"

2、在root下用hanadm用户,crontab -e新建定时执行这个脚本(crontab -l 查看):

0 3 * * *  su - hanadm -c  "sh /tmp/mybackup.sh >> /tmp/backup.log"

3、直接在root下对这个脚本备份执行的结果:

可以看到增加的备份文件,前缀是我想要的“年月日-时分秒”:

关于定期清理的脚本:

这个脚本命令虽然用了rm,但是限定了文件的名称,所以使用上还是比较安全的。

1、crontab定时执行脚本 sh clear7day.sh

0 4 * * *  sh /tmp/clear7day.sh

2、clear7day.sh脚本内容:清理7天前的日志和数据库备份

find /hana/shared/HAN/HDB88/backup/log/SYSTEMDB/log_backup*  -mtime +7 -exec rm -f {} \;
find /hana/shared/HAN/HDB88/backup/log/DB_HAN/log_backup*  -mtime +7 -exec rm -f {} \;

find /hana/shared/HAN/HDB88/backup/data/DB_HAN/*databackup*  -mtime +7 -exec rm -rf {} \;

本地备份策略完成后,有一张很清晰的表:

 

 

三、HANA数据库的远程备份工具和策略(SUSE12 SP4的原生的远程文件同步工具 rsync)

远程备份的策略:

对于单机部署的数据库,如果数据库物理机故障,数据库和本地备份都完蛋了,所以我们还可用加一道屏障:把数据库备份再放一份到其它服务器上。我们找到一台文件系统空间很大的机器,我们在上面发动我们的备份项目,把其它数据库上的本地备份都拉到这一台备份机上。

SUSE远程文件同步工具 rsync:

非常好的事情,安装HANA的SUSE Linux Enterprise for SAP Applications 12 SP4的操作系统,自带远程文件同步工具rsync,

我们不用任何操作就可用使用rsync, 看看它的help:   

Usage: rsync [OPTION]... SRC [SRC]... DEST

 

--------在ERP-DEVpodev文件过来,放到10目录中---------

rsync -avP  192.168.1.10:/hana/shared/HAN/HDB88/backup/  /backup2/otherhost/10

--------ERP-DEV上PRDHANA的文件过来,17目录中---------

rsync -avP  192.168.1.17:/hana/shared/HAP/HDB00/backup/  /backup2/otherhost/17

 

同样,异地备份也需要有一张清晰的表:

最后就是在备份目录怎么自动清理太老的备份了,以免把远程备份的目录涨爆。

 

 

四、轻松的异机恢复

 

TO BE CONTINUE...

 

 

更多推荐