利用Veeam保护SAP HANA数据库

前言

针对越来越多的SAP HANA备份需求,我们Team翻译、整理、借鉴了Veeam 的SAP HANA 大神 Clemens Zerbe 和 Ali Salman 的文章,本着力求实用的原则。希望能给我们中国的Partner一些实际的帮助,本文会在以后以多个章节的形式进行体现。

本文主要内容

SAP HANA 介绍

SAP HANA 是个内存数据平台,可以在本地数据中心,物理和虚拟化和公有云平台中实施。HANA High-performance ANalytical Appliance)是高性能分析设备的缩写,其设计目的是使分析应用程序更快,使
企业级用户在全球范围内更方便地使用SAP HANA,SAP HANA是与客户核心业务功能直接相关的应用程序。
对于企业来说,为SAP HANA制定适当的灾难恢复策略至关重要。 万一发生灾难,他们可以轻松地恢复SAP HANA服务和应用程序。Veeam 的云数据管理解决方案,可以简化虚拟,物理和云工作负载的备份和恢复,并为所有关键任务应用程序提供可用性。在本文中,我们将说明如何使用Veeam Plug-in for SAP HANA备份和还原SAP HANA数据库。

简单讲SAP HANA数据库服务器有三个内部层级和一个外部模块,如下图所示:

  • Network layer
  • Data and processing layer
  • Persistence layer
  • External storage

通常我们在市面上看到的SAP HANA,以一体机的型式出现的居多,HANA系统可以是单节点,也可以是多节点,多节点系统能并行处理并具有高可用配置,以进行故障却换。

HANA的一体机节点本质上是一台X86服务器,硬件含有CPU,内存,磁盘,软件含有操作系统、应用系统。HANA采用多CPU并行处理及内存数据库技术,SAP HANA内存数据库的数据并不是只在内存里,也会不停写到硬盘里。HANA运行的操作系统是Linux系统,主要有:Suse Linux 企业版(SLES)和红帽Linux,大部分硬件厂商都有SAP HANA 一体机的产品。

关于SAP HANA 常用术语

术语 解释
SID 系统标识符 SAP HANA 集群 可能包含多个的SID。
Node 节点 一个HANA设备可含一个或多个节点,Veeam 依照节点进行授权
Service 服务 节点通常含4个服务:Index Server, Name Server, Statistics Server, XS Engine
持久性存储 Persistent storage 设备中的磁盘存储,比内存更稳定,用于存放数据/日志。
数据卷 Data volume 磁盘存储上的文件,包含所有数据库的数据和Undo信息。
日志卷 Log volume 磁盘存储上的文件,包含所有数据库的交易事务Transactions。
配置文件 *.ini文件,含有HANA系统的配置参数。
恢复目录 Recovery catalog 在恢复目录里,捕获了所有的日志备份,日志备份中包含了所有备份信息。
工作室 SAP HANA Studio 是HANA的应用程序,用于管理和监控HANA数据库,工作室提供了管理控制台,建模,生命周期管理,备份和恢复也从这里发起。
备份接口 Backup Interface (BACKINT) 备份接口,能把SAP HANA与备份软件集成在一起。
保护点 Savepoint 从内存中导出的数据库一致性映像数据,保存到持久性存储中,包含SQL数据和未提交事务的Undo信息。
MCOD Multiple Components on Database,数据库上的多个组件,这种配置用于多个应用居留在一个数据库中。
MCOS Multiple Components on System,系统上多个组件,这种配置用于多个数据库居留在同一个设备中(只适合非生产系统)。

关于SAP HANA 体系架构

一个SAP HANA系统含有一个或多个节点,多节点系统可以是HA或A/A配置,多节点配置可以实现并行处理。在一个节点中,含有多个服务:包括Index Server, Name Server, Preprocessor, Statistics Server, XS Engine等。每个内存中的服务会把数据备份到持久存储层中自己的数据卷和日志卷上。下图是一个多节点的HANA架构示意图。

