内部表定义
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 视图,是其它系统表的视图。