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之上。