博客 / 詳情

返回

深入解析 OceanBase 生態工具鏈 —— OAT / obd / OCP / obshell

楔子

慶濤前一段兒時間發佈了一篇文章《在 Ubuntu 虛擬機中部署 OceanBase 數據庫》,主要目的是為 OceanBase 的學習者分享相關經驗。

但有一位曾經身在美國的前 Snowflake 開發工程師,在文中劃線吐槽 OceanBase 的生態工具 “過於豐富”,定位和關係容易令人感到困惑。

所以,今天我們就專門邀請了這些生態工具的產品負責人 —— 治民大佬,來為大家詳細介紹和解析下面這張 OceanBase 產品工具關係圖中所示的生態工具鏈。

歡迎大家關注 OceanBase 社區公眾號 “老紀的技術嘮嗑局”,在這個公眾號中,會持續為大家更新與 #數據庫、#AI、#OceanBase 相關的技術內容!

説明:

本文的受眾主要是 DBA。

如果是個人開發者:

  • Linux 環境下,推薦使用 seekdb 的安裝包[1]。
  • Windows / Mac 環境下,推薦直接使用 seekdb[2] 的桌面版。

背景

OceanBase 作為一款領先的分佈式雲原生數據庫,其強大的功能不僅體現在內核的高性能與高可用性以及強大的物理資源雲化管理上,更體現在其豐富且層次分明的生態工具鏈上。這些工具共同構成了一個從部署、運維到管理的完整體系。

然而,對於社區版新用户或希望從社區版遷移到企業版的用户而言,OAT、obd、OCP 與 obshell / obshell Dashboard 等工具的定位和關係常常令人困惑。

本文旨在深入剖析這些核心工具的功能、定位及其相互關係,併為社區版用户提供一條清晰、可行的向企業版升級的路徑。

一些歷史

  • 2017 年商業化階段:OceanBase 正式對外商業化,我們提供了基於 OAT / OCP 的商業化部署方案。其中,OAT 作為獨立工具,有效解決了部署 OCP、OMS、ODC 等產品時對元數據庫(MetaDB 基於 OceanBase)的依賴問題,隨後通過 OCP 部署企業版集羣,大幅簡化了商業化交付流程,實現了安裝部署的標準化。
  • 2021 年開源階段:隨着OceanBase開源,考慮到 OAT 僅支持 Docker 化部署,難以滿足社區版用户對輕量化和簡易部署的需求,我們選定 obd 作為社區版官方安裝工具,並持續擴展其功能。obd 不僅支持 OceanBase(社區 / 企業版)的部署,還支持OCP(社區 / 企業版)的部署與升級,同時具備基礎運維管理能力,有效響應了用户對命令行管控和簡化 OCP 部署升級的訴求。
  • 2023 年輕量化解決方案演進:在服務中小型客户過程中,針對部分用户對命令行與輕量級可視化管控的需求,我們進一步推出了內核級 obshell / obshell Dashboard 解決方案。該方案旨在讓 obd / OCP 或其他三方產品能夠基於 obshell SDK 進行 OceanBase 數據運維,實現所有運維管理操作的狀態一致性。

説明:

obd 部分操作已適配 obshell,OCP(社區 / 企業版)支持 obshell 的啓動 / 停止操作。

OceanBase 核心運維管理工具概覽與關係

OceanBase 的安裝部署和運維管理工具可以大致分為三個層級:命令行工具、圖形化管理平台,以及內核級工具。它們相互協作,共同服務於數據庫的全生命週期管理。

1. 工具簡介

(1)OAT (OceanBase Administration Tool):企業版部署的輔助工具

OAT 是一個相對特定的工具,主要用於 OceanBase 企業版產品工具的部署。

  • 核心功能:OAT 的主要功能是支持部署 OceanBase 企業版的產品工具。它是企業版生態中的關鍵環節,旨在為商業化部署場景提供便利。
  • 定位與特點:OAT 的定位比 obd 更加專一,它服務於企業版產品工具如 OCP / ODC / OMS 以及 MetaDB(docker 形式) 等安裝部署 / 擴縮容 / 升級等。
  • 應用場景:商業化交付場景。

(2)obd (OceanBase Deployer):開箱即用的部署與基礎運維工具

