RELEASES

更新日志

每个版本的更新说明与 jar 下载。当前最新版本 v1.3.0 —— 版本号与下载地址由本站后台「版本管理」维护,始终指向最新发布包

Latest

v1.3.0

v1.3.0 发布于 2026-09-24

SyncTool 正式更名为 Jync 捷同:仓库迁至 github.com/vfaner/jync,产物更名 jync.jar; 并打包全项目审查的 27 项可靠性与缺陷修复(快照防护、锁租约心跳、删除检测跨驱动规范化等)。 发布当日两次覆盖更新:新增立即同步补跑与列表分页,并修复 MySQL 时间列精度回归。

更名

  • 项目名 SyncTool → Jync 捷同;包名 com.qqmu.jync,Maven 坐标 com.qqmu.jync:jync
  • 元数据库启动时自动迁移(synctool.mv.db → jync.mv.db),浏览器偏好自动迁移;加密默认密钥不变,已存连接无需重录
  • 1.2.x 的自动更新检查收不到本版通知(旧版不跟随仓库改名重定向),已部署实例需手动升级一次;1.3.0 起跟随重定向

审查修复(节选)

  • 结构变更失败 / 被跳过时不再保存表快照 —— 变更不会丢失,可重试
  • 数据阶段锁租约心跳:租约丢失立即中止本轮,杜绝双实例并发写目标库
  • 源库读不到正文的视图 / 存储过程不再误判消失而删除(保护 allowDrop 下的目标库真实对象)
  • 删除检测键值跨驱动规范化:byte[] / decimal / 时间类型差异不再整表误删
  • cron 表达式校验;项目更新保留启用状态与同步配置;变更日志按保留天数每小时清理

覆盖更新(2026-09-24)

  • 回归修复:MySQL 时间列默认值带与列一致的小数精度(DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6)),修复时间戳精度改动后建表被 MySQL 以 1067 拒绝的问题
  • 立即同步补跑:运行中的点击不再以「正在运行」丢弃,而是登记一轮补跑、本轮结束后自动执行;连点多次合并为一轮
  • 列表分页:项目与变更日志共用分页条(默认 20 条/页,可选 15 / 20 / 30 / 50 / 100,支持跳页与省略号就地展开);看板项目概览与最近活动各限 5 条
  • 界面细节:主题切换图标改金黄色;项目概览表固定列宽、表头与值对齐;变更日志第 2 页起禁用自动刷新并说明原因
  • 文档:README 截图全部换新,默认端口明确为 8080

升级

换 jar、重启即可。老部署脚本改两处:jar 文件名(synctool.jar → jync.jar)与 systemd 单元名。 加密口令必须与之前一致,否则已存的数据库密码无法解密。

v1.2.1

v1.2.1 发布于 2026-09-22

信创数据库支持补强:新增 OceanBase、TiDB、瀚高、海量、崖山五种国产数据库预置,驱动随包内置扩充至十四种; 同时修复 Oracle 服务名连接问题,并对界面做了少量调整。

新增五种信创数据库预置

  • OceanBase、TiDB、瀚高 HighGo、海量 Vastbase、崖山 YashanDB 成为预设类型 —— 加上此前的达梦、金仓、GBase、神通、OpenGauss,信创库预置达到十种,支持的数据库共 17 种(另有自定义类型)
  • 五种新类型均接入专属元数据读取器,类型映射特判改按方言族处理 —— 不是「通过通用 JDBC 也许能连上」,而是一等支持
  • OceanBase、瀚高、海量、崖山的 JDBC 驱动随包内置,内置驱动共十四种;TiDB 兼容 MySQL 协议,复用内置 MySQL 驱动,选 TiDB 类型即可
  • 预置的 OceanBase 对应 MySQL 模式租户(默认端口 2883 为 OBProxy,直连 observer 用 2881);Oracle 模式租户请选「自定义」类型并使用 Oracle 系 URL
  • 崖山 YashanDB 为 Oracle 兼容库(URL 前缀 jdbc:yasdb:),标识符大写折叠与 MERGE upsert 均已适配

问题修复与界面调整

  • Oracle 连接改用服务名写法(12c 及以上 PDB 必须),修复仅登记了服务名的库报 ORA-12505 的问题;确实只有 SID 的老库可选「自定义」类型自行填写旧写法 URL(驱动内置,无需 jar)
  • 「系统信息」页新增作者栏目;导航栏的修改密码与退出登录收进用户下拉菜单

