OceanBase數據庫-學習筆記4-租戶

租戶

租戶偏向于資源層面的邏輯概念,是在物理節點上劃分的資源單元,可以指定其資源規格,包括 CPU、內存、日志盤空間、IOPS 等。

租戶類似于傳統數據庫的數據庫實例,租戶通過資源池與資源關聯,從而獨占一定的資源配額,可以動態調整資源配額。在租戶下可以創建 Database、表、用戶等數據庫對象。

OceanBase 數據庫 4.0 開始,有三種類型的租戶:系統租戶用戶租戶以及每個用戶租戶對應的 Meta 租戶

租戶 ID 為 1 的是系統租戶。租戶 ID 大于 1000 的租戶中,偶數的是用戶租戶,奇數的是 Meta 租戶,并且用戶租戶的租戶 ID 比其對應 Meta 租戶大 1。

SELECT TENANT_ID,TENANT_NAME,TENANT_TYPE,PRIMARY_ZONE,COMPATIBILITY_MODE,STATUS,UNIT_NUM,COMPATIBLE,MAX_LS_ID FROM DBA_OB_TENANTS;

查看租戶視圖

系統租戶

  • 系統租戶是集群默認創建的租戶與集群生命期一致,負責管理集群和所有租戶的生命周期。系統租戶僅有一個 1 號日志流,只支持單點寫入,不具備擴展能力
  • 系統租戶定位于集群管理和租戶管理,不提供完整的數據庫功能,不推薦在生產或業務測試等場合使用。

用戶租戶

  • 與系統租戶對應的是用戶租戶,用戶租戶是由用戶創建的租戶
  • 對外提供完整的數據庫功能
  • 支持 MySQL 和 Oracle 兩種兼容模式。

用戶租戶介紹

用戶租戶與通常所見的數據庫管理系統相對應,可以被看作是一個數據庫實例。它由系統租戶根據業務需要所創建出來。 用戶租戶具備一個實例所應該具有的所有特性,主要包括:

  • 可以創建自己的用戶
  • 可以創建數據庫(database,僅 MySQL 兼容模式支持)、表(table)等所有客體對象
  • 有自己獨立的系統表和系統視圖
  • 有自己獨立的系統變量
  • 數據庫實例所具備的其他特性

所有用戶數據的元信息都存儲在用戶租戶下,所以每個租戶都有自己的命名空間,并且彼此隔離不可訪問。系統租戶管理所有用戶租戶,系統租戶與用戶租戶之間的層級關系如下圖所示。

tenants

在用戶租戶下創建的用戶,只能登錄到本租戶,對其他租戶不可見。

  • 對于 MySQL 兼容模式的租戶,可以從視圖 mysql.user 中查詢用戶信息。
  • 對于 Oracle 兼容模式的租戶,可以從系統視圖 ALL_USERS 中查詢用戶信息。

在用戶租戶下可以創建表,創建后對其他租戶不可見。

  • 對于 MySQL 兼容模式的租戶,可以從 information_schema.tables 視圖中查詢本租戶所有用戶表的信息。
  • 對于 Oracle 兼容模式的租戶,可以從 ALL_TABLES 視圖中查詢本租戶所有用戶表的信息。

用戶租戶只能在本租戶下修改本租戶的系統變量。

  • 對于 MySQL 兼容模式的租戶,可以從 information_schema.global_variablesinformation_schema.session_variables 視圖中查詢系統變量信息。也可以通過 SHOW VARIABLES 語句查詢。
  • 對于 Oracle 兼容模式的租戶,可以通過 SHOW VARIABLES 語句來查詢本租戶所有的系統變量。

Meta租戶

  • Meta 租戶是 OceanBase 數據庫內部自管理的租戶。
  • 每創建一個用戶租戶會創建一個對應的 Meta 租戶,其生命周期與用戶租戶保持一致。
  • Meta 租戶用于存儲和管理用戶租戶的租戶私有數據。
  • Meta 租戶不可登錄,普通用戶只能通過系統租戶的視圖查詢 Meta 租戶下的數據。
  • Meta 租戶沒有獨立的 Unit,創建租戶時默認為 Meta 租戶預留資源,各項資源從用戶租戶資源中扣除。

前置概念

