更新时间:2024-07-03 GMT+08:00
分享

使用第三方软件备份SAP HANA

本文主要介绍通过Commvault备份华为云中的SAP HANA。当HANA系统出现故障或业务迁移时,Commvault能帮助用户从OBS快速、轻松地恢复数据,从而为SAP HANA提供企业级数据保护。Commvault的具体操作请参见Commvault官方文档

更多支持SAP HANA Backint接口的第三方备份软件请参见SAP NOTE 2031547

SAP HANA备份架构

图1 SAP HANA备份架构图

图1是一个典型的SAP HANA多节点备份拓扑架构图,在HANA节点服务器上安装Commvault的SAP HANA备份代理模块iDA for SAP HANA,Commvault的备份管理服务器CS管理备份策略和调度备份计划,介质代理服务器MA负责连接OBS对象存储,并将备份数据去重后写入到OBS对象存储中。

对于数据量较大的HANA,Commvault提供了“Storage Accelerator”存储加速功能,可提升备份和恢复性能。

Commvault备份软件的组件如下:

  • 管理服务器(CommServe,即上图中CS)

    CommServe集中管理CommCell中所有软件组件,协调并执行CommCell中所有操作,CommServe包含一个Microsoft SQL Server数据库,用来记录所有的配置信息、安全属性以及操作历史以及Metadata。在一个CommCell中,只能有一个CommServe,CommServe可以安装在物理服务器、虚拟服务器或集群环境中。 华为云中的云服务器推荐如表1所示。

    表1 推荐的云服务器

    规模

    客户端数量

    服务器配置

    云服务器规格

    Small

    25 servers, or 100 virtual machines

    4 CPU cores, 16 GB RAM

    c6.xlarge.4

    Medium

    500 servers, or 1000 virtual machines

    8 CPU cores, 32 GB RAM

    c6.2xlarge.4

    Large

    2500 servers, or 5000 virtual machines

    12 CPU cores, 64 GB RAM

    c6.4xlarge.4

    Xlarge

    10,000 servers, or 20,000 virtual machines

    16 CPU cores, 128 GB RAM

    m3.4xlarge.8

    • 介质代理(MediaAgent,即上图中MA)

      MediaAgent在CommCell中负责管理数据传输,管理数据存储的介质库:磁盘库、磁带库、云存储等。CommServe指挥并协调MediaAgent执行任务,在一个CommCell中可以部署多台MediaAgent来拓展性能,MediaAgent可以安装在物理服务器、虚拟服务器或集群环境中,能支持Window、Linux和Unix操作系统。 华为云中的云服务器推荐如表2所示。

      表2 推荐的云服务器

      规模

      客户端数量

      服务器配置

      后端容量

      云服务器规格

      Xsmall

      5 TB~15 TB

      2 CPU cores, 16 GB RAM

      25 TB

      m6.large.8

      Small

      10 TB~30 TB

      4 CPU cores, 24 GB RAM

      50 TB

      m6.xlarge.8

      Medium

      30 TB~60 TB

      8 CPU cores, 32 GB RAM

      75 TB

      c6.2xlarge.4

      Large

      60 TB~125 TB

      12 CPU cores, 64 GB RAM

      150 TB

      c6.4xlarge.4

      Xlarge

      110 TB~150 TB

      16 CPU cores, 128 GB RAM

      250 TB

      m6.4xlarge.8

    • 客户端(Client,即上图中iDA)

      被保护及被管理的生产服务器称为客户端,通常会在客户端上安装软件代理模块,或为客户端配置一个代理服务器上软件代理模块,来实现数据保护、管理及传输。

如何保护SAP HANA数据库