升级

换 jar、重启即可,配置和数据不动。加密口令必须与之前一致,否则已存的数据库密码无法解密。 停机期间源库产生的变更,重启后由游标机制自动补齐。

v1.2.0

v1.2.0 发布于 2026-09-13

异构数据库实时同步工具。开箱即用的可执行 jar,放到内网机器上 java -jar 就能跑,不需要源码、不需要 Maven。 这个版本整合了 v1.1.1、v1.1.2 以及此前未发布的改动,包含新功能和界面调整,因此版本号跳到 1.2.0。

数据库连接区分「源」与「目标」

  • 连接列表拆为源数据库连接、目标数据库连接两个栏目,各自独立分页
  • 新建连接必须选择用途:源(数据读出)或目标(数据写入)
  • 新建项目时源、目标下拉只列出对应用途的连接,不会再选错
  • 升级后原有连接首次启动自动归类(按已有项目的引用关系推断,未被引用的默认为源),无需手工处理
  • 已被项目占用的连接不能反向改用途,页面会提示相关项目名称

常用数据库驱动内置

MySQL、MariaDB、Oracle、SQL Server、DB2、PostgreSQL、openGauss、达梦、人大金仓、H2 共 十种驱动随包内置,不再需要手动往服务器放 jar。 GBase、神通(Oscar)和自定义类型仍需填写厂商驱动 jar 路径。

其他改进

  • 新增「系统信息」页(原「设置」菜单改名):显示当前版本、GitHub 最新版本与本版更新说明;更新检查在后台进行,不拖慢页面,纯内网也能看当前版本和更新内容,也可用 --app.update-check.enabled=false 关闭
  • 变更日志页支持手动 / 自动刷新(5 秒一轮,不整页重载),第二页之后自动刷新自动停用以免阅读时行位跳动
  • 新建连接时默认端口随数据库类型自动联动
  • 修复删除正被项目占用的连接时错误提示显示为英文代码的问题

快速开始

bash
java -jar jync.jar

访问 http://localhost:8080, 用 admin / view(初始密码均为 123456)登录。

升级

换 jar、重启即可,配置和数据不动。本次会自动给元数据库加一列保存连接用途,启动日志出现 Backfilled source/target role... 即归类完成;升级后建议到连接页核对一眼, 需要当目标用的连接在编辑页改用途即可。加密口令必须与之前一致, 否则已存的数据库密码无法解密。停机期间源库产生的变更,重启后由游标机制自动补齐。 从 v1.0.0 升级请先读 v1.1.0 发布说明。

首次启动必读

  • 改掉初始密码:内置 admin / view 两个账号,初始密码都是 123456,登录后点右上角用户名修改;忘记密码无法找回,只能删除元数据库 app_user 表对应行后重启
  • 覆盖加密口令:jar 内置公开默认密钥,首次保存连接前请通过 --sync.crypto-password 和 --sync.crypto-salt 设置自己的口令,否则存进去的数据库密码等于明文
  • 固定数据目录:程序在启动目录下创建 ./data(元数据库,含加密凭据)、./logs、./snapshots,请固定在同一目录启动;元数据库文件按凭据对待,不要提交到版本库

环境要求

  • JDK 17 或以上
  • GBase、神通(Oscar)和自定义数据库需要自备厂商驱动 jar

v1.1.0

v1.1.0 发布于 2026-09-07

本次更新:登录与权限。 v1.0.0 完全没有鉴权 —— 任何能访问到端口的人都可以调接口改数据库连接和 AI 配置,建议所有 v1.0.0 用户升级。

  • 所有页面和接口都必须登录后才能访问,没有匿名入口
  • 两个内置角色:admin(管理员,全部操作)和 view(访客,只读)
  • 权限按 HTTP 方法判定:所有写操作都是 POST,规则只有一条「POST 一律要求管理员」,新增 POST 接口自动受管
  • 访客能看到全部数据,但界面上不出现写操作按钮,直接构造请求打接口也会被拒
  • 两个角色都能自助修改密码(当前密码 + 新密码至少 6 位)
  • 启用 CSRF 防护;登录密码用 BCrypt 单向哈希存储

v1.0.0

v1.0.0 发布于 2026-09-04

首个公开版本:异构数据库实时同步,结构 + 数据一起同步,单个 jar 启动,零外部组件。 GitHub 发布页 ↗