HANA作为内存数据库,在实现高性能访问的同时,必须也要有稳定的架构,今天我们就来看看企业部署SAP HANA时应该如何来设计数据库的架构。

HANA数据库在安装时,有以下几种选择方法,为方便大家理解,我们假设只有一个HANA节点,关于多节点的部署,我会在另一篇文章中进行介绍。

1、 一个数据库Instance,一个Schema,见上图中的(1)

在一个HANA节点中,安装一套HANA系统,一个数据库Instance,一个Database Schema,这是最常见的部署方法,不需要过多的介绍了。不过为了方便各位同学理解,这里有两个概念还是要说明一下:

什么是数据库Instance?一般教科书上都会说“Instance其实就是指操作系统中一系列的进程以及为这些进程所分配的内存块”,这么讲没错,但难以理解,我们还是举例来说,你在安装SAP的时候,系统提示你要创建一个数据库实例,这就是一个Instance,将来你这套SAP系统数据库的进程以及运行环境都是通过这个实例来统一管理的。一个数据库可中可以创建多个Instance

什么是Schema?所谓Schema是指表,视图,存储过程,序列,触发器,索引等。假如你在一个数据库Instance中创建了两个Schema,那这两个Schema中的表,视图等从权限上来看,都是独立管理的,从应用层面的访问都是隔离的。

2、 一个数据库Instance,多个Schema,见上图中的(2)

这就是我们一般说的MCOD(Multiple Components on One Database),是指在一个数据库Instance中创建多个Schema。大家都知道SAP系统一般建议三系统架构(注意:三系统架构不同于三层体系结构),也就是开发系统、测试系统和生产系统。在部署SAP系统时,如果硬件资源有限,可以考虑将开发和测试系统采用MCOD方式部署,在具体安装时,虽然开发和测试系统要有不同的,但要选择同一个,系统在安装过程中,会针对开发和测试系统创建不同的Schema。

MCOD也有一些缺点,因为采用的是一个数据库实例,两个系统之间在性能上会互相影响,在运维的时候也比较麻烦,数据库实例的启动会同时影响到两套系统的访问,所以MCOD一般不建议运用在生产环境中。

3、 一个HANA节点,两个虚拟机,见上图中的(3)

HANA也支持虚拟化管理,可以采用类似Vmware这样的技术,在一个HANA节点中建立两个虚拟机,在每个虚拟机中安装独立的OS操作系统,HANA系统以及数据库系统。现在的虚拟技术已经很成熟了,虚拟机在管理上跟实体机基本没有区别,一个虚拟机的维护包括操作系统重启等都不会影响到其他的虚拟机,而且虚拟机的CPU及内存资源也可以根据实际情况进行调整。这种部署方法的缺点是会浪费资源,因为OS操作系统会占用一些资源,一套HANA系统的安装也至少占用64G的内存。当然如果你想从OS层面就完全隔离各个系统,这还是一个比较好的做法。

4、 MDC(Multitenant Database Container)的方式,见上图中的(4)

在一个HANA节点中,安装一套OS操作系统,一套HANA系统,多个租户数据库。每个租户数据库都是一个完全独立的数据库,互相之间从数据库文件上都是独立的。这种部署方式的优点是节省资源,也可以通过建立跨租户数据库报表实现跨租户数据的访问,缺点是各个租户数据库在OS及HANA系统上是共用的,也就是说如果你要重启OS操作系统,则安装在各个租户数据库上的系统都要重新启动。

以上四种数据库的部署方式对SAP的版本有要求,如果你想要使用MDC模式,HANA的版本必须要是HANA SPS09之上。

SAP HANA数据库架构部署方法的更多相关文章

  1. 利用Veeam保护SAP HANA数据库

    利用Veeam保护SAP HANA数据库 前言 针对越来越多的SAP HANA备份需求,我们Team翻译.整理.借鉴了Veeam 的SAP HANA 大神 Clemens Zerbe 和 Ali Sa ...

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

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

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

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

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

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

  5. sap hana 数据库 EBS

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

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

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

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

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

  8. 【HANA系列】SAP 【第一篇】EXCEL连接SAP HANA的方法(ODBC)

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

  9. 【HANA系列】SAP HANA的特点总结

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA的特点总结   ...

随机推荐

  1. LNMP, CentOS7.0+Nginx+Mysql5.7+PHP7环境安装

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构.这里和家分享一下,如何在CentOS 7.0上搭建一个这样的环境,其中软件使用yum方式安装. 进入CentOS ...

  2. 银行卡所属公司判断 参考自https://blog.csdn.net/well2049/article/details/79429130

    在网上找到了一个银行卡的验证,通过阿里的支付宝接口进行校验,能够准确识别是否存在,归属行,卡号类型是储蓄卡(DC)还是信用卡(CC). 接口api:需要传入的2个参数,卡号cardNo和cardBin ...

  3. 《JavaScript设计模式与开发》笔记 2.this指针

    1.作为对象方法调用 2.作为普通函数调用 1.作为普通函数进行调用 2.将函数赋值给一个对象 3.callback内部的this指向了window 4.解决callback内部的this问题 3.构 ...

  4. WPF Demo12 布局

    1 <Window x:Class="布局.DockPanel1" xmlns="http://schemas.microsoft.com/winfx/2006/x ...

  5. 恢复word中审阅选项卡

    碰到在Word中,使用自定义功能区添加审阅选项卡,仍然不显示审阅选项卡 二个办法: 1.检查COM加载项,找出并从此禁用,如:iWebOffice2009.ocx 2.创建自定选项卡“审阅(自定义)” ...

  6. Mysql 基准测试mysqlslap,sysbench

     基准测试基本步骤 设计尽可能简单,明确测试方式哪一种,使用什么样的数据 例如:反映实际情况,用生产环境的数据的备份,可以通过日志,进行访问量的回放 如果测试性能,可以用测试工具生成数据. 执行一次和 ...

  7. 【springboot】之整合ActiveMQ

    1.引入依赖的jar <parent> <groupId>org.springframework.boot</groupId> <artifactId> ...

  8. Lucene - CustomScoreQuery 自定义排序

    在某些场景需要做自定义排序(非单值字段排序.非文本相关度排序),除了自己重写collect.weight,可以借助CustomScoreQuery. 场景:根据tag字段中标签的数量进行排序(tag字 ...

  9. RecyclerAdapter封装

    import java.util.LinkedList; import java.util.List; import android.content.Context; import android.s ...

  10. WebSocket 跨域

    http://www.cnblogs.com/joeymary/p/5259464.html