obd 是 OceanBase 最基礎、最核心的集羣 / OCP(企業和社區版) 安裝部署工具,它扮演着 “自動化部署專家” 的角色。

  • 核心功能:obd 的主要職責是簡化 OceanBase 集羣 / OCP 安裝與部署。它支持 YAML 配置文件 / 交互式 / 可視化(web UI)三種部署形式,能夠完成從軟件包安裝、環境預檢查、環境配置、參數配置到集羣啓動的整個流程,極大地降低了部署的複雜度。
  • 定位與特點:obd 是一個安裝部署工具和集中化管控工具,強調“開箱即用”。它為用户提供了高度的靈活性和可定製性,適合熟悉命令行操作的用户或需要自動化腳本集成的場景。同時 obd 支持 RPM 形式部署方案,滿足了部分對容器化技術有顧慮或有嚴格合規要求的客户的需求,確保了部署方式的普適性和選擇的多樣性。
  • 運維能力:除了安裝部署,obd 還提供了一定的運維能力,例如 obd cluster display 查看集羣狀態、obd cluster restart 重啓集羣、obd cluster destroy 銷燬集羣以及租户管理能力等。但其運維功能相對基礎,主要集中在集羣 / 租户的生命週期管理上, 若需可視化管控能力,建議與 obshell Dashboard 配合使用。
  • 應用場景:多集羣管理、入門體驗、測試環境、中小規模生產。

(3)OCP (OceanBase Cloud Platform): 企業級圖形化管理平台

OCP 是 OceanBase 的企業級雲管理平台,是數據庫管理的 “一站式中心”。

  • 核心功能:OCP 提供了一個功能強大的 Web 圖形化界面,它不僅支持部署和管理 OceanBase 集羣,還提供全面的集羣監控、性能分析、告警管理、備份恢復、租户管理、SQL 診斷與優化、自動化運維等高級功能。OCP 是企業用户進行日常運維、故障排查和容量規劃的首選工具。
  • 定位與特點:OCP 的定位是“企業級”和“可視化”。它極大地降低了數據庫運維的門檻,使非資深 DBA 也能高效地管理數據庫。OCP 本身也有社區版和企業版之分,其功能和授權策略有所不同,具體功能差異詳見 OCP 官網文檔。
  • 部署方式:OCP 的部署通常有三種路徑:一是直接使用 obd 配置文件形式部署;二是通過 obd web 命令啓動一個 Web 安裝嚮導,以更直觀的圖形化方式引導用户完成 OCP 的部署;三是通過 OAT 進行可視化部署。
  • 應用場景: 多集羣管理、大規模生產環境、企業級運維。

(4)obshell /obshell Dashboard: 內核級的命令行與可視化工具

obshell / obshell Dashboard 是與 OceanBase 深度集成的內核運維管理工具。作為 OceanBase 內核的原生組件,它提供了最直接的數據庫操作接口。

  • 核心功能:obshell 是一個 “免安裝、開箱即用的本地集羣命令行工具”。它不是一個獨立的外部工具,而是由 OceanBase Server 節點(OBServer)提供的。obshell 內嵌在 OceanBase 的 RPM 包中,部署集羣時會自動安裝。它支持集羣的運維操作,並基於 OBServer 節點對外提供運維管理 SDK。obshell Dashboard 則是 obshell 提供的基於 Web 的交互式管理頁面,用於監控和管理集羣及租户資源。
  • 定位與特點:obshell 的定位是 “內核級” 和 “輕量版 OCP”。它與 obd 不同,obd 是外部部署工具,而 obshell 是內核提供的本地運維接口。obd 在管理集羣時,會利用 obshell 提供的 python SDK 來執行部分運維操作。可以理解為,obd 是 “指揮官”,而 obshell 是 “執行兵”。對於單機或單個集羣,obshell Dashboard 提供了一個輕量級的 Web 界面,可以作為 OCP 替代品,同時也可以實現 OCP 不可用場景下時的數據庫運維管理能力。
  • 應用場景:單集羣管理、開發測試、小型生產環境。

2. 工具定位與功能矩陣

工具名稱 主要功能 部署目標 用户界面 適用場景
OAT 企業版產品工具部署平台 OCP(企業版) Web UI 商業化交付場景。
obd 自動化部署與基礎運維 OceanBase(社區/企業版)、OCP(社區/企業版) CLI / Web UI 中小規模、成本敏感場景。
企業版 OCP 企業級全功能管理平台 OceanBase(企業版) Web UI 大規模企業級運維。
社區版 OCP 企業級全功能管理平台 OceanBase(社區版)
obshell / obshell Dashboard 內核級運維管理工具 自動隨 OceanBase 部署(社區/企業單機版) CLI / Web UI 輕量級本地管理。 注意:obshell 同 OceanBase 企業版同步部署以及企業版 OCP 適配 obshell 預計 2026 年下半年完成。

3. 產品工具關係圖

管控使用方式建議

對於社區用户,如果不習慣 OAT 的管理方式,您可以選擇以下兩種方案進行集羣運維:

