九游平台/ 云备份 cbr/ / / 通过自定义脚本实现sap hana一致性备份
更新时间:2025-02-27 gmt 08:00

通过自定义脚本实现sap hana一致性备份-九游平台

本章节以suse 11 sp4 for sap操作系统下hana 2.0单机版为例,介绍如何通过自定义脚本来冻结、解冻hana数据库,以实现对hana数据库的数据库备份。

场景介绍

某企业购买了云服务器,并在上面安装了hana 2.0单机版数据库,用于存放业务数据,随着数据量的增加,之前的崩溃一致性保护已经满足不了rto、rpo的要求,决定采用应用一致性备份,减小rto与rpo。

数据准备

表1 数据准备

准备项

说明

示例

hana用户名

连接hana systemdb 数据库时使用的用户名

system

hana密码

连接hana systemdb 数据库时使用的密码

example@123

hana实例编号

连接hana数据库时使用的实例编号

00

hana sid

连接hana数据库时使用的sid

wxj

详细步骤

  1. 加密hana用户密码,供自定义脚本使用
    1. 登录hana服务器,输入cd /home/rdadmin/agent/bin/ ,进入agent目录。
    2. 执行/home/rdadmin/agent/bin/agentcli encpwd,回显如下:
      enter password:

      输入hana用户的密码,并按“enter”,屏幕上就会打印出加密后的密码,将其复制到剪贴板中。

      冻结解冻脚本中配置的明文密码长度不超过16位,否则配置后密码会被截断,应用一致性备份会失败

      执行cd /home/rdadmin/agent/bin/thirdparty/ebk_user ,进入自定义脚本目录,执行vi hana_freeze.sh ,打开hana示例冻结脚本。

  2. 将下图所示的hana_user hana_password instance_number db_sid修改为实际值,其中hana_password 为步骤1的屏幕输出。

    也可以使用sed命令来直接进行修改:

    sed -i 's/^hana_user=.*/hana_user="xxx"/' hana_freeze.sh hana_unfreeze.sh ,其中xxx为数据库用户名。

    sed -i 's/^hana_password=.*/hana_password="xxx"/' hana_freeze.sh hana_unfreeze.sh ,其中xxx为步骤1中打印出的密码。

    sed -i 's/^instance_number=.*/instance_number="xxx"/' hana_freeze.sh hana_unfreeze.sh ,其中xxx为数据库实例编号。

    sed -i 's/^db_sid=.*/db_sid="xxx"/' hana_freeze.sh hana_unfreeze.sh ,其中xxx为数据库sid。

    此操作会同时修改冻结解冻脚本,所以无需再执行步骤3

  3. 执行vi hana_unfreeze.sh ,打开hana示例解冻脚本,修改此脚本中的用户名、密码、实例编号与sid

    hana_freeze.shhana_unfreeze.sh脚本实现了基本的数据库冻结与解冻操作,如果您在冻结、解冻时有其它额外步骤需要执行,可以自行在其中进行修改。详细说明请参见 通过自定义脚本实现其它linux应用的一致性备份

    冻结sap hana数据库时,按照sap官方建议,需要冻结data卷的xfs文件系统,否则可能出现数据不一致的问题。在此示例脚本中,将会查询出hana使用的data卷挂载点,并用xfs_freeze 命令进行冻结。

    如果hana系统未按照sap官方建议使用一个独立分区来存放data卷数据,而是与系统卷共用一个分区,则请修改hana_freeze.sh脚本,注释掉xfs_freeze相关行,防止整个系统都被冻结,但此时可能出现备份数据不一致的问题。

相关文档

网站地图