暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【OceanBase】普通租户详解

1892

普通租户具备一个实例所应该具有的所有特性:

  • 可以创建自己的用户
  • 可以创建数据库(database)、表(table)等所有客体对象
  • 有自己独立的系统表和系统视图
  • 有自己独立的系统变量
  • 数据库实例所具备的其他特性

所有用户数据的元信息都存储在普通租户下,所以每个租户都有自己的名字空间,并且彼此隔离不可访问。

系统租户管理所有普通租户,系统租户与普通租户之间的层级关系如下图所示。


租户级系统表

虽然普通租户与系统租户是独立且隔离的,但普通租户无法完成自举普通租户系统表的元数据信息是引用了系统租户的元数据信息;普通租户系统表的位置信息存储在系统租户的 __all_root_table 表中。

普通租户系统表的对象元数据信息和位置信息的分布如下图所示。



根据上图可知:

  • 副本位置信息的发现
租户下用户表的位置信息存储在本租户的 __all_tenant_meta_table 表中。所有租户的系统表的位置信息都存储在系统租户下的 __all_root_table 表中。__all_root_table 表的位置信息存储在 __all_core_table 表中。__all_core_table 表的位置信息常驻在 RS 的内存中。
当需要发现一个用户表分区的副本位置时,需要找到 __all_tenant_meta_table 表,而找到 __all_tenant_meta_table 表需要找到 __all_root_table 表,再根据 __all_root_table 表找到 __all_core_table 表的位置,最后追溯到 RS 的位置。

  • 对象元数据信息
租户下用户表的对象元数据信息存储在本租户下的对象元数据相关的表中普通租户下系统表的对象元数据信息是引用了系统租户的系统表
例如,租户下的 __all_table 表存储了本集群下所有的用户表的信息,租户下的 __all_table 表的对象元数据信息是直接引用了系统租户的 __all_table 表,而系统租户的 __all_table 表的对象元数据信息是存储在 __all_core_table 表中,__all_core_table 的表结构为硬编码

最后修改时间:2022-09-08 09:51:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论