一、SAP HANA System Architecture

来源:互联网 发布:ida软件 百科 编辑:程序博客网 时间:2024/05/29 07:45

SAP HANA System Architecture Overview

HANA system通过唯一的SID标识,HANA中可以有多个相关的数据库(与oracle的数据库实例类似)。

每个数据库包含多个servers,例如index server、name server etc。

HANA system 可以是单节点或者是多节点。


1.1 Tenant Databases(租户数据库)

在 HANA system 里面可以存在多个单独的数据库,他们被称之为租户数据库(tenant database)。

HANA system 存在一个系统数据库(system database)和多个租户数据库(租户数据库数量可以为0)。

HANA system通过SID标识,tenant database通过SID和数据库名称标识。

所有的database共享同样的数据库系统软件,系统资源。

每个数据库都单独拥有:

  • Set of database users 数据库用户
  • Database catalog 数据库资源
  • Repository 资源库
  • Persistence 持久层
  • Backups 备份
  • Traces and logs 跟踪和日志

尽管如此,schemas, tables, views, procedures等数据库对象可以跨数据库访问


1.2 Server Architecture of Tenant Database Systems(租户数据库系统架构)


一个数据库包含多个server,例如 name server,index server,preprocessor server等等,HANA databse 运行着不同的server组合。其中最重要的是index server,它在每个租户数据库上都单独存在,区别于其他租户数据库(每个租户数据库都有一个index server,占用不同的端口),它用来存储数据和处理数据。


只有system database运行name server。name server 包含整个HANA system的一些信息,例如存在哪些租户数据库。name server 还为system database提供一些index server 的功能。name server在租户数据库中不存拓扑结构信息,换句话说,就是不存表位置和表分区等信息,这些信息都保存在租户数据库的catalog中。


租户数据库只需要一个自己的index server。其他不保存数据的服务,像complie server ,preprocessor server运行在system database里面,为其他所有租户数据库服务。下面是一个单节点HANA system例子,其中包含三个数据库(1个system database,两个tenant databse)






Note:

在tenant database中xs classic service 默认是内嵌在index server中的,如果需要,可以添加一个单独的xs service。

SAP Web Dispatcher 在system database中是一个独立的数据库服务,它用来调度进来的HTTP请求,将他们转到正确的xs classic server上面。

除了系统内部的internal web dispatcher,你还可以添加external web dispatcher,这些后面章节会有详细介绍。


1.3 Multiple-Host (Distributed) Systems(多结点分布式系统)

为了扩展性和可用性(scalability and availability),HANA可以在多台主机之间做成分布式系统。multiple-host就是HANA安装在多台主机上安装,否则就是single-host system。

安装分布式系统的主要原因就是它的可扩展性。分布式系统能够克服单台主机的硬件配置的限制,它可以在多台主机之间分发请求。


 Multiple-Host (Distributed) Systems也只能有一个SID,对于管理员来说就感觉像是一个整体。例如HANA系统的安装,更新,启动,关闭,你会感觉到HANA的分布式系统是一个整体。


不同的database之间分享相同的元数据(metadata)和请求(request)


1.3.1Scale-Out Architecture of Tenant Databases(租户数据库在分布式系统中的架构)
为确保系统的可用性,在单master host,多work host这种配置下,system database的实例是运行在所有结点(work 和standby)上的(如下图systam database配置)。租户数据库可以在工作结点上创建,然后通过添加services的方式进行扩展(如下图DB2和DB3的配置),如果一个host停掉(fails),备用(standby)host会接管所有的活动数据库和它们的服务(service)。
Like in a single-host system, the master candidate for a failing host is determined. On that host the system database is restarted, if necessary. Up to three hosts configured to act as the master host of a system. These three hosts can be set up in the clients with the database name to be reconnected to a tenant database even in the case of a host auto-failover of the master host with the system database.(这段没看懂)


Scale-Out 相关建议:
先解释一下相关概念
Scale out是指水平方向上扩展,指的是当添加更多的主机
Scale up 是指垂直方向上扩展,指的是为某个节点添加更多的cpu以及其他硬件资源

一般来说scale up比scale out有更多性能优势,因为内存访问是本地的,更小的网络开销(避免了节点间的网络通信)。

scale-out优势:
  • 能够将租户数据库分布在多个节点上
  • 当一个租户数据库超过了一个单节点的最大限度(假设单节点主机上限是2T,目前数据库大小需要2T以上),这个时候就需要考虑scale-out。当然还有其他一些原因,比如一个大型的BW系统,在它的sizing规则里面就要求一个scale-out的配置
  • 一般情况下,多个租户数据库都放在相同的节点上。当为了最大限度的使用主节点的资源(由于性能原因),建议避免将其他租户数据库放在主节点上。下面的部署方式会提供性能优势

  1. Host 1: Master for tenant database 1
  2. Host 2: Worker for tenant database 1 and worker for tenant database 2
  3. Host 3: Master for tenant database 2
  4. Host 4: Standby host for failover
  • 如果分布式的HANA是sizing的要求,建议谨慎部署额外的租户数据库在同一台主机上,原因是这样的,由于在分布式场景中的工作负载不稳定且不可预测,因此为了维持预期的性能,需要将最大的资源提供给租户数据库

1.4 The System Database(系统数据库)

系统数据库是在安装HANA的时候创建,或者是在从single-container system向tenant database system转换的时候会创建。系统数据库被作为中央管理系统,它包含整个系统的所有信息,包括租户数据库的信息,但是它没有数据库相关的拓扑信息,换句话说,就是没有表的位置信息和表分区信息。数据库相关的拓扑信息保存在相关的租户数据库的catalog中。


系统数据库有且只有一个,系统管理员工具(例如SAP HANA cockpit,SAP HANA studio)能够连上这个数据库。

系统数据库保存着整个系统的landscape信息。


关于系统数据库需要记住的:

  • 系统数据库对sql不完全支持(由于系统数据库里面没有index server,name server为系统数据库提供一些index server的功能)
  • 系统数据库不能在多节点上分布,换句话说,系统数据库不能进行scale-out(所有节点上都存在完整的系统数据库)
  • 如果你需要一个全功能(full-featured)的数据库,你至少需要创建一个租户数据库
  • 系统数据库能展现从租户数据库监测到的数据(在schema SYS_DATABASES 的view里面),但不保存租户数据库实实在在的数据

1.5 Administration of Tenant Databass (租户数据库的管理)

租户数据库的管理分为两个层面:系统管理和数据库管理

一些管理操作是在系统层面执行的,会应用到所有的数据库中,包括如下操作
  • 启动和关闭整个HANA系统
  • 系统监控
  • 配置系统层面的configuration (*ini) files
  • 创建和配置租户数据库
 创建和删除租户数据库
 禁用租户数据库的一些功能
 在configuration (*ini) files配置系统和数据库特殊的参数
 通过添加服务扩展租户数据库
  • 备份和恢复租户数据库
一些管理操作是在租户数据库层面执行的,只对租户数据库有影响,包括如下操作
  • 监控数据库
  • 配置数据库用户
  • 创建和删除schemas, tables, and indexes
  • 备份数据库
  • 在configuration (*ini) files配置数据库参数
1.6 SAP HANA Services(HANA 服务介绍)
下面介绍一下HANA 数据库的server 和与之对应的操作系统进程和服务。









1.7 System Limitations 系统限制

当我们管理HANA数据库的时候要考虑到HANA系统的一些限制,大部分的系统限制信息可以通过查询系统视图M_SYSTEM_LIMITS(SELECT * FROM M_SYSTEM_LIMITS)找到。下面列出一些系统限制信息