gt-checksum 2.0.0 版本迎来重磅升级,本次更新围绕三大核心方向全面提升:
Oracle→MySQL 迁移兼容、索引与生成列检测修复、核心性能大幅优化。
同时修复多项关键问题,完善全场景测试覆盖,让数据库结构与数据一致性校验更高效、更精准、更稳定。
一、核心功能新增
-
Oracle→MySQL 全模式兼容落地支持 Oracle→MySQL data/struct 双模式校验,采用列类型映射实现宽松兼容,覆盖 VARCHAR2/CHAR/NCHAR/NVARCHAR2/NUMBER/FLOAT/TIMESTAMP/DATE/CLOB/BLOB/RAW 等主流 Oracle 字段类型。
-
索引检测修复能力扩展新增前缀索引、函数索引的检测与修复能力,补齐索引差异校验场景。
-
MySQL 生成列全场景支持支持 MySQL→MySQL 场景下 STORED/VIRTUAL 类型生成列的检测与修复,完善生成列一致性校验能力。
二、性能重磅优化
-
Oracle struct 模式元数据采集重构Oracle 源端struct模式元数据采集改为按 schema 批量预加载,列、索引、外键、分区信息统一一次查询,替代逐表 N 次往返查询;测例场景下元数据采集耗时从~60s 降至~2s。
-
data 模式并行化提速data模式元数据采集由串行改为并行执行,新增 schema 级表存在性缓存、分区状态缓存,消除重复探测查询;测例场景下data模式端到端耗时降低约 50%。
三、兼容性深度优化
扩展生成列跨版本兼容能力,支持MariaDB 10.0(PERSISTENT/VIRTUAL格式)与MySQL 8.0(STORED GENERATED/VIRTUAL GENERATED格式)生成列等价识别,消除跨版本误报;生成列表达式比对新增大小写折叠、反引号差异自动归一化,解决跨版本格式差异导致的误判问题。
四、关键问题修复
-
修复含需 DROP 列(如 MySQL 8.4 隐式主键my_row_id)时,列序号未同步压缩导致collation修复列在ALTER TABLE中重复出现的问题;
-
修复 JSON 函数索引表达式中单引号被转义引发的 DDL 语法报错问题;
-
修复同名索引内容不同时的漏检问题,无论索引名称集合是否一致均执行内容比对,覆盖全场景索引校验;
-
修复checkObject=struct/trigger/routine模式下总耗时与杂项耗时输出为 0 的问题,统一耗时结算逻辑,全分支输出准确耗时。
五、测试体系全面完善
-
新增 Oracle 元数据预加载专项单元测试,覆盖缓存命中、大小写归一化、目标端缓存复用等场景,防止功能回归;
-
新增生成列跨版本、前缀索引、分片逻辑、Oracle 类型映射等数十个单元测试,覆盖全场景边界用例;
-
新增scripts/regression-test-oracle.shOracle→MySQL 端到端回归脚本,新增 struct 预修复环节,提升 data 校验准确性;
-
优化测试用例版本兼容格式,适配多数据库版本执行,完善测试体系通用性。
六、下载地址
gt-checksum v2.0.0 版本已正式上线,欢迎广大用户下载更新、体验升级后的各项功能,也期待大家反馈使用过程中的建议与问题,共同完善工具能力! 下载地址:https://gitee.com/GreatSQL/gt-checksum/releases/tag/2.0.0