Jync v1.7.6
首次全量同步大幅提速;新增只读数据预览、项目克隆与列清洗规则;修复 Oracle 11g / GBK 与若干同步正确性问题。
性能
-
全量分块并行:默认 2 路并行(上限 8,按连接池自动收敛),可按项目覆盖;仅单列整数主键表启用。
-
断点续跑:keyset 分页 + 分块检查点,中断、重启后从已完成的分块继续,检查点绑定区间边界,并行度或数据边界变化时自动作废重来。
-
更大的全量批次:全量专用
full-load-batch-size/full-load-fetch-size默认 2000;增量与 CDC 回放不受影响。 -
Oracle 空目标 INSERT 优先:首次全量写入空表改用 INSERT,500k 行基准约为 MERGE 的 2.3 倍;非空目标仍用 MERGE。
-
新建表索引后建:非唯一二级索引等到首次全量提交后再创建,500k 行 Oracle 基准端到端快约 42%;主键与唯一索引仍立即创建,纯结构同步行为不变。
-
吞吐日志:每个分块输出行/秒、读写耗时占比与批量形态,便于现场定位瓶颈。
-
相关配置:
full-load-parallelism、full-load-batch-size、full-load-fetch-size、oracle-initial-load-insert-first、defer-secondary-indexes,老项目按默认值自动生效。
新功能
-
只读数据预览:详情页查看源库或目标表内容,最多 100 行、单元格超 500 字符截断,仅管理员可用,不提供写入、筛选、排序或导出。
-
项目克隆:复制同步设置,不带游标、检查点与 CDC 位点;目标库需重选,「首次加载前截断」强制关闭。
-
列清洗规则:写入前按表按列执行去首尾空白、大小写转换、空白转 NULL、去前后缀、正则替换七种固定操作;轮询与日志 CDC 两条写入路径均生效。
-
全不选即不同步:取消全部表/视图/存储过程即表示该类别不同步,不再回退为全选。
-
空配置禁止启动:无对象,或轮询/全量比对下同步选项全关时,前后端均拒绝启动并说明原因;CDC 不受影响。
-
CDC 下隐藏轮询开关:日志 CDC 模式隐藏不参与增量流的五个同步选项并给出说明,已保存的值原样保留。
修复
-
Oracle 11g LogMiner:按服务端版本读取
V$LOGMNR_CONTENTS,不再引用 11g 不存在的SRC_CON_ID。 -
GBK 等字符集:内置
orai18n,修复对象列表为空与字符集转换失败。 -
LogMiner 权限探测:补
SELECT ANY TRANSACTION检查并给出授权语句;重复日志按线程号 + 日志序列号判重,修复 ORA-01289。 -
并行全量:停止请求可传播到 worker 并等待其退出;截断或重置进度后不再复用旧分块检查点。
-
分页兼容:DB2 改用
FETCH FIRST;SQL Server 首屏改用TOP,修复 2008/R2 上OFFSET/FETCH语法错误(CDC 仍需 2012+)。 -
列清洗:不再改写分块边界;保存时校验正则与替换串,非法规则当场拒绝。
-
克隆与预览:克隆的项目与同步设置同事务提交;预览仅限管理员,网络失败有明确提示。
测试
-
1561 个测试:1560 通过,1 个按环境条件跳过;
*IT需 Docker 另跑。
升级
-
替换
jync.jar重启即可,表结构随ddl-auto: update自动演进;升级前备份./data。 -
停机期间的源库变更会在重启后自动补齐。
-
容器部署将镜像 tag 更新为
jync:1.7.6(Docker Compose 与deploy/k8s/清单已同步)。
GITHUB: https://github.com/vfaner/jync/releases/download/v1.7.6/jync.jar
Gitee: https://gitee.com/super_rgh/jync/releases/download/v1.7.6/jync.jar