news 2026/8/22 13:18:25

如何用 ODC 一个平台连接管理 OceanBase、MySQL 和 Oracle 数据库:数据源管理完全教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 ODC 一个平台连接管理 OceanBase、MySQL 和 Oracle 数据库:数据源管理完全教程

如何用 ODC 一个平台连接管理 OceanBase、MySQL 和 Oracle 数据库:数据源管理完全教程

【免费下载链接】odcOceanBase Developer Center(ODC), An open-source, enterprise-grade database tool for collaborative development项目地址: https://gitcode.com/gh_mirrors/od/odc

OceanBase Developer Center(ODC)是一款开源的企业级数据库管理工具,通过统一的数据源管理能力,让你在一个平台上同时连接并管理OceanBase、MySQL、Oracle等多种数据库。本教程面向新手,带你看懂 ODC 数据源管理从创建、测试、授权到安全存储的完整流程。

为什么用 ODC 管理多类型数据库?

传统模式下,开发团队往往要为 OceanBase、MySQL、Oracle 各装一套客户端工具,账号分散、权限难控、变更无审计。ODC 把这些工作统一到一个 Web 平台:

  • 🌐浏览器即客户端:基于现代 WEB 架构,有浏览器就能访问数据库
  • 🔌多数据库适配:通过插件机制适配 OceanBase(MySQL/Oracle 模式)、MySQL、Oracle,甚至 Doris、PostgreSQL
  • 🛡️内置风险控制:SQL 检查、审批流程、敏感数据脱敏贯穿开发全流程
  • 👥组织级协同:数据源可共享到团队,配合权限体系精细化管理

各数据库的适配实现位于 server/plugins/ 目录,例如 connect-plugin-ob-mysql/、connect-plugin-mysql/、connect-plugin-oracle/,一个插件对应一种数据库的连接与元数据访问能力。

数据源管理的核心代码在哪里?

ODC 的数据源(连接)管理集中在 server/odc-service/src/main/java/com/oceanbase/odc/service/connection/ 目录,几个关键类:

模块职责
ConnectionService.java数据源的创建、修改、删除、查询
ConnectionTestService.java连接可用性测试
ConnectionEncryption.java账号密码加密存储
ConnectionLabelService.java数据源标签分类管理
database/DatabaseService.java数据库(库表)元数据同步

数据源的完整配置模型定义在 ConnectionConfig.java,理解它就能理解 ODC 支持哪些连接参数。

快速上手:创建第一个 OceanBase 数据源

登录后进入「数据源管理」页面,点击「创建数据源」,选择OceanBase类型。需要填写的核心参数(与 ConnectionConfig.java 中的字段一一对应):

  1. 名称(name):数据源别名,1~128 个字符,建议用「环境-用途」命名,如prod-order
  2. 主机(host)与端口(port):OceanBase 集群地址,默认端口2881
  3. 集群名(clusterName)与租户名(tenantName):OceanBase 特有的租户架构参数
  4. 用户名与密码:业务账号;如需元数据自动同步,还可配置系统租户账号(sysTenantUsername)只读账号(readonlyUsername)

💡 OceanBase 采用「集群-租户-数据库」三层结构,这是它与普通 MySQL 连接最大的区别,ODC 会把租户信息一并纳入管理。

填写完成后点击「测试连接」,ODC 会真正发起一次数据库握手并返回结果,测试逻辑见 ConnectionTestService.java,建议保存前务必先测试

如何连接 MySQL 和 Oracle 数据库?

选择对应数据库类型后,参数会略有不同:

连接 MySQL

  • 主机、端口(默认3306)、用户名、密码即可
  • 与 OceanBase MySQL 模式语法高度兼容,查询、导出等体验一致

连接 Oracle

Oracle 连接多了几项专有参数(同样定义在 ConnectionConfig.java):

  • 连接方式:支持 Service Name 或 SID 两种方式,对应serviceName/sid字段
  • 用户角色(userRole):可指定以 SYS 或普通用户身份连接
  • 默认端口1521

创建成功后,三种数据库就并列出现在同一个数据源列表里,后续开发、查询、导出、审批全部复用同一套流程,不用再切换工具。

数据源管理 5 个实用技巧

  1. 🏷️ 打标签分类:用标签服务 ConnectionLabelService.java 把数据源标记为「生产 / 测试 / 开发」,列表筛选一目了然
  2. 🔐 权限最小化:数据源创建后默认在组织内可见,谁可用哪个库由权限体系控制(相关常量见core/shared/constant/ConnectionVisibleScope),新成员不会一上来就拥有生产库权限
  3. 📦 批量导入:支持批量导入数据源配置,迁移环境时不用一条条手填,预览与导入逻辑见 ConnectionBatchImportPreviewer.java
  4. 🔄 元数据自动同步:库表结构变化后 ODC 会自动同步元数据缓存,后台调度见 database/DatabaseSyncManager.java,查询对象树永远是最新状态
  5. ♻️ 回收站机制:误删的数据源不会立即消失,ConnectionConfigRecycleService.java 提供回收站,可恢复或彻底删除

