楔子
庆涛前一段儿时间发布了一篇文章《在 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 企业版的安装包和商业许可证。
- 使用 obd 或 OAT 在新的服务器环境上部署一个全新的 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/
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|