早在今年的2月,Veeam 就发布了面向 SAP HANA 的数据备份插件 Veeam Plug-in for SAP HANA,并通过 SAP 认证(SAP® Certified Integration for SAP HANA® 。关于这一点,SAP 网站上有非常中肯的评价:避免备份对生产系统的影响,提高恢复能力,这可以使客户减少成本,提高效率,创建数据操作的连续性。

SAP HANA插件依赖于 SAP HANA 的 SAP Backint,这是一种 API,使 Veeam 能够将 Veeam 代理直接连接到 SAP HANA 数据库。SAP HANA可以处理自己的备份目录与自己的保留和调度,因此,Veeam 备份和复制只需将数据(技术上从数据管道中)存储到 Veeam 存储库中即可。在还原操作期间,SAP HANA 会告知 Veeam 备份和复制需要还原哪些数据,以及 Veeam 根据需要交付数据。这种方法与典型的 Veeam 无代理方法相反,了解差异非常重要。虽然这对经验丰富的 SAP Basis 管理员来说可能不是新闻,但值得与你们中有些人一样共享此信息,这可能是新的信息,因此很有帮助。

SAP HANA 备份的重要性

为了确保HANA系统的最佳性能,HANA把数据存储在内存中,为了防止断电等内存故障导致的数据丢失,SAP HANA也使用持久性的存储系统来保存数据,以达到内存故障后恢复系统的目的。数据库进行正常运行时,会定时发起保护点(Savepoint)操作,所有数据和Undo信息在保存点过程中会自动地写入持久性的硬盘存储中,数据的变化同时被记录在Redo日志中,在满足一定条件下Redo日志也会写入磁盘中。Savepoint和Redo日志写操作可以防止任何内存故障对数据库的影响,但是当持久性存储设备(如硬盘)发生故障后,就没办法恢复HANA系统了。为了防止硬件故障导致的数据丢失,对持久性存储设备上数据进行备份是必要的。

Veeam Plug-in for SAP HANA

Veeam 通过SAP HANA认证

早在今年的2月,Veeam 就发布了面向 SAP HANA 的数据备份插件 Veeam Plug-in for SAP HANA,并通过 SAP 认证(SAP® Certified Integration for SAP HANA® 。您可以在SAP HANA 认证页面找到 关于这一点,SAP 网站上有非常中肯的评价:避免数据备份对生产系统的影响,提高恢复能力,这可以使客户减少成本,提高效率,创建操作连续性。 新的 Veeam 和 SAP 解决方案的主要集成功能和优势包括:

  • 轻松集成,经过SAP认证的BACKINT插件;
  • 让SAP HANA管理员全面掌控备份和恢复流程;
  • 利用Veeam的横向扩展备份存储库(Scale-out Backup Repository)(SOBR™) ,可同时使用多个存储库服务器,或是利用云端的对象存储提高备份和恢复性能,并在多个存储系统之间扩展。

除了新的SAP HANA插件,Veeam 还为 SAP S/4 HANA、SAP BW Data Warehouse 和 SAP Business ONE 提供备份与恢复的支持,已经通过验证并投入生产的环境包括:

  • 安装在 VMware 上的工作负载,可使用即时全虚拟机恢复(Instant VM Recovery)和 数据实验室(DataLabs)等功能
  • 轻松集可集成的存储解决方案包括:HPE 3PAR、NetApp AFF、Pure FlashArray 和 DellEMC Unity;
  • 轻松集支持超融合基础设施,例如 Cisco HyperFlex、NetApp HCI、Nutanix AHV 等;
  • 轻松集还可以保护物理服务器和 Microsoft Azure、Azure Stack 和 Amazon EC2 等基于云的工作负载。

Veeam SAP HANA插件介绍

SAP HANA插件依赖于 SAP HANA 的 SAP Backint,它是SAP HANA的一类API,使 Veeam 代理程序可以直接连接到 SAP HANA 数据库。SAP HANA可以处理自己的备份目录与自己的保留和调度,因此,Veeam 只负责将数据,从数据管道中存储到 Veeam 备份存储库中。在还原操作期间,SAP HANA 会告知 Veeam 程序需要还原哪些数据, Veeam则根据需要交付数据。这种方法与典型的 Veeam 无代理方式有所不同。虽然这对经验丰富的 SAP Basis 管理员来说可能早就了如指掌,在此仅做为参考。

除了 Backint API 之外,对于数据备份来说,重要不仅是 SAP HANA Backint 负责处理数据库数据,包括完整、差分、增量和日志备份和恢复。同时,底层操作系统(红帽或 SUSE)和 SAP HANA 安装和配置文件也应在备份规划中进行考虑。

Veeam SAP HANA插件安装过程

安装过程的先决条件,包括:

  • Veeam Backup & Replication 9.5 Update 4 (or 4b) 已安装
  • DNS (forward & reverse)可以正常解析SAP HANA 系统和Veeam Backup & Replication Repository 服务器
  • SAP HANA 2.0 SPS02 以上版本
    SAP HANA plugin的安装文件保存在Veeam Backup & Replication iso镜像文件中,如下图所示, 安装命令简单好用,形如:

rpm -ivh VeeamPluginforSAPHANA-9.5.4.2753-1.x86_64.rpm

首先,选择合适版本的RPM文件,将RPM文件复制到SAP HANA系统。在 SAP HANA 系统上使用命令行工具进行安装。安装过程中,您需要具有 sudo 权限,安装过程如下图:

注意:对于 Veeam 备份和复制 9.5 更新 4a,有一个适用于 HANA的性能修补程序: 您可以在这里找到

Veeam SAP HANA插件配置过程

我们要使用root用户运行 "SapBackintConfigTool --Wizard":

与VBR的默认端口号为10006,关于详细的端口列表您也可参考 Veeam Agent Management Guide

Veeam 备份服务器的用户名和密码以及存储库权限,需要由 Veeam 管理员提供。您应该可以在此处发现可用的存储库列表。如果您已使用其他软件配置了 SAP Backint,Veeam 的向导将告诉您要删除的内容并重新运行向导。

用Veeam进行SAP HANA 的备份

您可以通过 SAP HANA Studio来定义您的备份,也可以使用 SAP HANA Cockpit、DBA Planer,或其它的外部调度程序。如下图所示,启动 SAP HANA Studio,并在 SYSTEM DB 模式下连接到最近配置的 SAP HANA 实例。

输入SAP HANA用户账号 (不需要是系统用户)。您可以创建并使用具有备份与服务目录权限的用户来作为备份和还原的管理员用户。有关详细信息,请参阅 HANA 管理指南。

若一切配置得当,您应该会看到类似于下面的屏幕截图的内容:

双击SYSTEMDB_DEV (SYSTEM),将打开概览窗口, 请记住这些信息,在后面提供其他配置详细信息时会用到

右键 Open Backup Console

转到 congfiguration, 展开 Backint Setting 设置。检查您的 Backint Agent 是否已经指向 /opt/Veeam/VeeamForSAPHANA/hdbbackint

在此处有两点值得强调:

  • Veeam 不使用任何回退参数文件 此处字段应留空
  • 日志备份设置 允许您在文件系统上保留日志,或使用 Backint 将所有新日志直接转发到 Veeam 备份服务器。我们建议您通过 Backint 备份它们, 但请与您的 SAP 管理员讨论此设置。

右键 SYSTEMDB@SID ,Backup and Recovery 首先选择 Back Up System Database (随后 Tenant Database).

在以下窗口中确保选中 Backint ,点击Next。

查看Summary 点击 Finish

您将看到如下提示


检查 Log File 并返回 Backup System DB 窗口并转到Backup Catalog,查看已有的备份条目。

现在对 Tenant Database 执行相同的操作:运行备份,检查日志和Catalog。


同样,您也可以在VBR上去检查备份操作的执行情况。如在Jobs中,或是Histroy中查询。


用Veeam进行SAP HANA的还原

重要声明: 不要在数据库管理员不知情的情况执行任何操作,始终在测试环境中测试第一次恢复。以下步骤仅用于测试参考,不要使用任何生产数据库!!

我们现在只做Tenant Database的恢复。只有在出现严重错误时才需要恢复系统数据库,只有在SAP 技术支持建议您恢复系统数据库时,我们才建议恢复系统数据库。右键 SYSTEMDB@SID ,Backup and Recovery 选择
Recover Tenant Database

选择您想要恢复的 Tenant Database, 点击 Next.


选择 Recover the database to its most recent state,当然您也可以选择还原到指定的时间点。

指定Backup Catelog的位置,在这里我们选择“Search for the Backup catalog in Backint Only"。

注意:此时Tenant Database 将会关闭

选择您的备份 , 点击 Check Availability

在 Availability 为绿色之后,单击Next。

在如下窗口定位 Log Backups。

单击Next,不要忘记在Backint上包含日志,这些选项是以数据库为中心的,如果您需要更改某些内容,应该与SAP管理员讨论。

单击Next将显示摘要,Finish将启动恢复过程。

最终,等待恢复过程结束

请仔细检查 Summary

至此!您已使用Veeam Plug-in for SAP HANA 对SAP HANA进行了 备份定义与配置、备份和恢复。请关注我们后续的文章。

有价值的白皮书推荐阅读

《Veeam Enterprise Availability for SAP HANA》

《快速入门:在 Azure 虚拟机上手动安装单实例 SAP HANA》

本文的原文链接

3 steps to protect your SAP HANA database

利用Veeam保护SAP HANA数据库的更多相关文章

  1. 如何使用命令行备份SAP HANA数据库

    SAP HANA是一个在in-memory内存中的数据平台,部署为内部部署应用. 这是一个革命性的平台,它最适合进行实时分析,并开发和部署实时应用程序. 请点击这里了解更多有关SAP HANA. 通过 ...

  2. 使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

    在表DBCON里维护一条记录,指向HANA数据库.con_ENV里填入HANA数据库的主机名和端口号.如vmXXXX:30015 DATA: ls_new TYPE DBCON. ls_new-con ...

  3. 使用 SSL 加密的 JDBC 连接 SAP HANA 数据库

    近期客户为满足安全要求,提了让业务应用使用 SSL 方式连接 SAP HANA 数据库的需求.本人查询 SAP官方文档 发现数据库支持 SSL 连接,有参数直接加到 JDBC 的 URL 后边就行了, ...

  4. sap hana 数据库 EBS

    SAP实时数据平台详解 ************************************************************ EBS是Oracle 公司对原有应用产品整合后的一个产 ...

  5. MySQL,Oracle,PostgreSQL,mongoDB,Hive, SAP HANA 数据库web维护客户端管理工具

    TreeDMS数据库管理系统使用JAVA开发,采用稳定通用的springMVC +JDBC架构,实现基于WEB方式对 MySQL,Oracle,PostgreSQL,mongoDB ,Hive, SA ...

  6. SAP HANA数据库架构部署方法

    HANA作为内存数据库,在实现高性能访问的同时,必须也要有稳定的架构,今天我们就来看看企业部署SAP HANA时应该如何来设计数据库的架构. HANA数据库在安装时,有以下几种选择方法,为方便大家理解 ...

  7. 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构

    什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...

  8. 【HANA系列】SAP HANA XS使用JavaScript数据交互详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...

  9. 【HANA系列】【第一篇】SAP HANA XS使用JavaScript数据交互详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第一篇]SAP HANA XS ...

随机推荐

  1. 高性能最终一致性框架Ray之基本概念原理

    一.Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案. 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错. 共享内存受限于 ...

  2. 基于python-django框架的支付宝支付案例

    目录 @ 一. 开发前的准备 1. 必须了解的知识 SDK:软件开发工具包,可以为开发者提供快速开发的工具 沙箱环境:也就是测试环境 支付宝支付金额的精度:小数点后两位(面试) 支付宝用的什么加密方式 ...

  3. Day 8 面试题

    一.选择题(每题2分) #####1.1 设超级用户root当前所在目录为:/usr/local,键入cd命令后, 用户当前所在目录为(B) A:/home B:/root C:/home/root ...

  4. Android Studio [跑马灯]

    MainActivity package com.xdw.secondapp; import android.graphics.Paint; import android.support.v7.app ...

  5. 利用Python进行数据分析:【Pandas】(Series+DataFrame)

    一.pandas简单介绍 1.pandas是一个强大的Python数据分析的工具包.2.pandas是基于NumPy构建的.3.pandas的主要功能 --具备对其功能的数据结构DataFrame.S ...

  6. 重学JavaScript之面向对象的程序设计(继承)

    1. 继承 ES 中只支持实现继承,而且其实现继承主要依靠原型链来实现的. 2. 原型链 ES中 描述了 原型链的概念,并将原型链作为实现继承的主要方法.其基本思想是利用原型让一个引用类型继承另一个引 ...

  7. C语言入门-数组

    今天十月一日,上午看阅兵激情澎湃,但是下午还是要继续写C语言,前面的这块很简单 int number[100]; scanf("%d" , &number[i]); 一.定 ...

  8. 从零开始入门 K8s | 可观测性:你的应用健康吗?

    作者 | 莫源 阿里巴巴技术专家 一.需求来源 首先来看一下,整个需求的来源:当把应用迁移到 Kubernetes 之后,要如何去保障应用的健康与稳定呢?其实很简单,可以从两个方面来进行增强: 首先是 ...

  9. JavaSE----02.Java语言基础

    02.Java语言基础 1.关键字     Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量.Java的关键字对Java的编译器有特殊的意义,他们用来表示一 ...

  10. 实战SpringCloud响应式微服务系列教程(第七章)

    本章节继续介绍:Flux和Mono操作符(二) 1.条件操作符 Reactor中常用的条件操作符有defaultIfRmpty.skipUntil.skipWhile.takeUntil和takeWh ...