首批通过分布式安全可靠测评,为关键业务系统打造
字符序导致 SQL 结果集不同
更新时间:2023-11-30 12:01
通过 OMS 从 DB2 迁移数据到 OceanBase 数据库 MySQL 模式发现全量校验数据不一致。
问题描述
在通过 OMS 从 DB2 数据库迁移数据到 OceanBase 数据库 MySQL 模式时,发现在全量校验阶段出现了数据不一致的情况。源端 DB2 的查询结果为 873 条,而目标端 OceanBase 数据库 MySQL 模式的查询结果为 14435 条。
适用版本
OceanBase V2.x 和 3.x 版本。
问题原因
数据不一致的原因可能是 OceanBase 数据库使用了默认的字符序 utf8mb4_general_ci 不区分大小写,但是 DB2 数据库使用了大小写区分。
解决方法
要解决这个问题,需要将 OceanBase 数据库 MySQL 模式使用的字符集改为utf8mb4,并将默认字符序校对规则修改为 utf8mb4_bin ,这样可以区分大小写。修改之后再进行查询,就能保证查询结果一致。