Jync v1.12.0 · 同步前检查、内容校验与诊断包
新增
-
同步前检查:项目页可在不写入任何数据的情况下排练下一轮:源/目标连通性、待执行的 CREATE/ALTER/DROP、目标表缺失/缺列/类型不兼容、游标列与索引、CDC 可用性,以及 binlog CDC 的表布局漂移(停机期间源表跑过 DDL 会在预检报错并提示重建基线)。结果按 ERROR / WARN / OK / SKIP 分组。
-
内容级校验:增量同步后按主键抽样比对源与目标的行值,能发现「行数相同但内容不同」(更新丢失、截断、类型转换错误)。差异只写变更记录并发
DATA_DRIFT告警,不自动修复;支持管理员手工触发单表检查。 -
一键诊断包:设置页管理员一键导出 zip(版本、配置、连接、项目、进度、CDC 位点、近期变更与日志),密码、密钥、
data/与原始配置均不入包。 -
真实库验证矩阵:新增验证矩阵文档与本地执行脚本;MariaDB 11.4、ClickHouse 24.8 纳入自动化容器测试。
优化
-
内容校验比较口径:比对前先做列清洗,数字、时间、布尔等统一规范化,时间按墙钟对齐;LOB、JSON、XML、几何等不可比列自动排除,减少误报。
-
诊断包二次脱敏:白名单之外再对密码 / 密钥 / token 类赋值、
enc:密文、Bearer、URL 账号信息、私钥块做替换或截断。
修复
-
MariaDB 适配:修正负 fetch size 导致的
invalid fetch size(改用正数流式读取);预设 URL 加useAffectedRows=true,空转 upsert 不再被记成更新,行数审计与结果计数恢复准确。 -
视图 / 存过转换:补全
DECODE/NVL2 → CASE、分页语法、CONVERT → CAST、WITH ROLLUP、布尔常量等改写;跨方言族的过程化正文与无法保证等价的写法改为明确阻断并提示 DDL 覆盖,不再生成可能执行但结果错误的 SQL。 -
建表字段方言替换:DECIMAL / NUMERIC 自增列按精度提升为整数类型(PG 用 SERIAL);
DATE当前时间默认、MySQL 零日期、SQL Server 高精度时间默认函数按目标库规则改写。 -
DB2 数据同步失败(SQL0418 / SQLSTATE=42610):MERGE 的无类型参数标记在 ON / UPDATE / INSERT 三处分别解析、类型不一致时被 DB2 拒绝;现按目标列声明统一加 CAST 固定类型,全量、增量与 CDC 均生效。
-
千万级大表首次全量反复重试无法完成:源表持续增长时每次重试都按当前主键范围重新切分并行区间,与上次的检查点对不上而整表重载;现按已记录的区间续跑,新增行只在尾部追加,改并行度也不再重来。
无破坏性变更,替换 jync.jar 重启即可;升级前备份 ./data 与 application.yml。
下载地址
https://github.com/vfaner/jync/releases/download/v1.12.0/jync.jar