概述 
=======================



**内部表定义** 

OceanBase 数据库内部表包含了以下几类：

* 核心系统表（简称核心表）

  

* 普通系统表

  

* 虚拟表

  

* `Information_Schema` 表

  




**多租户** 

OceanBase 数据库为多租户架构，租户分为两种类型：普通租户以及 `sys` 租户。OceanBase 数据库系统表都存储在 `sys` 租户，且主键中存储租户号（`tenant_id`），区分每个租户的内容。每个租户内部创建一个该租户数据的只读视图。

引入多租户后，系统表格命名如下：

* 所有以 `__all `开头的表格包含所有租户的数据，所有以` __tenant` 开头的表格仅包含单个租户内部的数据。

  

* 虚拟表的前缀分别为 `__all_virtual `以及 `__tenant_virtual`。

  例如，`__all_virtual_session_variable` 包含所有租户的 Session 变量信息，且内部实现为虚拟表；而`__tenant_virtual_session_variable` 只包含单个租户的 Session 变量信息，内部实现为虚拟表。
  




`s``ys` 租户和普通租户包含的系统表说明如下：

* sys 租户

  * 核心表

    包括 `__all_core_table`、`__all_root_table`、`__all_table`、`__all_column`、`__all_database`、 `__all_tablegroup`、`__all_tenant`、以及 `__all_ddl_operation`。
    
  
  * 模式及用户权限表

    除了 `__all_table`、`__all_column`，还包括` __all_part`、`__all_database`、`__all_tablegroup` 以及 `__all_user`、`__all_table_privilege`、`__all_database_privilege`。
    
  
  * 分表位置信息表

    分为两级，第一级为 `__all_root_table`，不可分区；第二级为 `__all_meta_table`。

    所有系统表的位置信息都记录在 `__all_root_table` 中。
    
  
  * 租户、Resource Pool、Unit 相关的系统表

    
  
  * Zone 和服务器等部署相关的系统表

    
  
  * 系统配置相关的表：`__all_sys_parameter`

    
  
  * 系统变量及系统状态相关的表：`__all_sys_variable`、`__all_sys_stat`

    
  
  * DDL 操作相关的表：` __all_ddl_operation`

    
  
  * 其它表，例如各种统计信息以及为了实现某个功能而加入的系统表

    
  

  

* 普通租户

  * 以 `__tenant` 作为表名前缀的只读视图，表示租户内信息

    
  
  * `Information_schema`：SQL 标准定义的 `information_schema` 视图，是其它系统表的视图。

    
  

  



