如何用 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 中的字段一一对应):
- 名称(name):数据源别名,1~128 个字符,建议用「环境-用途」命名,如
prod-order - 主机(host)与端口(port):OceanBase 集群地址,默认端口
2881 - 集群名(clusterName)与租户名(tenantName):OceanBase 特有的租户架构参数
- 用户名与密码:业务账号;如需元数据自动同步,还可配置系统租户账号(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 个实用技巧
- 🏷️ 打标签分类:用标签服务 ConnectionLabelService.java 把数据源标记为「生产 / 测试 / 开发」,列表筛选一目了然
- 🔐 权限最小化:数据源创建后默认在组织内可见,谁可用哪个库由权限体系控制(相关常量见
core/shared/constant/ConnectionVisibleScope),新成员不会一上来就拥有生产库权限 - 📦 批量导入:支持批量导入数据源配置,迁移环境时不用一条条手填,预览与导入逻辑见 ConnectionBatchImportPreviewer.java
- 🔄 元数据自动同步:库表结构变化后 ODC 会自动同步元数据缓存,后台调度见 database/DatabaseSyncManager.java,查询对象树永远是最新状态
- ♻️ 回收站机制:误删的数据源不会立即消失,ConnectionConfigRecycleService.java 提供回收站,可恢复或彻底删除
数据源安全:密码是明文存储的吗?
不是。ODC 对所有数据源密码采用加密存储:
- 密码字段在接口层被标记为只写参数(
WRITE_ONLY),返回给前端时自动屏蔽 - 落库前由 ConnectionEncryption.java 调用 odc-common 加密组件 加密,数据库里查不到明文
- 所有数据源的访问行为都会进入审计日志
配合敏感数据脱敏能力,即使开发拿到了查询权限,也接触不到手机号、身份证等敏感字段。
如何快速部署 ODC 开始管理数据库?
ODC 提供WEB 版(多人协同,Docker / RPM 安装)和桌面版(个人开发,Electron 应用,双击安装包即用,内置 H2 元数据库,零配置)。
WEB 版体验只需三步(详细要求见 README-zh-CN.md):
- 准备一个 OceanBase MySQL 租户作为 ODC 的元数据库(MetaDB)
- 用 Docker 启动 ODC 容器,通过环境变量传入 MetaDB 地址和 admin 初始密码
- 浏览器访问
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),仅供参考