【OceanBase实战之路】第3篇:多租户架构实现资源隔离

在这里插入图片描述

码到三十五 : 个人主页

心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 !


目录

    • 一、什么是OceanBase的多租户
    • 二、兼容模式
      • 2.1 MySQL 模式
      • 2.2 Oracle 模式
      • 三、租户介绍
      • 3.1 系统租户
      • 3.2 用户租户
      • 3.3 Meta 租户
      • 3.4 租户架构
    • 在这里插入图片描述

一、什么是OceanBase的多租户

OceanBase 数据库采用了单集群多租户设计,天然支持云数据库架构,支持公有云、私有云、混合云等多种部署形式。

在这里插入图片描述

OceanBase 数据库通过租户实现资源隔离,让每个数据库服务的实例不感知其他实例的存在,并通过权限控制确保租户数据的安全性,配合 OceanBase 数据库强大的可扩展性,能够提供安全、灵活的 DBaaS 服务。

租户是一个逻辑概念。在 OceanBase 数据库中,租户是资源分配的单位,是数据库对象管理和资源管理的基础,对于系统运维,尤其是对于云数据库的运维有着重要的影响。租户在一定程度上相当于传统数据库的"实例"概念。租户之间是完全隔离的。在数据安全方面,OceanBase 数据库不允许跨租户的数据访问,以确保用户的数据资产没有被其他租户窃取的风险。在资源使用方面,OceanBase 数据库表现为租户"独占"其资源配额。总体上来说,租户(tenant)既是各类数据库对象的容器,又是资源(CPU、Memory、IO 等)的容器。

二、兼容模式

OceanBase 数据库在一个系统中可同时支持 MySQL 模式和 Oracle 模式两种模式的租户。用户在创建租户时,可选择创建 MySQL 兼容模式的租户或 Oracle 兼容模式的租户,租户的兼容模式一经确定就无法更改,所有数据类型、SQL 功能、视图等相应地与 MySQL 数据库或 Oracle 数据库保持一致。

OceanBase 数据库社区版仅提供了 MySQL 模式。

2.1 MySQL 模式

MySQL 模式是为降低 MySQL 数据库迁移至 OceanBase 数据库所引发的业务系统改造成本,同时使业务数据库设计人员、开发人员、数据库管理员等可复用积累的 MySQL 数据库技术知识经验,并能快速上手 OceanBase 数据库而支持的一种租户类型功能。OceanBase 数据库的 MySQL 模式兼容 MySQL 5.7 的绝大部分功能和语法,兼容 MySQL 5.7 版本的全量以及 8.0 版本的部分 JSON 函数,基于 MySQL 的应用能够平滑迁移。

2.2 Oracle 模式

OceanBase 数据库从 V2.x.x 版本开始支持 Oracle 兼容模式。Oracle 模式是为降低 Oracle 数据库迁移 OceanBase 数据库的业务系统改造成本,同时使业务数据库设计开发人员、数据库管理员等可复用积累的 Oracle 数据库技术知识经验,并能快速上手 OceanBase 数据库而支持的一种租户类型功能。Oracle 模式目前能够支持绝大部分的 Oracle 语法和过程性语言功能,可以做到大部分的 Oracle 业务进行少量修改后的自动迁移。

三、租户介绍

OceanBase 数据库是多租户架构。在 V4.0.0 版本之前,仅支持两种类型的租户:系统租户和用户租户。从 V4.0.0 版本开始,引入了 Meta 租户概念。因此,当前版本对用户可见的租户有三种类型:系统租户、用户租户以及 Meta 租户。

3.1 系统租户

系统租户是集群默认创建的租户,与集群的生命周期一致,负责管理集群和所有租户的生命周期。系统租户仅有一个 1 号日志流,仅支持单点写入,不具备扩展能力。

系统租户可以创建用户表,所有的用户表和系统表数据均由 1 号日志流服务。系统租户的数据是集群私有的,不支持主备集群物理同步和物理备份恢复。

