OceanBase數據庫實戰:Windows Docker部署與DBeaver無縫對接

一、前言

OceanBase 是一款高性能、高可擴展的分布式數據庫,適用于大規模數據處理和企業級應用。

隨著大數據和云計算的普及,OceanBase 在企業數字化轉型中扮演著重要角色。學習 OceanBase 可以幫助開發者掌握先進的分布式數據庫技術,提升數據管理能力。使用 Docker 安裝 OceanBase 簡化了部署流程,讓用戶無需復雜的環境配置即可快速啟動,適合開發者進行實驗和學習。

本文將介紹如何在 Docker 上安裝 OceanBase,使用 DBeaver 連接數據庫,創建庫表并查詢數據。

image?

2019 年,OceanBase 數據庫 V2.2 版本參加代表 OLTP 數據庫最權威的 TPC-C 評測,以 6000 萬 tpmC 的成績登頂世界第一。隨后,在 2020 年,又以 7 億 tpmC 刷新紀錄。OceanBase 數據庫是第一個上榜 TPC-C 的分布式數據庫,也是第一個上榜的中國數據庫。

這份閃耀全球的成績單背后,隱藏著一場歷時十年的“極限長征”:從阿里工程師在機房徹夜鏖戰的草稿紙推演,到支付寶核心系統遷移前夕的驚險48小時;從被質疑“分布式架構無法承載金融級事務”的至暗時刻,到以開源代碼重新定義行業標準的破局之路……

后續我們會專門開辟篇章,深入講述 OceanBase 的發展歷程,帶大家領略這款分布式數據庫從無到有、從弱到強的傳奇故事。

?

二、下載安裝

2.1 環境準備

操作系統:Windows 11

Docker工具:Docker Desktop

