【趙渝強老師】OceanBase租戶的資源管理

在這里插入圖片描述

OceanBase數據庫是多租戶的數據庫系統,一個集群內可包含多個相互獨立的租戶,每個租戶提供獨立的數據庫服務。在OceanBase數據庫中,使用資源配置(Unit Config)、資源單元(Unit)和資源池(Resource Pool)三個概念,對各租戶的可用資源進行管理。

視頻講解如下

【趙渝強老師】OceanBase租戶的資源管理

一、 資源配置與資源單元

一個資源單元中可以包含多個資源配置。資源配置是用來描述每個單元中可用的CPU、內存、存儲空間和IOPS等的規格。這里需要注意,資源配置指定的是對應資源單元能夠提供的服務能力,而不是資源單元的實時負載。下面展示了創建資源單元的完整語法格式:

CREATE RESOURCE UNIT [IF NOT EXISTS] unit_name
MEMORY_SIZE [=] 'size_value',
MAX_CPU [=] cpu_num,
[MAX_IOPS [=] iops_num,]
[MIN_CPU [=] cpu_num,]
[MIN_IOPS [=] iops_num,]
[IOPS_WEIGHT [=]iopsweight,]
[LOG_DISK_SIZE [=] 'size_value'];

下面的語句將創建一個名叫ru1的資源單元,其中將包含若干個資源配置,如:可以的CPU、內存大小、存儲空間等。

ob> create resource unit ru1 max_cpu 1, min_cpu 1, memory_size '2G',log_disk_size '2G' ;# 提示:Meta租戶沒有獨立的Unit,租戶資源管理過程中不管理Meta租戶。
# 系統在創建租戶時默認為Meta租戶預留資源,各項資源從用戶租戶的資源中扣除。
# 目前Meta租戶的各項資源采用默認配置,不支持用戶指定。

通過DBA_OB_UNIT_CONFIGS視圖,可以查看所有資源配置和資源單元信息。

ob> select * from oceanbase.dba_ob_unit_configs \G;# 輸出的信息如下:
*************************** 1. row ***************************UNIT_CONFIG_ID: 1NAME: sys_unit_configCREATE_TIME: 2025-04-09 14:50:05.982963MODIFY_TIME: 2025-04-09 14:50:05.982963MAX_CPU: 1MIN_CPU: 1MEMORY_SIZE: 2147483648LOG_DISK_SIZE: 2147483648DATA_DISK_SIZE: NULLMAX_IOPS: 9223372036854775807MIN_IOPS: 9223372036854775807IOPS_WEIGHT: 1MAX_NET_BANDWIDTH: 9223372036854775807
NET_BANDWIDTH_WEIGHT: 1
*************************** 2. row ***************************UNIT_CONFIG_ID: 1001NAME: ru1CREATE_TIME: 2025-04-09 14:56:02.348728MODIFY_TIME: 2025-04-09 14:56:02.348728MAX_CPU: 1MIN_CPU: 1MEMORY_SIZE: 2147483648LOG_DISK_SIZE: 2147483648DATA_DISK_SIZE: NULLMAX_IOPS: 9223372036854775807MIN_IOPS: 9223372036854775807IOPS_WEIGHT: 1MAX_NET_BANDWIDTH: 9223372036854775807
NET_BANDWIDTH_WEIGHT: 1
2 rows in set (0.001 sec)

通過使用alter resource unit語句可以修改資源單元的資源配置,例如:

ob> alter resource unit ru1 memory_size '3G';

《OceanBase數據庫課程:MySQ模式》

二、 資源池

資源池由若干個資源單元組成,通過給資源池指定資源配置,可指定資源池下各資源單元的物理資源。下面展示了創建資源池的完整語法格式:

CREATE RESOURCE POOL pool_name
UNIT [=] unit_name,
UNIT_NUM [=] unit_num,
ZONE_LIST [=] ('zone_name' [, 'zone_name' ...]);

在創建資源池之前首先確定集群中的可用區:

ob> use oceanbase;
ob> select zone,status,type from oceanbase.dba_ob_zones;# 輸出的信息如下:
+-------+--------+-----------+
| zone  | status | type      |
+-------+--------+-----------+
| zone1 | ACTIVE | ReadWrite |
| zone2 | ACTIVE | ReadWrite |
+-------+--------+-----------+
2 rows in set (0.044 sec)

創建資源池的示例語句如下:

ob> create resource pool rp1 unit 'ru1', unit_num 2, zone_list ('zone1', 'zone2');# 此時將出現下面的錯誤信息:
ERROR 4656 (HY000): resource pool unit num is bigger than zone server count# 提示:資源池里一個Zone下的Unit的數目大于這個Zone下Server的數量。

執行下面的語句確定每個Zone下的Server數量:

ob> use oceanbase;
ob> select svr_ip,id, zone from dba_ob_servers;# 輸出信息如下:
+---------------+------+-------+
| svr_ip        | id   | zone  |
+---------------+------+-------+
| 192.168.79.11 |    1 | zone1 |
| 192.168.79.12 |    3 | zone1 |
| 192.168.79.13 |    2 | zone2 |
+---------------+------+-------+# 提示:此時zone2中只包含一個OBServer。

修改上面的資源池創建語句如下:

ob> create resource pool rp1 unit 'ru1', unit_num 1, zone_list ('zone1', 'zone2');

通過DBA_OB_RESOURCE_POOLS視圖,可以查看所有資源池信息。

ob> select * from dba_ob_resource_pools \G;# 輸出的信息如下:
*************************** 1. row ***************************
RESOURCE_POOL_ID: 1NAME: sys_poolTENANT_ID: 1CREATE_TIME: 2025-04-09 14:50:06.003151MODIFY_TIME: 2025-04-09 14:50:06.060751UNIT_COUNT: 1UNIT_CONFIG_ID: 1ZONE_LIST: zone1;zone2REPLICA_TYPE: FULL
*************************** 2. row ***************************
RESOURCE_POOL_ID: 1002NAME: rp1TENANT_ID: NULLCREATE_TIME: 2025-04-09 15:12:09.141263MODIFY_TIME: 2025-04-09 15:12:09.141263UNIT_COUNT: 1UNIT_CONFIG_ID: 1002ZONE_LIST: zone1;zone2REPLICA_TYPE: FULL
2 rows in set (0.001 sec)

切換資源池的資源配置可以調整資源池下每個資源單元的資源規格,進而調整租戶在該資源池上的資源規格和服務能力。例如:

ob> create resource unit ru2 max_cpu 1, min_cpu 1, memory_size '2G',log_disk_size '2G' ;
ob> alter resource pool rp1 unit 'ru2';# 提示:這里將資源池rp1的資源單元配從ru1切換到了ru2上。

《OceanBase數據庫課程:Oracle模式》

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

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

相關文章

8K、AI、低空智聯,H.266能否撐起下一代視頻通路?

一、📈 爆發式增長的 AI 與視頻數據:智能時代的“數據燃料革命” 隨著生成式 AI、大模型推理、多模態理解等技術的迅猛發展,視頻數據從“記錄工具”轉變為“感知基礎設施”,其在現代智能系統中的戰略地位日益凸顯。 1?? 視頻數…

保姆級別IDEA關聯數據庫方式、在IDEA中進行數據庫的可視化操作(包含圖解過程)