数据源安全:密码是明文存储的吗?

不是。ODC 对所有数据源密码采用加密存储:

  • 密码字段在接口层被标记为只写参数(WRITE_ONLY),返回给前端时自动屏蔽
  • 落库前由 ConnectionEncryption.java 调用 odc-common 加密组件 加密,数据库里查不到明文
  • 所有数据源的访问行为都会进入审计日志

配合敏感数据脱敏能力,即使开发拿到了查询权限,也接触不到手机号、身份证等敏感字段。

如何快速部署 ODC 开始管理数据库?

ODC 提供WEB 版(多人协同,Docker / RPM 安装)和桌面版(个人开发,Electron 应用,双击安装包即用,内置 H2 元数据库,零配置)。

WEB 版体验只需三步(详细要求见 README-zh-CN.md):

  1. 准备一个 OceanBase MySQL 租户作为 ODC 的元数据库(MetaDB)
  2. 用 Docker 启动 ODC 容器,通过环境变量传入 MetaDB 地址和 admin 初始密码
  3. 浏览器访问http://<服务器IP>:8989,登录即可创建数据源

如果你是开发者,也可以克隆仓库后用 IDEA 直接启动 OdcServer.java,开发调试指南见 docs/zh-CN/DEVELOPER_GUIDE.md。

常见问题 FAQ

Q1:ODC 只支持 OceanBase 吗?不是,MySQL、Oracle 是原生支持的核心类型,Doris、PostgreSQL 也提供独立插件。

Q2:连接测试失败怎么办?依次排查:网络与端口是否放行 → 用户名密码是否正确 → OceanBase 是否填对了租户名。测试接口会返回具体错误原因,前端会直接提示。

Q3:生产库权限怎么管?把生产数据源单独打标,只在项目里按需授权,配合审批流程,任何 SQL 变更都要走审批单。

总结

ODC 用一套统一的数据源管理体系,把 OceanBase、MySQL、Oracle 的连接、授权、同步和安全收拢到一个平台:

  • 创建数据源时按类型填写对应参数,测试通过后即可在 SQL 开发、数据导出等全场景复用
  • 标签、权限、回收站、批量导入让数据源管理有章可循
  • 密码加密存储 + 审计日志 + 数据脱敏,构建企业级安全底线

跟着本教程走一遍,你应该已经能在 ODC 中连上自己手上的第一种数据库了。想要体验完整的协同开发能力,建议从 WEB 版部署开始,把团队的数据库都纳入管理。

【免费下载链接】odcOceanBase Developer Center(ODC), An open-source, enterprise-grade database tool for collaborative development项目地址: https://gitcode.com/gh_mirrors/od/odc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 13:17:34

OptiCommPy模拟线性光纤通道

文章目录原理实现示例原理 在实际光纤中&#xff0c;光信号传输存在诸多非线性效应&#xff0c;比如自相位调制 SPM、交叉相位调制 XPM、四波混频 FWM 等。而对于线性模型而言&#xff0c;则只考虑光线衰减和色度色散这两方面的因素。 从数学角度来说&#xff0c;线性衰减的过…

作者头像 李华
网站建设 2026/8/22 13:16:52

3 步完成量化回测可视化:backtrader-pyqt-ui 实战

3 步完成量化回测可视化&#xff1a;backtrader-pyqt-ui 实战 【免费下载链接】backtrader-pyqt-ui 项目地址: https://gitcode.com/gh_mirrors/bac/backtrader-pyqt-ui 打开界面&#xff0c;改一个参数&#xff0c;点 Run&#xff0c;几秒后图表刷新出新标记——backt…

作者头像 李华
网站建设 2026/8/22 13:16:00

第234篇 运动规划面试高频题——面试官最爱问的15个规划问题

前面十篇&#xff08;224-233&#xff09;讲了运动规划的各种算法——Reed-Shepp曲线、混合A*、轨迹优化、B样条、TOPP、碰撞检测、CHOMP/TrajOpt。今天做一个总结&#xff1a;把面试官最爱问的15个运动规划问题整理在一起&#xff0c;每个问题给出精炼的回答要点。面试运动规划…

作者头像 李华
网站建设 2026/8/22 13:15:05

开源程序启动器OpenProgram:打造个人效率中枢的实践指南

1. 项目概述&#xff1a;一个开源的“程序启动器”能做什么&#xff1f;如果你和我一样&#xff0c;电脑里装满了各种开发工具、设计软件、效率应用和随手写的小脚本&#xff0c;那么每天打开电脑后&#xff0c;第一件头疼的事可能就是&#xff1a;我要从哪里启动它们&#xff…

作者头像 李华