(Docker Desktop安裝配置可參考之前文章:Windows安裝Docker Desktop,詳細步驟 https://blog.csdn.net/qq_17153885/article/details/141337873?spm=1001.2014.3001.5501)

?

2.2 拉取鏡像

Docker 環境準備好之后,就可以在主機上啟動容器了,恰好 OceanBase 提供了單機版的鏡像,完美適用于快速體驗的場景。

OceanBase 的單機版鏡像 oceanbase/oceanbase-ce, 按照版本以不同的 tag 劃分,latest 默認對應的是最新發布的版本,體驗最新版本,可以直接使用 latest 作為 tag,或者不寫 tag。

?

按win+r,啟動運行界面,輸入cmd

image?

?

在運行界面,執行如下命令,拉取鏡像

docker pull oceanbase/oceanbase-ce

image?

?

拉取后,在Docker Desktop可查看oceanbase鏡像

image?

備注:如果拉取失敗,可能鏡像源失效。可私信(公眾號:技海拾貝),獲取最新可用鏡像源

?

2.3 啟動單節點OceanBase數據庫實例

運行以下命令(這里本次操作選擇mini 獨立實例),啟動 OceanBase 數據庫的實例:

docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=1 -d oceanbase/oceanbase-ce
根據當前容器部署最大規格的實例
docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=0 -d oceanbase/oceanbase-ce部署 mini 的獨立實例
docker run -p 2881:2881 --name oceanbase-ce -e MINI_MODE=1 -d oceanbase/oceanbase-ce

image?

?

image?

?

啟動預計需要 2-3 分鐘。執行以下命令,如果返回 boot success!?,則啟動成功。

查看日志

docker logs oceanbase-ce

image?

?

image?

?

2.4 連接數據庫實例

oceanbase-ce 鏡像安裝了 OBD(OceanBase Deployer,OceanBase 安裝部署工具)和 OBClient(OceanBase 命令行客戶端)。您可選擇進入容器,使用 OBD 命令管理和 OBClient 客戶端連接實例,也可使用宿主機本地 OBClient 或 MySQL 客戶端連接到 OceanBase 數據庫實例。

?

在 OceanBase 的 Docker 容器中還自帶了常用的一些工具,在部署完之后可以直接用來做一些驗證。

#切換終端到docker容器
[root@rac04 ~]# docker exec -it oceanbase-ce bash
#檢查集群狀態
[root@61d0ccd3ea95 /]# obd cluster list
+------------------------------------------------------------+
|                        Cluster List                        |
+-----------+------------------------------+-----------------+
| Name      | Configuration Path           | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running         |

?

1.進入 Docker 容器

docker exec -it oceanbase-ce bash

image?

?

通過DeskTop進入也可以

image?

?

2.查看集群詳情

#查看集群列表
obd cluster list
#查看 obcluster 集群詳情
obd cluster display obcluster
obd cluster list

?

image?

?

image?

?

3.連接數據庫

使用以下命令可以使用 sys 租戶連接到 OceanBase 數據庫,連接數據庫,默認root密碼為空

obclient -h127.0.0.1 -uroot@sys -A -Doceanbase -P2881 -p

?

image?

?

4.執行sql語句

show databases;

image?

?

5.創建用戶及密碼

  1. 創建用戶 :在源端業務租戶下創建用戶,用于數據遷移或數據同步。對于 OceanBase 數據庫 MySQL 租戶,使用以下命令:

    CREATE USER 'user_name' IDENTIFIED BY 'password';
    

    對于 OceanBase 數據庫 Oracle 租戶,使用以下命令:

    CREATE USER user_name IDENTIFIED BY password;
    
  2. 為用戶授權 :通過 GRANT? 語句為創建的數據庫用戶授權,例如:

    GRANT SELECT ON db_name.* TO user_name;
    

    具體的授權語句和權限范圍根據實際需求確定。

?

假設您有一個用戶 test_user?,希望授予其所有數據庫的所有權限,可以執行以下命令:

sql復制

GRANT ALL ON *.* TO 'test_user'@'%';

image?

?

?

CREATE USER 'zhangsan' IDENTIFIED BY 'td98761n'
GRANT ALL ON *.* TO 'zhangsan'@'%';

?

?

三、通過 DBeaver 連接 OceanBase 數據庫

DBeaver 是一款通用的數據庫客戶端工具,其原理是使用各個數據庫提供的 JDBC 驅動連接數據庫,支持常見的關系型數據庫、非關系型數據庫、分布式數據庫等等。

使用 DBeaver 自帶的 OceanBase 驅動或 MySQL 驅動均可連接 OceanBase 數據庫的 MySQL 租戶,本文將以 OceanBase 驅動為例介紹如何使用 DBeaver 連接 OceanBase 數據庫的 MySQL 租戶。

注意:建議升級DBeaver版本到最新版(例如目前最新版24.3.5),較低版本沒有OceanBase選項,需要下載驅動連接

?

3.1 新建連接

可以單擊文件下方的連接符image進入到選擇數據庫頁面

image?

?

?

image?

?

這里使用上述創建的賬號,密碼。當 連接測試 彈窗中顯示 已連接,表示可成功連接,單擊 確定 后,單擊 完成 即可連接到 OceanBase 數據庫。

image?

?

?

image?

?

3.2 創建表

CREATE TABLE user1(id bigint NOT NULL AUTO_INCREMENT COMMENT "主鍵id",name varchar(64) NOT NULL COMMENT "姓名",age int NOT NULL COMMENT "年齡",enable_flag TINYINT COMMENT "是否可用(10-可用,20-刪除)" 
)

?

image?

?

3.3 插入數據

INSERT INTO user1(name, age, enable_flag) 
values('技海拾貝',39, 10),('張三', 51, 20),('李四',27, 10);

image?

?

image?

?

3.4 查詢數據

SELECT *
FROMuser1
WHEREenable_flag =20;

image?

?

?

OceanBase 以原生分布式架構重塑數據庫效能邊界,開源生態與金融級穩定性使其成為企業數字化轉型的利器。通過本文,您已解鎖 OceanBase 的基礎操作,而其真正的價值在于應對海量數據、高并發場景的無限潛力——無論是彈性擴縮容、HTAP 混合負載,還是跨地域多活,皆為業務增長提供堅實底座。

如果你對 OceanBase 以及分布式數據庫有更深入的興趣,歡迎繼續關注我們的后續文章,我們將深入探討其高級功能與實際應用場景。

3ec794dacde34583aafafe15b1490012?

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

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

相關文章

在 HuggingFace 中使用 SSH 進行下載數據集和模型

SSH 是一種 安全通訊的協議,我們通過配置 SSH 的密鑰 來在 Git 上實現 Huggingface 模型的命令行下載。 參考網址:https://huggingface.co/docs/hub/security-git-ssh 點擊自己的頭像,點擊 Add SSH key 在 Windows 上,我們實現已…

.NET Core MVC IHttpActionResult 設置Headers

最近碰到調用我的方法要求返回一個代碼值,但是要求是不放在返回實體里,而是放在返回的Headers上 本來返回我是直接用 return Json(res) 這種封裝的方法特別簡單,但是沒有發現設置headers的地方 查詢過之后不得已換了個返回 //原來方式 //…

Linux-----進程間通信

一、按通信范圍分類 同一主機進程通信 傳統IPC方式: 管道(無名管道、有名管道)信號(Signal) System V IPC: 共享內存(效率最高)消息隊列信號量 POSIX IPC(較新標準&#…

Ant Design按鈕樣式深度適配:實現<Button>與<a>標簽顏色完美同步

Ant Design按鈕樣式深度適配&#xff1a;實現與標簽顏色完美同步 問題現象診斷 組件結構原型 <Button type"link" disabled{disabled}><a href"...">下載</a> </Button>樣式沖突表現 狀態按鈕顏色鏈接顏色視覺問題啟用態Ant藍…

使用Python爬蟲獲取淘寶商品詳情:API返回值說明與案例指南

在電商數據分析和運營中&#xff0c;獲取淘寶商品詳情是常見的需求。淘寶開放平臺提供了豐富的API接口&#xff0c;允許開發者通過合法的方式獲取商品信息。本文將詳細介紹如何使用Python編寫爬蟲&#xff0c;通過淘寶API獲取商品詳情&#xff0c;并解析API返回值的含義和結構。…

并發 -- 無鎖算法與結構

文章目錄 什么是無鎖算法什么是原子變量什么是CAS操作Compare-And-Swap Weak在哪些情況下會失敗舉例說明無鎖結構無鎖結構的問題 什么是無鎖算法 無鎖算法&#xff08;Lock-Free Algorithm&#xff09;是一種并發編程技術&#xff0c;旨在實現多線程環境下的高效數據共享&…

考研/保研復試英語問答題庫(華工建院)

華南理工大學建筑學院保研/考研 英語復試題庫&#xff0c;由華工保研er和學碩筆試第一同學一起整理&#xff0c;覆蓋面廣&#xff0c;助力考研/保研上岸&#xff01;需要&#x1f447;載可到文章末尾見小&#x1f360;。 以下是主要內容&#xff1a; Part0 復試英語的方法論 Pa…

岳陽市美術館預約平臺(小程序論文源碼調試講解)

第4章 系統設計 一個成功設計的系統在內容上必定是豐富的&#xff0c;在系統外觀或系統功能上必定是對用戶友好的。所以為了提升系統的價值&#xff0c;吸引更多的訪問者訪問系統&#xff0c;以及讓來訪用戶可以花費更多時間停留在系統上&#xff0c;則表明該系統設計得比較專…

Python游戲編程之賽車游戲6-3

1 “敵人”汽車類的創建 在創建玩家汽車類之后&#xff0c;接下來創建“敵人”汽車類。“敵人”汽車類與玩家類一樣&#xff0c;也是包含兩個方法&#xff0c;一個是__init__()&#xff0c;另一個是move()。 1.1 __init__()方法 “敵人”汽車類的__init__()方法代碼如圖1所示…

TCP/UDP調試工具推薦:Socket通信圖解教程

TCP/UDP調試工具推薦&#xff1a;Socket通信圖解教程 一、引言二、串口調試流程三、下載鏈接 SocketTool 調試助手是一款旨在協助程序員和網絡管理員進行TCP和UDP協議調試的網絡通信工具。TCP作為一種面向連接、可靠的協議&#xff0c;具有諸如連接管理、數據分片與重組、流量和…

神經網絡 - 神經元

人工神經元(Artificial Neuron)&#xff0c;簡稱神經元(Neuron)&#xff0c;是構成神經網絡的基本單元&#xff0c;其主要是模擬生物神經元的結構和特性&#xff0c;接收一組輸入信號并產生輸出。 生物學家在 20 世紀初就發現了生物神經元的結構。一個生物神經元通常具有多個樹…

藍橋杯備考:貪心算法之矩陣消除游戲

這道題是牛客上的一道題&#xff0c;它呢和我們之前的排座位游戲非常之相似&#xff0c;但是&#xff0c;排座位問題選擇行和列是不會改變元素的值的&#xff0c;這道題呢每每選一行都會把這行或者這列清零&#xff0c;所以我們的策略就是先用二進制把選擇所有行的情況全部枚舉…

DeepSeek系統架構的逐層分類拆解分析,從底層基礎設施到用戶端分發全鏈路

一、底層基礎設施層 1. 硬件服務器集群 算力單元&#xff1a; GPU集群&#xff1a;基于NVIDIA H800/H100 GPU構建&#xff0c;單集群規模超10,000卡&#xff0c;采用NVLink全互聯架構實現低延遲通信。國產化支持&#xff1a;適配海光DCU、寒武紀MLU等國產芯片&#xff0c;通過…

ktransformers 上的 DeepSeek-R1 671B open-webui

ktransformers 上的 DeepSeek-R1 671B open-webui 一、下載GGUF模型1. 創建目錄2. 魔塔下載 DeepSeek-R1-Q4_K_M3. 安裝顯卡驅動和cuda4. 顯卡 NVIDIA GeForce RTX 4090 二、安裝ktransformers1. 安裝依賴2. 安裝uv工具鏈3. 下載源碼4. 創建python虛擬環境 三、編譯ktransforme…

smolagents學習筆記系列(五)Tools-in-depth-guide

這篇文章鎖定官網教程中的 Tools-in-depth-guide 章節&#xff0c;主要介紹了如何詳細構造自己的Tools&#xff0c;在之前的博文 smolagents學習筆記系列&#xff08;二&#xff09;Agents - Guided tour 中我初步介紹了下如何將一個函數或一個類聲明成 smolagents 的工具&…

形式化數學編程在AI醫療中的探索路徑分析

一、引言 1.1 研究背景與意義 在數字化時代,形式化數學編程和 AI 形式化醫療作為前沿領域,正逐漸改變著我們的生活和醫療模式。形式化數學編程是一種運用數學邏輯和嚴格的形式化語言來描述和驗證程序的技術,它通過數學的精確性和邏輯性,確保程序的正確性和可靠性。在軟件…

C#初級教程(3)——變量與表達式:從基礎到實踐

一、為什么使用變量 計算機程序本質上是對數據的操作&#xff0c;數字、文字、圖片等在計算機中都屬于數據。而變量&#xff0c;就是數據在計算機內存中的 “棲息地”。我們可以把變量想象成一個個小盒子&#xff0c;這些盒子能存放各種數據&#xff0c;需要時還能隨時取出。 二…

【深度學習神經網絡學習筆記(三)】向量化編程

向量化編程 向量化編程前言1、向量化編程2、向量化優勢3、正向傳播和反向傳播 向量化編程 前言 向量化編程是一種利用專門的指令集或并行算法來提高數據處理效率的技術&#xff0c;尤其在科學計算、數據分析和機器學習領域中非常常見。它允許通過一次操作處理整個數組或矩陣的…

海康威視攝像頭RTSP使用nginx推流到服務器直播教程

思路&#xff1a; 之前2020年在本科的時候&#xff0c;由于項目的需求需要將海康威視的攝像頭使用推流服務器到網頁進行直播。這里將自己半個月琢磨出來的步驟給大家發一些。切勿轉載&#xff01;&#xff01;&#xff01;&#xff01; 使用網絡攝像頭中的rtsp協議---------通…

鴻蒙開發深入淺出03(封裝通用LazyForEach實現懶加載)

鴻蒙開發深入淺出03&#xff08;封裝通用LazyForEach實現懶加載&#xff09; 1、效果展示2、ets/models/BasicDataSource.ets3、ets/models/HomeData.ets4、ets/api/home.ets5、ets/pages/Home.ets6、ets/views/Home/SwiperLayout.ets7、后端代碼 1、效果展示 2、ets/models/Ba…