租戶通過資源池與資源關聯,從而獲取可用的資源。租戶和資源池相輔相成的關系。

概念對應視圖描述
資源規格DBA_OB_Unit_CONFIGS資源規格定義了常見物理資源項的大小,包括 CPU、內存、磁盤空間、IOPS 等。創建資源池時指定其資源規格,從而根據定義創建資源單元。
資源單元(Unit)DBA_OB_UnitSUnit 是租戶管理中非常重要的概念。OceanBase 按照 Unit 來管理物理資源,是 CPU、內存、存儲空間、IOPS 等物理資源的集合Unit 也是資源調度的基本單位,其具有節點、Zone、Region 等位置屬性,節點是服務器的抽象,Zone 是機房的抽象,Region 是地域的抽象,通過調整 Unit 的位置屬性從而調整租戶的部署方式。
資源池DBA_OB_RESOURCE_POOLS每個 Unit 都歸屬于一個資源池,每個資源池由若干個 Unit 組成,資源池是資源分配的基本單位同一個資源池內的各個 Unit 具有相同的資源規格,即該資源池內 Unit 的物理資源大小都相同。
租戶DBA_OB_TENANTS

通過 Unit 的概念,我們將 OceanBase 數據庫的物理概念和邏輯概念進行了關聯。每個租戶有若干 Unit,分布于若干 Zone 的若干節點上。而每個節點上分布有若干個 Unit,這些 Unit 歸屬于不同租戶。概括的講:集群由節點組成,節點是 Unit 的容器。租戶由 Unit 組成,Unit 是數據庫對象的容器。

在這里插入圖片描述

創建租戶時通過設置 RESOURCE_POOL_LIST,可以指定該租戶關聯到的資源池,從而該租戶擁有指定資源池的 Unit。例如:設置租戶 a 的 RESOURCE_POOL_LIST=(‘a_pool’),其部署圖如下:
resource-pool

創建租戶

創建租戶的流程

OceanBase 數據庫僅支持創建用戶租戶,系統租戶由集群創建時自動創建。創建用戶租戶是一系列操作的組合,首先創建資源規格,然后基于該資源規格創建資源池,最后創建租戶并指定其資源池。所以創建租戶的順序為:資源規格 -> 資源池 -> 租戶。

步驟一:創建資源規格

創建一個名稱為 S1_unit_config 的資源規格,其資源配置為 CPU 為 1 核,內存 5G,日志盤空間 6G

CREATE RESOURCE UNIT S1_unit_configMEMORY_SIZE = '5G',MAX_CPU = 1, MIN_CPU = 1,LOG_DISK_SIZE = '6G',MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;

步驟二:創建資源池

創建一個名為 mq_pool_01 的資源池,在 zone1 里創建 1 個 UnitUnit 的資源規格為 S1_unit_config

CREATE RESOURCE POOL mq_pool_01 UNIT='S1_unit_config', UNIT_NUM=1, ZONE_LIST=('zone1'); 

步驟三:創建租戶

創建一個名為 mq_t1 的租戶(默認為 MySQL 模式租戶),副本數為 2,資源池指定為 mq_pool_01Primary Zonezone1,允許所有 IP 連接數據庫。

CREATE TENANT IF NOT EXISTS mq_t1 PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('mq_pool_01')set OB_TCP_INVITED_NODES='%';

查詢創建的租戶

SELECT c.TENANT_ID, e.TENANT_NAME, concat(c.NAME, ': ', d.NAME) `pool:conf`, concat(c.UNIT_COUNT, ' unit: ', d.min_cpu, 'C/', ROUND(d.MEMORY_SIZE/1024/1024/1024,0), "G") unit_info-> FROM DBA_OB_RESOURCE_POOLS c, DBA_OB_UNIT_CONFIGS d, DBA_OB_TENANTS e-> WHERE c.UNIT_CONFIG_ID=d.UNIT_CONFIG_ID AND c.TENANT_ID=e.TENANT_ID AND c.TENANT_ID>1000-> ORDER BY c.TENANT_ID;
+-----------+-------------+----------------------------+---------------+
| TENANT_ID | TENANT_NAME | pool:conf                  | unit_info     |
+-----------+-------------+----------------------------+---------------+
|      1002 | mq_t1       | mq_pool_01: S1_unit_config | 1 unit: 1C/1G |
+-----------+-------------+----------------------------+---------------+
1 row in set (0.033 sec)obclient(root@sys)[oceanbase]> 

