oceanbase多租户的概念与传统数据库用户的概念有什么本质的不同?

一个运行oceanbase数据库可以有几个租户,租户和传统数据库有什么本质的不同?

看下文档介绍:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000033696

租户就是实例,只不过是“逻辑实例”。这么称呼是因为这个”实例“在主机层面没有独立的进程。整个OB集群在每个机器上只有一个进程。租户是进程里面的多个线程。

租户改变了运维的形态。传统数据库可能是来一个大业务建一个数据库,用一套独立的主机存储。如果主机存储只有一套,那就按schema 区分业务(说的是ORACLE)。OB的解决之道是用一组机器搭建一个集群,然后来一个独立的业务从集群里分一个租户(实例),前期资源少给一点,后期根据实际情况多退少补。就跟云数据库体验一样。每个租户内部还可以分多个schema(oracle租户)或者分多个database(mysql租户)。也就是DBA可以选择在两个层面去隔离业务:是租户层面还是schema/database 层面。

租户与租户之间的关系就跟传统数据库不同数据库之间的关系,彼此不通。除非建 dblink。即租户之间数据访问是完全隔离的。资源方面内存是绝对隔离,IOPS也隔离。CPU 是相对隔离(调度看物理机CPU。OB 只是内部调度多个租户的线程,最终还是主机CPU去调度线程),存储上没有隔离(每个节点共用一个大数据文件block_file,不同租户之间数据分布呈现纵横交错特点。

当然,有一定规模的企业对租户的隔离不放心,依然建多个 OB集群,分别承载不同的业务,也是可以的。总体上来说,DBA 可以在三个层面决定业务数据的隔离:集群》租户》SCHEMA 。

3 个赞