首页 > 开源 > Jync v1.12.0 · 同步前检查、内容校验与诊断包

Jync v1.12.0 · 同步前检查、内容校验与诊断包

OSChina项目 2026-11-04 15:04 10 阅读 查看原文

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 纳入自动化容器测试。

https://oscimg.oschina.net//AiCreationDetail/up-2257becd49619d26cfe5028616b6c767.png
https://oscimg.oschina.net//AiCreationDetail/up-3faf3594d70f76938b60e1d9c90ee13c.png

优化

  • 内容校验比较口径:比对前先做列清洗,数字、时间、布尔等统一规范化,时间按墙钟对齐;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

部署文档

https://jync.qqmu.com/deploy.html