信创项目常要求数据库国产化。本文给出可观测平台对接 OceanBase(MySQL 模式)、达梦、GaussDB 的连接配置、方言差异与常见坑,附连接串示例与迁移验收建议。
信创项目里,「数据库国产化」往往是验收清单上的硬指标,而且这个要求不止落在核心业务上,支撑系统也要跟上。可观测平台自己的元数据和配置库(用户、告警规则、查询权限)同样需要落到国产数据库上。炬鲸 OBSERVE 支持 MySQL 协议,这让它天然能对接一大批国产数据库,但「支持 MySQL 协议」不等于「零改动」,几个细节要提前处理,否则上线后再补。
OceanBase 的 MySQL 兼容模式是平滑度最高的选择。只需把连接串的 host/port 换成 OceanBase 的 OBProxy 地址:
mysql -h obproxy.example.com -P 2883 -u observe -p
应用侧零改动。注意两点:一是 OceanBase 建议把 sql_mode 对齐 MySQL 5.7 的默认值,避免 ONLY_FULL_GROUP_BY 带来的查询报错;二是 OceanBase 的租户要预建好,平台初始化时指定 tenant,不要用 sys 租户跑业务表。
达梦提供 MySQL 兼容模式,但部分 SQL 方言仍有差异。实践中主要踩过三个坑:
LIMIT 时建议走兼容模式,否则要用 TOP 或 ROW_NUMBER(),很多 ORM 会直接挂;UTF-8(达梦里是 UTF8),否则中文告警内容会乱码;jdbc:dm://host:5236?schema=OBSERVE。建议在达梦上开一个专门的 schema 给平台,避免和其他业务混用,升级和备份也更独立。
GaussDB 分集中式(单节点)和分布式(openGauss/MogDB 生态)。平台对接时优先选集中式部署,行为和传统 MySQL/PG 接近;分布式版本对跨节点 JOIN 有性能损耗,元数据表建议建在单分片上,避免跨分片外键。
连接串示例(openGauss 驱动):
jdbc:opengauss://host:5432/observe?currentSchema=observe
把可观测平台的元数据库迁移到国产库,建议按「先在测试库跑两周 → 核对告警规则和权限数据是否一致 → 切换主库 → 保留旧库一周回滚」的节奏走。验收时重点看三条:中文内容不乱码、告警规则和历史数据完整、查询性能不退化。动手前把这份清单带在身边:确认目标库的兼容模式和版本、初始化前对齐字符集(UTF8)和 sql_mode、用官方 JDBC 驱动、把平台 schema 或租户和业务数据分开、切库前测试两周并保留一周回滚窗口。数据库国产化不是把连接串换掉就完事,字符集、方言、驱动三件事提前确认,能省掉上线后的很多返工。