3.2 用户租户

用户租户是由用户创建的租户,对外提供完整的数据库功能,支持 MySQL 和 Oracle 两种兼容模式。用户租户支持服务能力水平扩展到多台机器上,支持动态扩容和缩容,内部会根据用户的配置自动创建和删除日志流。

用户租户的数据有更强的数据保护和可用性要求,支持跨集群物理同步和物理备份恢复,典型数据包括:Schema 数据、用户表数据及事务数据等。

OceanBase 数据库社区版仅提供了 MySQL 模式。

3.3 Meta 租户

Meta 租户是 OceanBase 数据库内部自管理的租户,每创建一个用户租户系统就会自动创建一个对应的 Meta 租户,其生命周期与用户租户保持一致。

Meta 租户用于存储和管理用户租户的集群私有数据,这部分数据不需要进行跨库物理同步以及物理备份恢复,这些数据包括:配置项、位置信息、副本信息、日志流状态、备份恢复相关信息、合并信息等。

3.4 租户架构

租户架构如下图所示,用户租户与 Meta 租户一一对应,系统租户与 Meta 租户有且仅有一个 1 号日志流,日志流为 LogStream,简称 LS。用户租户支持动态创建和删除日志流。

在这里插入图片描述


术因分享而日新,每获新知,喜溢心扉。
诚邀关注公众号 码到三十五 ,共享更多技术资料。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/504300.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STLExporter 是用于将 Three.js 场景中的几何体数据导出为 STL 格式的类。

demo案例 STLExporter 是用于将 Three.js 场景中的几何体数据导出为 STL 格式的类。下面是关于 STLExporter 的入参、出参、方法和属性的讲解: 入参 (Parameters): scene: THREE.Scene 类型的参数,表示要导出为 STL 格式的 Three.js 场景对象。 出参…

Python API(happybase)操作Hbase案例

一、Windows下安装Python库:happybase pip install happybase -i https://pypi.tuna.tsinghua.edu.cn/simple 二、 开启HBase的Thrift服务 想要使用Python API连接HBase,需要开启HBase的Thrift服务。所以,在Linux服务器上,执行如…

2024/3/31 蜂鸣器(1)

