麻烦问一个OceanBase数据库每个租户的这几个表都是必有的对吧,这几个也都是隔离的对吧?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在OceanBase数据库中,采用了多租户架构,每个租户都是独立的实例,拥有自己独享的访问端口、CPU和内存资源。这意味着每个租户之间在数据、权限以及资源上都是隔离的。此外,OceanBase数据库通过租户实现资源隔离,保证每个数据库服务的实例不会感知到其他实例的存在。这样的设计使得不同租户之间的表也是相互隔离的。所以,对于您的问题,“这几个表是否必有”以及“这些表是否都是隔离的”,答案都是肯定的。
资源隔离概述https://www.oceanbase.com/docs/common-ocp-1000000000348172
资源隔离方式
OCP 的资源隔离从使用粒度,可以分为以下三种类型:
用户资源隔离
用于指定用户与资源组的映射关系,使该用户执行的所有 SQL 使用的资源即为对应 Group 分配的资源,通过使用该特性,可以让不同用户执行不同类型的任务。
后台任务隔离
用于指定后台任务与资源组的映射关系,隔离各任务使用的资源。当前支持 8 种后台任务的使用资源。
compaction_high: Mini Merge 和 DDL KV Merge 任务。
ha_high:复制、Rebuild 和恢复等高优先级高可靠任务。
compaction_mid:Minor Merge 任务。
ha_mid:中优先级高可靠任务,例如迁移任务。
compaction_low:Major Merge 任务。
ha_low:备份和备份清理等低优先级高可靠任务。
ddl:唯一索引校验、删列补数据等场景的任务。
ddl_high:DDL MemTable 的转储任务。
SQL 级资源隔离
SQL 级的资源隔离是比用户级粒度更细的隔离方式。通常适用的场景是,业务中存在多个账号,处理一个账号的一个订单时,会开启一个事务然后执行一批与该账号相关的 SQL (通常是在 WHERE 条件中指定账号的值)。账号中可能存在大账号(数据量较大)和小账号(数据量较小),为了避免大账号把 CPU 资源用完导致小账号的订单无法得到处理,可以将处理不同订单的 SQL 绑定到不同的资源组,绑定后不同订单的 SQL 就会使用不同资源组的资源。