从 x86 + MySQL 迁到鲲鹏 ARM + 达梦数据库的完整步骤与坑:SQL 兼容、驱动替换、数据校验、回滚预案。
信创迁移最大的坑不是技术,是没想清楚"迁什么、迁到哪、怎么回滚"。开工前先确认三件事:
这三件事不定下来,后面每一步都可能返工。
炬鲸 OBSERVE 基于 Go + MySQL 协议。迁到达梦时,达梦提供 MySQL 兼容模式,多数 SQL 可直跑,但有三类要重点检查:
AUTO_INCREMENT、ON UPDATE CURRENT_TIMESTAMP、索引长度限制等方言差异LIMIT offset, count 语法在部分达梦版本需改写NOW()、IFNULL、GROUP_CONCAT 等需核对对应实现建议先用达梦自带的 SQL 迁移工具在测试机跑一遍 DDL,把报错一条条清掉,再谈数据迁移。这一步最花时间,也最容易被低估。
国产 ARM 服务器上用 Docker 或 systemd 部署,注意三点:
uname -m # 确认是 aarch64
docker pull --platform linux/arm64 observe:2.4.0
vm.max_map_count 等参数迁移后用三类校验确认一致性:抽样比对日志条数、核对告警规则触发结果、抽查关键 Trace。校验通过后再灰度切换流量,新旧并行一周,确认无异常再下线旧环境。
回滚预案要提前写好并演练一遍:出问题时把上报地址切回旧集群即可,改动成本很低。真正危险的是"迁移成功、旧环境立刻销毁",一旦发现数据不完整就没退路了。