(1)直接使用 obd + obshell / obshell Dashboard 組合,實現命令行與輕量可視化工具結合的運維管理;

(2)通過 obd 部署企業版 OCP,再由 OCP 管理企業版集羣,實現圖形化集中化運維管控並通過 obd 管理 OCP 的運維管理和升級。本組合下,obd 會扮演商業版 OAT 的角色。

工具使用建議

業務階段 用户類型 用户畫像 推薦工具組合 優勢 適用場景
入門探索 初學者 數據庫新手 學生 技術愛好者 obd CLI + obshell Dashboard 學習成本低,部署簡單 個人學習 測試環境
開發測試 個人開發者 獨立開發者 創業團隊 中小項目負責人 obd Web UI + obshell Dashboard 可視化操作,運維便捷 開發測試 中小項目
中小生產 個人開發者 obd + OCP 功能全面,符合操作習慣
企業級 DBA / SRE 企業DBA 運維工程師 架構師 obd + OCP 或者 OAT+OCP 功能完整,運維高效 集羣規模 ≥ 10 個(建議)

注意:

為避免管理混亂,建議大家在整個生命週期內僅選擇其中一種方式對集羣進行統一管理。

從社區版到企業版 —— 升級路徑建議

許多用户從 OceanBase 社區版開始,隨着業務發展,對性能、穩定性、功能或官方技術支持的需求日益增長,最終希望遷移到企業版。然而直接的 “原地升級”(in-place upgrade)從社區版到企業版並不可行。

主要包含 2 方面的原因:

  • OceanBase 官方不支持直接將社區版集羣升級為企業版。
  • 企業版和社區版 OCP 在集羣管理上互不兼容,各自只能管理對應版本的集羣。

推薦的升級路徑:數據遷移法

基於不能原地升級的事實,最可靠的方法是通過在線數據遷移來實現從社區版到企業版的平滑過渡。核心步驟如下

(1)準備企業版環境

  • 獲取 OceanBase 企業版的安裝包和商業許可證。
  • 使用 obdOAT 在新的服務器環境上部署一個全新的 OCP 企業版
  • 通過新部署的 OCP 企業版,在另一組服務器上創建一個全新的 OceanBase 企業版集羣。確保新集羣的硬件配置、網絡環境等滿足業務要求。

(2)執行數據遷移

  • 利用 OceanBase 生態中的遷移工具社區版 OMS (OceanBase Migration Service) 來完成數據遷移。
  • 為社區版集羣和企業版集羣創建一個數據遷移項目,配置源(社區版)和目標(企業版)。
  • OMS 支持結構遷移,全量遷移和增量同步,可以實現業務的 不停服遷移。首先進行全量數據拷貝,然後在後台持續同步增量數據,最終在業務低峯期進行一次短暫的切換,將應用的連接字符串從社區版切換到企業版。

(3)驗證與切換

  • 在數據遷移完成後,對新企業版集羣進行全面的功能和性能驗證,確保數據完整性和業務邏輯正確。
  • 驗證無誤後,正式將應用流量切換至企業版集羣。若需反向數據同步,請使用企業版 OMS 創建企業版 OB 到社區版 OB 的增量數據同步鏈路。
  • 監控新集羣的運行狀態,確保服務運行穩定。

總結與展望

  • 部署階段:OCP、obd、OAT提供靈活的部署方式選擇
  • 運維階段:OCP、obd、obshell / obshell Dashboard 提供不同層級和業務場景的運維能力

OceanBase 為社區版用户提供了清晰的企業版升級路徑。通過在線數據遷移技術,用户可在不影響業務運行的前提下,平滑升級至功能更完善、支持更全面的企業版,滿足不同發展階段的需求。在運維生態方面,OceanBase 構建了 OCP 與 obshell / obshell Dashboard 的協同體系,兩者互為補充,共同確保各類業務場景的全面運維支持。正確理解各工具的定位和適用場景,選擇合適的管控方案,是成功部署和使用 OceanBase 的關鍵。

未來,OCP 將與 obshell 將深度融合,構建協同一致全客户覆蓋的運維體系。OCP 會持續強化可視化管控與企業級能力,obshell 則專注於輕量敏捷。通過兩者的優勢互補,我們將大幅降低數據庫使用門檻,使 OceanBase 運維更加簡單高效。這種 “重輕結合” 的創新模式將有力推動 OceanBase 在更廣泛業務場景的普及應用,加速生態繁榮發展。

參考資料

[1] seekdb 的安裝包: https://www.oceanbase.com/softwarecenter

[2] seekdb: https://www.oceanbase.ai/

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.