查看租戶視圖

以上就是本次的分享,感謝閱讀。

上一章:《OceanBase數據庫-學習筆記3-Oceanbase相關命令》
下一章:《OceanBase數據庫-學習筆記5-用戶》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81105.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81105.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81105.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UNIAPP項目記錄

一、通過 vue-cli 創建 uni-app 項目 創建 vue3 項目 創建以 javascript 開發的工程(如命令行創建失敗,請直接訪問 gitee 下載模板) npx degit dcloudio/uni-preset-vue#vite my-vue3-project復制代碼 npx degit dcloudio/uni-preset-vue#vit…

華為發布全球首個L3商用智駕ADS4.0

2024年10月2024世界智能網聯汽車大會上,余承東講到:“華為ADS 4.0將于2025年推出高速L3級自動駕駛商用及城區L3級自動駕駛試點,希望加快L3級自動駕駛標準的進程,推動L3級自動駕駛技術的普及。” 世界智能網聯汽車大會演講PPT 所以…

【Python學習路線】零基礎到項目實戰

目錄 🌟 前言技術背景與價值當前技術痛點解決方案概述目標讀者說明 🧠 一、技術原理剖析核心概念圖解核心作用講解關鍵技術模塊說明技術選型對比 💻 二、實戰演示環境配置要求核心代碼實現運行結果驗證 ? 三、性能對比測試方法論量化數據對比…

解決redis序列號和反序列化問題

最近遇到了一個問題,將 List<Map<String, Object>> 類型數據以list形式存入到redis之后,發現取出來時數據格式完全不對,根據報錯信息發現是反序列化問題,遇到類似問題,主要有兩種解決方案1.使用序列號工具 例如&#xff0c;Java中常用的序列化工具有Jackson、Gso…

Android學習總結之設計場景題

設計圖片請求框架的緩存模塊 核心目標是通過分層緩存策略&#xff08;內存緩存 磁盤緩存&#xff09;提升圖片加載效率&#xff0c;同時兼顧內存占用和存儲性能。以下是針對 Android 面試官的回答思路&#xff0c;結合代碼注釋說明關鍵設計點&#xff1a; 一、緩存架構設計&…

Webug3.0通關筆記14 第十四關:存儲型XSS

目錄 第十四關:存儲型XSS 1.打開靶場 2.源碼分析 3.滲透實戰 第十四關:存儲型XSS 本文通過《webug3靶場第十四關 存儲型XSS》來進行存儲型XSS關卡的滲透實戰。 存儲型 XSS&#xff08;Stored Cross - Site Scripting&#xff09;&#xff0c;也被稱為持久型 XSS&#xff…

Java父類、子類實例初始化順序詳解

1、完整的初始化順序&#xff08;含繼承&#xff09; 1、父類的靜態初始化 父類靜態變量默認值 → 父類靜態變量顯式賦值 父類靜態代碼塊&#xff08;按代碼順序執行&#xff09;。 2、子類的靜態初始化 子類靜態變量默認值 → 子類靜態變量顯式賦值 子類靜態代碼塊&…

13.組合模式:思考與解讀

原文地址:組合模式&#xff1a;思考與解讀 更多內容請關注&#xff1a;7.深入思考與解讀設計模式 引言 在軟件開發中&#xff0c;是否曾經遇到過這樣一種情況&#xff1a;你有一個對象&#xff0c;它本身很簡單&#xff0c;但是它包含了其他類似的對象。隨著系統變得越來越復…

OpenCV實戰教程 第一部分:基礎入門

第一部分&#xff1a;基礎入門 1. OpenCV簡介 什么是OpenCV及其應用領域 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一個開源的計算機視覺和機器學習軟件庫&#xff0c;于1999年由Intel公司發起&#xff0c;現在由非營利組織OpenCV.org維護。Ope…

虛幻商城 Quixel 免費資產自動化入庫(2025年版)

文章目錄 一、背景二、問題講解1. Quixel 免費資產是否還能一鍵入庫?2. 是不是使用了一鍵入庫功能 Quixel 的所有資產就能入庫了?3. 一鍵入庫會入庫哪些資產?三、實現效果展示四、實現自動化入庫五、常見問題1. 出現401報錯2. 出現429報錯3. 入庫過于緩慢4. 入庫 0 個資產一…

