在麒麟 V10 与达梦 DM8 组成的信创环境里私有化部署可观测平台,覆盖兼容性配置、连接串、数据迁移与验收要点。
普通私有化项目,数据库默认就是 MySQL 或 PostgreSQL,按文档改个连接串就能跑。信创项目不一样——数据库通常是达梦、人大金仓或 OceanBase,存储引擎、字符集、SQL 方言都和 MySQL 有差异。接入前不做兼容性检查,轻则建表失败,重则线上数据乱码。
本文以达梦 DM8 + 麒麟 V10 为例,把坑提前标出来。
达梦默认大小写敏感、字符集可能是 GB18030。可观测平台通常按 MySQL 的习惯用 UTF-8 和小写表名,所以建库时要显式指定:
CREATE DATABASE observe
CHARACTER SET UTF8
CASE_SENSITIVE 0;
CASE_SENSITIVE 0 关闭大小写敏感,CHARACTER SET UTF8 统一字符集,这两项能避开绝大多数「表不存在」和「中文乱码」问题。
平台通过 MySQL 协议驱动连接达梦(达梦提供 MySQL 兼容层),连接串里只需要把驱动指向达梦的兼容端口:
DB_HOST=192.168.1.20
DB_PORT=5236
DB_USER=observe
DB_PASSWORD=***
DB_NAME=observe
部署本身很简单:下载 ARM 版二进制,填好 env 文件,用 systemd 拉起即可。
./observe --config ./env
如果是从 MySQL 迁到达梦,别用达梦自带的迁移工具直接拉大表,先迁表结构、再按时间窗口分批迁数据,否则容易卡在长事务上。
验收时除了日志检索、链路追踪、告警规则三项功能自检,还要专门验证两点:一是中文日志在达梦里查询不乱码,二是大批量写入(如每秒 5 万条日志)下查询延迟不劣化。
ORA-00942 表或视图不存在:多半是大小写敏感没关,重建库或改 CASE_SENSITIVEAsia/Shanghai