SAP HANA是内存数据库,数据库运行时,数据都放在内存中,如何备份HANA数据库呢?为了更好理解HANA数据库的备份原理,首先我们分析下HANA数据保护机制。大家都知道当服务器断电时,放在内存里的数据就会全丢失,为了避免这类内存故障,HANA数据库会定时把数据存储到持久性存储(磁盘)上,主要有以下两个机制:

  • 保护点(Savepoint)

    HANA数据库定时会发起保护点操作,默认是5分钟进行一次,保护点操作会把数据库中的数据及Undo信息一起写入到磁盘上,Undo信息中包含了未提交的事务。HANA系统能从保护点进行完全恢复。

  • 重做日志(Redo)

    数据库的事务也会记录在内存中的Redo日志缓存中,默认Redo缓存为1MB,当事务被提交或当日志缓存写满时,HANA数据库会把缓存中的Redo日志写到磁盘上。利用Redo日志,可以把HANA数据库恢复到保护点后的某一个时间点。

利用持久性存储,HANA可以防止任何内存故障,但一旦持久性存储发生故障,HANA数据仍然会被破坏而无法恢复。需要利用备份来保护持久性存储上的数据,把持久性存储上的数据备份到外部存储上,这样才能达到数据保护目的。在数据备份时先会触发一个保存点(Savepoint),确保持久性存储上的数据具有数据库一致的映像,确保数据库可恢复。目前,SAP数据备份支持在线全备份、增量备份、差量备份。备份过程不具备中断再续的能力,如果备份过程中发生错误,整个数据库备份将从头再来。

持久性存储上的Redo日志也需要备份到外部存储上,如果持久性存储上的日志不备份,日志是不能被删除的,大量的日志会把日志存储区填满,导致数据库被锁起来。图2是数据备份和日志备份的示意图。

图2 数据备份和日志备份示意图

SAP HANA数据库备份及恢复策略

对SAP HANA数据库可以进行全备份、增量备份、差量备份和日志备份。备份策略可按图3进行编排。

图3 备份策略
  • 全备份

    全备份是备份数据库数据卷上的所有数据,一般放在周末进行,对系统影响比较小。

  • 增量备份

    增量备份收集了上次任何备份后的数据,在一天当中可以进行多次增量备份,比如可以在早上、中午、晚上结算前进行增量备份。

  • 差量备份

    差量备份收集了上次全备份后的变化数据,一般在每天晚上结算后进行。

  • 日志备份

    对数据卷的备份可以是手动或按备份计划进行,而日志的备份都是自动进行的,默认情况下,每15分钟做一次日志备份,当然备份的频率是可根据用户的需求进行调整的。

    日志备份非常重要,如果持久性存储上的日志不备份,日志是不能被删除的,大量的日志会把日志存储区填满,导致数据库被锁起来。

    Commvault在SP16以后默认情况下,SAP HANA代理将所有数据库服务中的日志文件备份为每6小时一次持久日志备份作业。可以集中持续的将所有服务的日志统一备份,减少备份作业的数量。

可以利用备份,把SAP HANA数据库恢复到某一个时间点,恢复的次序是:

  1. 恢复最后全备份。
  2. 恢复最后差量备份。
  3. 恢复接下来的所有增量备份。
  4. 恢复接下来的日志备份。
    • 恢复到最新:如果Log区中的日志没有丢失,数据将没有损失。
    • 恢复到指定的时间点:逻辑错误会导致最新数据是不正确的,因此需要恢复到以前某一个时间点。

图4中,恢复一个全备份,最近的差量备份(D3)和最新的一个增量备份(I4),再进行一个日志前滚操作,就能完成数据的最新恢复。

图4 数据恢复

重复数据删除管理

随着HANA数据快速增长,以及企业要求备份和恢复的时间点越来越多,保存数据的成本也变得越来越严重。研究发现,SAP HANA备份数据中的数据中高达60%是冗余的,重复率很高,随着时间的推移,重复数据越来越多。为了缓解存储系统的空间增长问题,缩减数据占用空间、降低成本,最大程度地利用已有资源,重复数据删除已成为存储领域一个热门的技术。一方面,利用重复数据删除技术可以对存储空间的利用率进行优化,消除分布在存储系统中的相同文件或者数据块。另一方面,利用重复数据删除技术可以减少在网络中传输的数据量,进而降低能量消耗和网络成本,并为数据复制大量节省网络带宽。