蜂鸣器分为有源蜂鸣器和无源蜂鸣器。有源内部自带振荡源,接上直流电压即可发声。无源则需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲频率可以发出不同频率的声音。(好想用stm32做个电子琴) 驱动方式(由于蜂鸣器所…

基于SpringBoot+Vue人口老龄化社区服务与管理平台(源码+部署说明+演示视频+源码介绍+lw)

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

企微获客助手到底有哪些价值?

获客助手作为企业微信官方提供的获客工具,在私域布局中确实展现了其强大的引流效率和便利性。这一工具通过简化传统引流过程中的复杂步骤,使得企业能够更高效地吸引和转化潜在客户。此外,获客助手还能实现不同渠道的无缝链接,进一…

【研发日记】Matlab/Simulink开箱报告(十一)——Requirements Toolbox

目录 前言 Requirements Toolbox 编写需求 需求联接设计 需求跟踪开发进度 追溯性矩阵 分析和应用 总结 前言 见《开箱报告,Simulink Toolbox库模块使用指南(六)——S-Fuction模块(TLC)》 见《开箱报告&#x…

Kafka开发实录

前言 最近我总是在做大胆的事情,莫不是少年也需要冲冲冲,明明我不是这样的人啊,难不成这就是命运,来自命运石之门的选择!废话不多说,本次是Kafka的实战篇,为什么这篇这么快呢?看了开…

网络——协议定制

目录 再谈协议 结构化数据 计算器 封装socket 封装TcpServer服务器 协议定制 问题 解决方法 守护进程 setsid 守护进程函数 json库 序列化和反序列化 再谈协议 原来不是说过什么是协议吗,协议不就是通信双方必须遵守的约定吗,那这就完了吗&…

大语言模型---强化学习

本文章参考,原文链接:https://blog.csdn.net/qq_35812205/article/details/133563158 SFT使用交叉熵损失函数,目标是调整参数使模型输出与标准答案一致,不能从整体把控output质量 RLHF(分为奖励模型训练、近端策略优化…

Vue系列——数据对象

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>el:挂载点</title> </head> <body&g…

在国内如何给Chrome浏览器安装Vue Devtools插件

Vue Devtools是一个强大的Chrome浏览器插件&#xff0c;为Vue.js开发者提供了丰富的调试和性能优化功能。然而&#xff0c;在国内由于无法访问Google Chrome Web Store&#xff0c;安装Vue Devtools需要使用其他方法。以下是安装步骤&#xff1a; 步骤一&#xff1a;下载Vue D…

逆向分析之antibot

现在太卷了&#xff0c;没资源&#xff0c;很难接到好活&#xff0c;今天群里看到个单子&#xff0c;分析了下能做&#xff0c;结果忙活了一小会&#xff0c;幸好问了下&#xff0c;人家同时有多个人再做&#xff0c;直接就拒绝再继续了。就这次忘了收定金了&#xff0c;所以原…

输出1到10的阶乘--C语言

#include<stdio.h> int fac(int n){if(n<1){return 1;}elsereturn fac(n-1)*n; } int main(){int i, result;for(i1;i<10;i){resultfac(i);printf("%d!%d\n",i,result);}} 输出结果&#xff1a;

AI跟踪报道第35期-新加坡内哥谈技术-本周AI新闻:终于打败ChatGPT的机器人

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

二维码门楼牌管理应用平台:创新管理与服务的全新方式

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、二维码门楼牌管理应用平台的功能特点三、切换功能在城市管理中的应用四、二维码门楼牌管理应用平台的未来展望 前言 在数字化时代的浪潮中&#xff0c;二维码技术以其便捷、高效的特点&#xff0c;正逐渐渗透到我们生…

C语言每日一题

1.题目 二.分析 本题有两点需要注意的&#xff1a; do-while循环 &#xff1a;在判断while条件前先执行一次do循环static变量 &#xff1a;程序再次调用时static变量的值不会重新初始化&#xff0c;而是在上一次退出时的基础上继续执行。for( i 1; i < 3; i )将调用两次…

容器四(Map 接口)

目录 HashMap 和 HashTable Map 接口中的常用方法 HashMap 底层实现 Hashmap 基本结构 存储数据过程 put(key,value) 取数据过程 get(key) 扩容问题 JDK8 将链表在大于 8 情况下变为红黑二叉树 Map 就是用来存储“键(key)&#xff0d;值(value) 对”的。 Map 类中存储的…

Vue.js前端开发零基础教学(四)

学习目标&#xff1a; 熟悉选项式API和组合式API&#xff0c;能够说出选项式API和组合式API的区别 掌握注册组件的方法&#xff0c;能够运用全局注册或者局部注册的方式完成组件的注册 掌握父组件向子组件传递数据的方法&#xff0c;能够使用props实现数据传递等等 前言 在学习…

【Leetcode每日一题】 递归 - 求根节点到叶节点数字之和(难度⭐⭐)(47)

1. 题目解析 题目链接&#xff1a;129. 求根节点到叶节点数字之和 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 递归函数设计&#xff1a; 我们设计了一个递归函数 int dfs(TreeNode* root, int num)&#xff0c;其…

【42 可视化大屏 | 某瓣电影Top250数据分析可视化大屏】

文章目录 &#x1f3f3;️‍&#x1f308; 1 普版大屏&#x1f3f3;️‍&#x1f308;2 Flask版大屏&#x1f3f3;️‍&#x1f308;3 FlaskMysql版大屏&#x1f3f3;️‍&#x1f308; 4. 可视化项目源码数据 大家好&#xff0c;我是 &#x1f449;【Python当打之年(点击跳转)…