uni-app - 小程序使用高德地圖完整版

文章目錄 ??功能描述??效果??開發環境??代碼部分??功能描述 頁面自動通過定位獲取用戶位置并展示周邊POI數據,同時支持關鍵詞輸入實時聯想推薦關聯地點信息, 實現精準智能的地點發現與檢索功能。 ??效果 ??開發環境 unibest2.5.4nodev18.20.5pnpm9.14.2wot-des…

牛客:AB4 逆波蘭表達式求值

鏈接&#xff1a;逆波蘭表達式求值_牛客題霸_牛客網 題解&#xff1a; 利用棧&#xff0c;遍歷字符串數組&#xff0c;遇到運算數則入棧&#xff0c;遇到運算符則取出棧頂兩個運算數進行運算&#xff0c;并將運算結果入棧。 class Solution { public:/*** 代碼中的類名、方法…

Ant(Ubuntu 18.04.6 LTS)安裝筆記

一、前言 本文與【MySQL 8&#xff08;Ubuntu 18.04.6 LTS&#xff09;安裝筆記】同批次&#xff1a;先搭建數據庫&#xff0c;再安裝JDK&#xff0c;后面肯定就是部署Web應用。其中Web應用的部署使用 Ant 方式&#xff0c;善始善終&#xff0c;特以筆記。 二、準備 &#xf…

ultralytics 目標檢測 混淆矩陣 背景圖像 沒被記錄

修改 utils/metrics.py ConfusionMatrix def process_batch(self, detections, gt_bboxes, gt_cls):"""Update confusion matrix for object detection task.Args:detections (Array[N, 6] | Array[N, 7]): Detected bounding boxes and their associated inf…

iview 如何設置sider寬度

iview layout組件中&#xff0c;sider設置了默認寬度和最大寬度&#xff0c;在css樣式文件中修改無效&#xff0c;原因是iview默認樣式設置在了element.style中&#xff0c;只能通過行內樣式修改 樣式如下&#xff1a; image.png image.png 修改方式&#xff1a; 1.官方文檔中寫…

go-zero(十七)結合DTM :實現分布式事務

1. 基礎概念介紹 1.1 什么是分布式事務 在微服務架構中&#xff0c;一個業務操作常常需要調用多個服務來完成。例如&#xff0c;在電商系統中下單時&#xff0c;需要同時操作訂單服務和庫存服務。這種跨服務的操作就需要分布式事務來保證數據一致性。 分布式事務面臨以下挑戰…

2025 簡易Scrum指南(簡體中文版)

Scrum是一個輕量級的、以團隊為中心的框架&#xff0c;用于解決復雜的問題并創造價值。Scrum有意保持非完整性&#xff0c;Scrum的設計初衷旨在依靠使用者的集體智慧來不斷演進構建。 Scrum建立在實驗主義和精益思想的基礎上&#xff0c;它賦能團隊靈活巧妙地工作&#xff0c;…

2025最新福昕PDF編輯器,PDF萬能處理工具

軟件介紹 Foxit PDF Editor Pro 2025 中文特別版&#xff08;以前稱為 Foxit PhantomPDF Business&#xff09;是一款專為滿足各種辦公需求而設計的業務就緒的PDF工具包。 軟件特點 1. 強大的PDF編輯能力 創建新文檔&#xff1a;用戶可以從無到有地構建PDF文檔&#xff0c;添…

ollama的若干實踐

1. 本地ollama 1.1 本地安裝ollama 方法 1&#xff1a;手動檢查最新版本并下載 訪問 Ollama 的 GitHub Releases 頁面&#xff1a; 打開 https://github.com/ollama/ollama/releases 查看最新的穩定版本&#xff08;如 v0.7.0 或更高&#xff09; 手動下載最新版本&#xff08…

Spring Security源碼解析

秒懂SpringBoot之全網最易懂的Spring Security教程 SpringBoot整合Spring-Security 認證篇&#xff08;保姆級教程&#xff09; SpringBoot整合Spring Security【超詳細教程】 spring security 超詳細使用教程&#xff08;接入springboot、前后端分離&#xff09; Security 自…