Commvault将源端和目标端重复数据删除功能完全集成到统一数据管理平台中,在将备份数据通过网络发送到服务器和存储器之前,先在源端进行重复数据删除,以消除冗余的数据。Commvault重复数据删除,实现了更短的备份窗口、更低网络带宽占用、更低的存储成本以及更可靠的数据保护。

Commvault采用基于数据块级别的重复数据删除技术,利用SHA 512 (Secure Hash Algorithm)算法来比对数据块是否重复,SHA512是目前为止最为安全的散列算法。Commvault具有内容感知功能,智能切割备份/归档数据块,快速识别备份/归档数据中的相同数据块,并确保相同数据块在存储设备上只保留一次。

Commvault去重主要由MediaAgent来负责管理,MediaAgent管理3个部分:

  • 去重数据库

    去重数据用来比对数据块的哈希值,去重数据库的性能,会影响重复数据删除的性能。建议采用高IO磁盘存储,例如:华为云中的超高IO云硬盘。

  • 备份/归档索引

    记录数据块的逻辑与物理位置信息,通过索引,可以知道一个数据文件由那些数据块所组成,要利用索引来进行数据恢复,数据恢复并不需要访问去重数据库。建议采用高IO磁盘存储,例如:华为云中的超高IO云硬盘。

  • 去重数据存储空间

    用于存放去重的物理数据块,通常是大容量的通用磁盘存储,可以是云存储、DAS、SAN或NAS磁盘存储设备。云中建议采用S3存储,如:华为云中的对象存储服务OBS。

Commvault的DDB数据库是MemDB(主存数据库)。MemDB能提供更高的性能,但MemDB最好存放在SSD磁盘上或其他高速磁盘上。一个DDB数据库,可根据用户的环境,选择不同的配置,具体如表3所示。

表3 DDB数据库配置

规模

前端容量

DDB数据库

后端容量

并发流数

Xsmall

5 TB~15 TB

200 GB

25 TB

25

Small

10 TB~30 TB

400 GB

50 TB

50

Medium

30 TB~60 TB

600 GB

75 TB

100

Large

60 TB~125 TB

1.2 TB

150 TB

200

Xlarge

110 TB~150 TB

2 TB

250 TB

300

Storage Accelerator

客户端计算机将数据备份到云存储时,软件将通过MediaAgent路由数据。因此,客户端计算机首先将数据发送给MediaAgent,然后MediaAgent将数据发送给云存储库。使用客户端存储加速器“Storage Accelerator”可以加快备份过程,直接将数据发送到配置的云存储库,具体如图5所示。

对于运行在云中的SAP HANA系统,这是一个非常有用的特性。对于大型单节点HANA系统,它允许从集中的介质管理服务器分流数据流,对于多节点HANA系统,随着节点数量的增加,它提供接近线性的可伸缩性。

图5 Storage Accelerator备份流程

多副本管理

利用Commvault平台能轻松实现多副本管理,比如做D2C2C备份,或D2C2T备份。把备份副本复制到云存储或本地数据中心的磁带库上。

Aux Copy(辅助拷贝)是备份数据的复制操作,把数据从一个副本复制到另外一个副本,用于创建多副本或DR(灾难恢复)备份。

图6 多副本复制

辅助拷贝可实现不同介质之间的数据复制,去重副本的辅助拷贝,称为DASH Copy,仅复制新的数据块。存储策略中含三种类型副本:

  • Primary

    主副本,备份操作时,数据先只能写入主副本。

  • Synchronous

    同步副本,利用AuxCopy产生的次级副本,数据内容与主副本完全相同。

  • Selective

    选择副本,利用AuxCopy产生的次级副本,数据内容只选择全备份数据。

相关文档