最近做了次 MySQL 5.7 到 OB 4.3 的迁移,用 OMS,整体还行,但有几个小坑耗了一整天,随手记一下。
第一个是字符集。源库有几个字段是 utf8mb3,迁过来 OB 按 utf8mb4 处理,长度校验就过不去了,后来统一在源端先转好。
第二个是隐式类型转换。MySQL 那边写得比较随意,where 里拿字符串跟数字比,迁到 OB 后直接全表扫了,延迟一下就上来了,加索引也不好使,最后是把 SQL 改成显式转换。
第三个是同步延迟,增量一度到分钟级,调了批大小和并发数才缓解。
总的感受:迁移前一定先把 SQL 和字符集过一遍,别等上了才炸。