内部表定义

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

    • 核心系统表(简称核心表)

    • 普通系统表

    • 虚拟表

    • Information_Schema 表

    多租户

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

    引入多租户后,系统表格命名如下:

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

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

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

    Root 租户和普通租户包含的系统表说明如下:

    • Root 租户

      • 核心表

        包括 __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 视图,是其它系统表的视图。