为了更好地管理 OceanBase 数据库,您需要了解 OceanBase 数据库的基础组件信息,包括 OceanBase 集群、Zone 、OBServer、资源池、租户、分区等。

OceanBase 数据库是由蚂蚁集团、阿里巴巴完全自主研发的金融级分布式关系数据库。OceanBase 数据库通过 OceanBase 集群来进行管理。一个 OceanBase 集群由多个 Zone 组成,Zone 的个数大于等于 3 个,每个 Zone 又包含了多个 OceanBase 服务器(observer 进程运行在这些服务器上),一般情况下各个 Zone 内的机器配置与数量保持一致,多台 OceanBase 服务器作为资源组成各个业务所需的资源池。管理员可以根据业务情况,将资源再划分成不同大小的资源池分配给租户使用,一般建议高性能要求的业务分配大资源池,低性能要求的业务分配小资源池。

租户拥有资源池后,可以创建数据库、表、分区等。

OceanBase 数据库基础组件之间的关系如下图所示。基础组件图

OceanBase 集群、Zone 和 OceanBase 服务器

一个集群由多个 Zone 组成,每一份数据在各个 Zone 上都会有一份副本,并且只能有一份副本,这样一个 Zone 故障后不会影响业务正常运行和数据的完整性。从物理角度上来说,不同的 Zone 可以对应不同的城市;也可以对应一个城市的不同机房;还可以对应一个机房的不同机架,从而实现不同级别的容灾。

Zone 的个数大于等于 3 个,因为 OceanBase 数据库采用 Paxos 协议,多数派需要达成一致,3 个及以上的 Zone 可以保证当 1 个 Zone 故障后,剩下的 2 个 Zone 内的副本依然还可以构成多数派,不影响业务。 OceanBase 服务器相对独立,拥有自己的计算引擎和存储引擎,也会有部分数据。对业务而言,每台 OceanBase 服务器均是一台传统的集中式数据库,业务访问到这台 OceanBase 服务器后,如果需要访 问的数据在其它 OceanBase 服务器上,它们自己会自动协商调度,对业务无感知。

资源池和租户

集群的多个服务器组成了一个大的资源池,管理员会根据各个租户的要求,创建与之对应的虚拟资源池给租户使用,资源池包括指定规格的 CPU、内存、存储、TPS、QPS 等。为了避免租户之间争抢资源,租户之间的资源相互隔离,内存是物理隔离、CPU 是逻辑隔离。

系统租户保存系统表,一般系统租户的 ID 为 1000 以内。剩下的是业务租户,创建租户时必须指定是该租户为 MySQL 模式还是 Oracle 模式。