
# 使用第三方软件备份SAP HANA
本文主要介绍通过Commvault备份华为云中的SAP HANA。当HANA系统出现故障或业务迁移时，Commvault能帮助用户从OBS快速、轻松地恢复数据，从而为SAP HANA提供企业级数据保护。Commvault的具体操作请参见[Commvault官方文档](https://www.commvault.com/cn/platform/backup-and-recovery)。
更多支持SAP HANA Backint接口的第三方备份软件请参见[SAP NOTE 2031547](https://launchpad.support.sap.com/#/notes/2031547)。
#### SAP HANA备份架构
图1SAP HANA备份架构图
![](https://support.huaweicloud.com/backup-sap/zh-cn_image_0254959435.png)
[图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数据备份和日志备份示意图
![](https://support.huaweicloud.com/backup-sap/zh-cn_image_0254943010.png)
#### SAP HANA数据库备份及恢复策略
对SAP HANA数据库可以进行全备份、增量备份、差量备份和日志备份。备份策略可按[图3]进行编排。
图3备份策略   
![](https://support.huaweicloud.com/backup-sap/zh-cn_image_0254943107.png)
- **全备份**
  全备份是备份数据库数据卷上的所有数据，一般放在周末进行，对系统影响比较小。
  
- **增量备份**
  增量备份收集了上次任何备份后的数据，在一天当中可以进行多次增量备份，比如可以在早上、中午、晚上结算前进行增量备份。
  
- **差量备份**
  差量备份收集了上次全备份后的变化数据，一般在每天晚上结算后进行。
  
- **日志备份**
  对数据卷的备份可以是手动或按备份计划进行，而日志的备份都是自动进行的，默认情况下，每15分钟做一次日志备份，当然备份的频率是可根据用户的需求进行调整的。
  日志备份非常重要，如果持久性存储上的日志不备份，日志是不能被删除的，大量的日志会把日志存储区填满，导致数据库被锁起来。
  Commvault在SP16以后默认情况下，SAP HANA代理将所有数据库服务中的日志文件备份为每6小时一次持久日志备份作业。可以集中持续的将所有服务的日志统一备份，减少备份作业的数量。
  
可以利用备份，把SAP HANA数据库恢复到某一个时间点，恢复的次序是：
1. 恢复最后全备份。
2. 恢复最后差量备份。
3. 恢复接下来的所有增量备份。
4. 恢复接下来的日志备份。
   - 恢复到最新：如果Log区中的日志没有丢失，数据将没有损失。
   
   - 恢复到指定的时间点：逻辑错误会导致最新数据是不正确的，因此需要恢复到以前某一个时间点。
    
在[图4]中，恢复一个全备份，最近的差量备份（D3）和最新的一个增量备份（I4），再进行一个日志前滚操作，就能完成数据的最新恢复。
图4数据恢复   
![](https://support.huaweicloud.com/backup-sap/zh-cn_image_0254943172.png)
#### 重复数据删除管理
随着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]所示。
 表3DDB数据库配置 
| 规模         | 前端容量           | 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系统，随着节点数量的增加，它提供接近线性的可伸缩性。
图5Storage Accelerator备份流程
![](https://support.huaweicloud.com/backup-sap/zh-cn_image_0254960669.png)
#### 多副本管理
利用Commvault平台能轻松实现多副本管理，比如做D2C2C备份，或D2C2T备份。把备份副本复制到云存储或本地数据中心的磁带库上。
Aux Copy（辅助拷贝）是备份数据的复制操作，把数据从一个副本复制到另外一个副本，用于创建多副本或DR（灾难恢复）备份。
图6多副本复制
![](https://support.huaweicloud.com/backup-sap/zh-cn_image_0254961224.png)
辅助拷贝可实现不同介质之间的数据复制，去重副本的辅助拷贝，称为DASH Copy，仅复制新的数据块。存储策略中含三种类型副本：
- Primary 主副本，备份操作时，数据先只能写入主副本。
  
- Synchronous 同步副本，利用AuxCopy产生的次级副本，数据内容与主副本完全相同。
  
- Selective 选择副本，利用AuxCopy产生的次级副本，数据内容只选择全备份数据。
  
 
