迁移到达梦、人大金仓后,性能排查不能再靠熟悉的开源工具。本文给出信创数据库的监控指标清单、慢 SQL 采集方案与部署建议,以及字符集、驱动、时间口径、授权四个坑。
业务迁到信创数据库(达梦 DM、人大金仓 KingbaseES)之后,DBA 最先发现的一件事是:原来的慢查询日志、performance_schema、pg_stat_statements 这些习惯动作都没了,或者长得完全不一样。故障来了,常常只能靠数据库自带的模糊日志硬猜。可观测系统要做的第一件事,是把信创库纳入统一监控,和业务主机、应用放在同一套体系里看,而不是让它成为一块"黑盒"孤岛。
不管底层是 DM 还是 KingbaseES,先用通用指标建立基线:
炬鲸 OBSERVE 通过 JDBC/标准采集器对接这两类库,把以上指标统一收进监控面板,和主机、应用的指标放在同一时间轴上对齐,方便交叉比对。基线不必一开始就求全,先把连接数、长事务、锁等待这三项稳定采集一周,画出曲线,再谈告警阈值。
DM 和 KingbaseES 都保留了慢 SQL 视图,但字段名和启用方式不同。以 DM 为例,先开启慢语句记录:
-- 达梦:开启慢语句记录,阈值 200ms
SP_SET_PARA_VALUE(1, 'MONITOR_SQL_EXEC', 1);
ALTER SYSTEM SET 'SQL_TRACE_MASK' = 3;
采集端定时拉取慢 SQL 视图,把执行次数、平均耗时、扫描行数、SQL 文本摘要一起上报。注意两点:一是 SQL 文本要做脱敏,参数值替换成 ?,避免敏感数据进日志;二是按"模板"聚合,同样的 SQL 不同参数只算一条,方便找出高频慢语句,而不是被一千个一次性变体淹没。
采集器建议跑在数据库主机旁边或应用侧,用只读账号连接,权限只给到系统视图查询。生产库不要用 DBA 账号做采集,一次误操作就是事故。采集频率默认 30 秒,指标量不大的环境可以调到 60 秒省开销;慢 SQL 视图可以按分钟拉,配合趋势判断比单点值更有意义。信创环境常见"内网隔离 + 私有化部署",采集器要支持离线安装、内网直连,不依赖外网。
最后一条建议:迁移阶段先把"慢 SQL 数量、长事务数、锁等待"三个指标盯住,它们最能反映业务是否吃下了新库的性能特征。等基线稳定了,再逐步加告警规则,否则你会一直在追阈值,而不是追真正的回退。