暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于官方文档的OceanBase 知识学习-06数据模型-<多租户架构>(基于官方文档做记录 V2.2.77版本)

原创 lxs_data 2021-12-22
522

     本文是基于OceanBase V2.2.77版本 官方文档 做的学习记录,主要是目的是进行OBCP 考试,通过学习文档,希望了解OceanBase知识,最终考过OBCP。go! 

     本文内容大部分都是OceanBase 官网资料,做了一些比较显著的标志。  


     租户是一个逻辑概念,在 OceanBase 数据库里是资源分配的单位,是数据库对象管理和资源管理的基础。

     租户之间是完全隔离的。

     在资源使用方面表现为租户“独占”其资源配额。总体上来说,租户(tenant)既是各类数据库对象的容器,又是资源(CPU、Memory、IO 等)的容器。

    OceanBase 系统中包含两大类的租户:系统租户和普通租户。

    系统租户是系统内置的,有三个主要的功能:
              系统表的容器

                  所有的系统表都存放在系统租户的空间中。

             具备集群管理功能的用户的容器

                 集群级别的管理功能,比如增加/删除租户,修改系统配置项,每日合并等操作,只允许系统租户下的用户来做。

            提供执行系统维护和管理行为所需的资源

                 选主、日志同步、每日合并等操作没有按租户分离,这些操作所需的资源由系统租户来统一提供。

     普通租户

              可以被看作是一个数据库实例,它由系统租户根据需要(比如说为了某个业务的需要)创建出来。在创建租户的时候,除了指定租户名字以外,最重要的是指定它占用的资源情况

             普通租户具备一个实例所应该具有的所有特性:

                      可以创建自己的用户

                     可以创建数据库(database)、表(table)等所有客体对象

                     有自己独立的 information_schema 等系统数据库

                     有自己独立的系统变量

                     数据库实例所具备的其他特性

     多租户隔离

           OceanBase 在数据库内部实现一个 SQL 虚拟机, DB 内把很多业务统一管理,把整个管理机制做得对用户特别透明。

           隔离的开销比较低,单台服务器可以服务更多的租户,降低云服务的整体成本。

           租户隔离分为三个部分:CPU、IO 还有内存,网络目前还不是瓶颈,不做隔离。


     多机层面调度

          负载均衡:

              第一个层面是:租户负载均衡,即把每个租户的资源容器分布到很多台 OBServer 上面去。

              第二个层面是:分区负载均衡,如果租户只在一台服务器,第二个层面是没有必要的。如果租户在多台服务器上,需要把这个租户的分区均匀地分布到它的资源容器中。

                                                             OceanBase 数据库内部会尽量使得小租户只在一台服务器上,避免分布式事务。当租户需要的资源逐步增加时,OceanBase 数据库也能做到自动扩展,对用户是透明的。











「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论