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