本文以mysql為例,學會了Mysql,其它的數據庫也是類似的模版~如果您覺得這邊文章對你有幫助,可以收藏防止找不到~如果您覺得這篇文章不錯,也感謝您的點贊對我創作的支持1.1 打開側邊欄的Database2.2 選擇要連接的數據庫(…

33.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--單體轉微服務--財務服務--記賬

這篇文章我們一起把記賬模塊從單體應用遷移到微服務架構中。記賬模塊的功能想必大家都已經了解了,主要是記錄用戶的收入和支出,以及對這些記錄的刪除修改和查詢等操作。具體的功能可以參考單體應用專欄,在這里就不多講了。我們現在一起開始遷…

Cursor結合Playwright MCP Server支持自動化

Cursor結合Playwright MCP Server支持自動化 今天分享一下 playwright MCP Server,其提供了瀏覽器自動化能力,使大型語言模型能夠在真實的瀏覽器環境中與網頁交互, 也可以執行任務,例如運行JavaScript、截屏和導航網頁元素&…

Python 求梯形面積的程序(Program to find area of a Trapezoid)

梯形的定義: 梯形是凸四邊形,至少有一對邊平行。平行邊稱為梯形的底邊,另外兩條不平行的邊稱為梯形的腿。梯形也可以有兩對底邊。在上圖中,CD || AB,它們構成底邊,而另外兩條邊,即AD和BC&#…

C語言 —— 指針(4)

動態內存分配動態內存需要手動申請&#xff0c;手動歸還&#xff0c;其內存是開辟在堆區。申請的函數為&#xff1a;void *malloc(size_t size) &#xff08;需包含頭文件#include<stdlib.h>&#xff09;size&#xff1a;要分配的內存大小&#xff0c;以字節為單位。申請…

常用算法思想及模板

今天繼續整理一些關于算法競賽中C適用的一些模板以及思想。 保留x位小數 保留x位小數在C語言中可以使用printf中的"%.xf"來實現&#xff0c;但是很多C選手由于關閉了同步流&#xff0c;害怕cin、cout與scanf、printf混用容易出錯&#xff0c;所以就給大家介紹一個強…

GitLab 倉庫 — 常用的 git 命令

在公司的 gitlab 公共倉庫中寫代碼做項目時&#xff0c;主要涉及以下常用 git 命令&#xff1a;一、單個命令講解1. 拉取代碼&#xff08;1&#xff09;git clone [倉庫 URL]?克隆遠程倉庫到本地&#xff08;需確保 URL 正確&#xff09; ?&#xff08;?2&#xff09;git pu…

【28】C# WinForm入門到精通 ——多文檔窗體MDI【屬性、方法、實例、源碼】【多窗口重疊、水平平鋪、垂直平鋪、窗體傳值】

文章目錄1多文檔窗體MDI2 基本設置3 實例&#xff1a;多窗口重疊、水平平鋪、垂直平鋪3.1 主窗口屬性設置3.2 主窗口3.3 主窗口窗口添加MenuStrip菜單3.4 添加處理函數3.5 測試效果4 利用窗體參數定義進行傳值4.1 在Form2、Form3添加相關控件4.2 Form3 定義函數public Form3(st…

【計算機科學與應用】基于Session欺騙攻擊的Web應用程序防護

導讀&#xff1a; 本文對Web應用程序開發中的Session欺騙攻擊進行了闡述&#xff0c;詳細講解了防范Session欺騙攻擊的三種傳統方法&#xff0c;并給出了防范代碼&#xff0c;分析了三種傳統防范方法的不足&#xff0c;新設計了一種通過Referer信息驗證來加強對Session欺騙的防…

yolo8+阿里千問圖片理解(華為簡易版小藝看世界)

? 實現目標 按下空格鍵 → 獲取攝像頭當前畫面&#xff1b; 將圖片上傳給 大模型 接口&#xff0c;讓其“看圖說話”&#xff1b; 獲取返回描述后&#xff0c;以字幕形式展示在圖像畫面上&#xff1b; 持續顯示識別結果&#xff0c;直到下次按空格。 &#x1f9e0; 需要準…

【ee類保研面試】數學類---線性代數

25保研er&#xff0c;希望將自己的面試復習分享出來&#xff0c;供大家參考 part0—英語類 part1—通信類 part2—信號類 part3—高數類 part100—self項目準備 文章目錄線性代數知識點大全**1. 余子式與代數余子式****2. 行列式的含義****3. 矩陣的秩&#xff08;Rank&#xf…

在 Scintilla 中為 Squirrel 語言設置語法解析器的方法

Scintilla 作為一個強大的開源文本編輯控件&#xff0c;通過配置語法解析器&#xff0c;能夠對多種編程語言實現語法高亮、代碼折疊等實用功能。若要為新語言 Squirrel 設置語法解析器&#xff0c;可參考以下步驟&#xff1a;?創建 Lexer 源文件&#xff1a;Scintilla 通過 Le…

Go語言核心知識點補充

Go語言核心知識點補充 make函數、for循環與輸入處理詳解 在前幾章的內容中&#xff0c;我們介紹了Go語言的基礎語法、變量聲明、切片、循環等核心概念。但在實際開發中&#xff0c;一些細節性的知識點往往決定了代碼的健壯性與效率。 本文將針對前幾章涉及到的變量聲明與初始化…

AI服務器中,EEPROM有哪些部件使用,需要存儲哪些信息?

在AI服務器中&#xff0c;EEPROM&#xff08;電可擦可編程只讀存儲器&#xff09;主要用于存儲關鍵組件的配置數據、身份信息和校準參數。以下是主要組件及其存儲內容&#xff1a; 一、核心組件及存儲數據主板&#xff08;Baseboard Management Controller, BMC&#xff09; FR…

It學習資源下載

一.UI 8個高質量UI設計網站&#xff0c;靈感收集必備&#xff01;

Docker Compose :從入門到企業級部署

Docker Compose &#xff1a;從入門到企業級部署1. Docker Compose 核心概念1.1 Compose 架構全景圖2. 完整開發工作流2.1 典型開發流程2.2 多服務示例項目結構3. 核心配置詳解3.1 服務配置矩陣3.2 網絡拓撲示例4. 企業級部署方案4.1 多環境配置管理4.2 擴展部署架構5. 高級技巧…

1.2.vue插值表達式

在 Vue.js 中&#xff0c;插值表達式是用于在模板中顯示數據的一種方式。它使用雙大括號語法 {{ }} 來包裹需要輸出的變量或表達式的值。Vue 會自動將這些表達式的值插入到 HTML 文檔中相應的位置。插值表達式基本用法最基本的插值表達式形式就是直接在模板中引用 Vue 實例中的…

Python數據處理基礎(學習筆記分享)

Python數據處理入門 常用庫學習 numpy NumPy&#xff08;Numerical Python&#xff09; 是 Python 中用于高效數值計算的庫&#xff0c;核心是提供一個強大的 ndarray?&#xff08;多維數組&#xff09;對象&#xff0c;類似于 C/C 中的數組&#xff0c;但支持更豐富的操作&a…

力扣面試150題--顛倒二進制位

Day 89 題目描述思路 二進制的算法&#xff0c;將十進制轉化為二進制&#xff0c;有一點需要注意&#xff0c;直接采取庫函數轉化為二進制再反轉會出現問題&#xff08;這也是為什么我要補0的原因&#xff09;&#xff0c;因為轉化過去不滿足32位的二進制&#xff0c;前面不會當…