← 返回文章列表
信创 3 分钟阅读 炬鲸团队

信创迁移实录:可观测平台从 x86 迁到国产 ARM + 达梦

从 x86 + MySQL 迁到鲲鹏 ARM + 达梦数据库的完整步骤与坑:SQL 兼容、驱动替换、数据校验、回滚预案。

迁移前先想清楚三件事

信创迁移最大的坑不是技术,是没想清楚"迁什么、迁到哪、怎么回滚"。开工前先确认三件事:

  1. 目标基线:CPU 是鲲鹏还是飞腾,OS 是麒麟 V10 还是统信 UOS,数据库是达梦还是 OceanBase
  2. 数据范围:历史日志要不要迁,还是只迁配置、告警规则、用户权限,历史数据走归档
  3. 回滚预案:新旧两套并行跑多久,切换点在哪,出问题怎么回退

这三件事不定下来,后面每一步都可能返工。

应用侧改造:驱动与 SQL 兼容

炬鲸 OBSERVE 基于 Go + MySQL 协议。迁到达梦时,达梦提供 MySQL 兼容模式,多数 SQL 可直跑,但有三类要重点检查:

  • 建表语句AUTO_INCREMENTON UPDATE CURRENT_TIMESTAMP、索引长度限制等方言差异
  • 分页LIMIT offset, count 语法在部分达梦版本需改写
  • 函数NOW()IFNULLGROUP_CONCAT 等需核对对应实现

建议先用达梦自带的 SQL 迁移工具在测试机跑一遍 DDL,把报错一条条清掉,再谈数据迁移。这一步最花时间,也最容易被低估。

部署到 ARM 服务器

国产 ARM 服务器上用 Docker 或 systemd 部署,注意三点:

uname -m                 # 确认是 aarch64
docker pull --platform linux/arm64 observe:2.4.0
  • 只装 aarch64 架构的依赖,别混用 x86 包,混用会导致镜像拉取失败或运行报段错误
  • 麒麟 V10 的 systemd、内核参数和 CentOS 有差异,检查文件句柄数(ulimit -n)、vm.max_map_count 等参数
  • 时区统一设为 Asia/Shanghai,并开启 NTP,避免日志时间错乱

数据校验与灰度切换

迁移后用三类校验确认一致性:抽样比对日志条数、核对告警规则触发结果、抽查关键 Trace。校验通过后再灰度切换流量,新旧并行一周,确认无异常再下线旧环境。

回滚预案要提前写好并演练一遍:出问题时把上报地址切回旧集群即可,改动成本很低。真正危险的是"迁移成功、旧环境立刻销毁",一旦发现数据不完整就没退路了。