DBridge 1.2.0 已经发布。这一版新功能加得不多,主要做了两件事:把整个界面重做了一遍(顶部横条改成左侧导航),以及把「出事以后」才会用到的几个入口补齐——备份保留策略、日志清理策略、真实在线人数、驱动离线包。下面逐项说清楚改了什么、为什么改。
一、布局改版:八项导航收进左侧一栏
老版本的顶部是一条 46 像素高的横条,把数据源、任务、日志、备份、账号全塞在同一个「设置」页面里。结果是:四件事挤在一起,四件都找不到。值班的人要找日志,得先点「设置」,再在一堆卡片里翻。
1.2.0 把横条整段删除,换成左侧固定导航,八项分四组:
- 工作台:数据源、同步任务
- 运维:运行日志、备份恢复
- 系统:账号权限、驱动管理
- 帮助:帮助中心、关于软件
导航项不放图标,只留文字,而且八个词统一四个字——左边缘排成一条直线,扫一眼就知道该去哪。侧栏是深青色实块,主区是白纸,选中项是白色块并和右侧主区连成一体。

配色也换了:主色从通用蓝改成深青绿 #127F72,并且立了一条规矩——一个主色 + 一堆灰阶做层级,颜色只留给状态。红黄绿三种状态点代表失败、警告、正常,其余一律中性灰。之前试过给每个导航项配一个颜色、给表格加彩色圆点,看着热闹,实际读起来更慢。
二、备份:从「有备份」到「有策略」
同步工具里真正值钱的东西不是数据(数据在源库里本来就有),而是你一条一条配出来的配置:数据源连接、任务组、每张表的字段映射、同步水位、运行历史、账号与权限、系统设置、授权文件。这些东西丢了,重配一遍就是两三天。
1.2.0 的备份包把这些全打包,不含 JDBC 驱动 jar——驱动有独立的「导出离线包」通道,重复塞进去只会让包白白变大。

这一版真正补上的是保留策略,三个条件:
- 保留份数(默认 20 份)
- 保留天数(默认 90 天,最小 7 天)
- 总量上限(默认 512MB)
谁先满足就按谁来清,但最新 3 份永远不动——万一刚配错一版、连着备份三次,也不至于把好的那几份清掉。另外每次新建备份成功后会立即执行一次回收,不用等下次开机或下次备份。
说一句该说的:上一版界面文案里写着「自动保留最近 10 份」,但那段清理代码从来没有被调用过。界面上写着、实际不执行,比不写更坏——它会让人以为磁盘有兜底。这一版把它接通了。
三、运行日志:拆成两段,各管一件事
日志最容易做成「给你一坨,自己挖」。1.2.0 把它拆成两段:
- 系统事件:谁登录了、谁改了配置、谁点了重启、服务什么时候起的——查「这事是谁干的」看这里。
- 启动日志:加载了哪些驱动、连了几个库、端口起没起来、Java 版本是多少——机器换过、环境重装过之后「为什么起不来」,答案基本都在这段。

搜索框旁边有「只看错误」。这个开关只认 ERROR、Exception、Caused by、failed to start、already in use 这类真错误,不会因为某行写着「配置错误数量:0」就把正常信息也捞上来——用泛词匹配的过滤,开了等于没开。
再往下是清理策略:保留几天、单文件多大、总量上限多少,三个数字自己填,满了自动删最旧的。机器跑一年也不会因为日志把磁盘塞满。
四、账号:在线人数终于数的是「人」
这一格之前坑了很久。老版本数的是登录会话,结果一个账号能显示「104 处在登录」——因为每登录一次就插一行会话,勾了「记住我」能活 7 天。数字看着像 bug,其实是指标本身没意义:一个人拿五个浏览器登录,你也不能说他五个人。
现在改成看 last_seen_at:最近 6 分钟内有过操作就算在线,前端每分钟报一次心跳。它只会少算、不会多算——页面一关,六分钟后人就不在线了。

权限维持三角色:管理员、操作员、只读。改配置、动备份、管驱动只有管理员能做;只读账号进去什么都点不动,适合给审计或客户看。停用当场生效,不用等对方退出登录。
五、驱动:四个数并排,内网也能换版本
异构同步最烦的是驱动对不上,而它一错,报出来的往往是「连不上」这种没头没尾的错。驱动管理页现在每种库一行,并排给出四个数:当前装的是哪个版本、程序实际在跑的是哪个版本、还有几个版本可选、会影响几个数据源。

换版本不用重新打包、不用重装程序:点「替换」选一版,保存即生效。内网机器上不了外网的,把这台机器上的驱动导出成离线包,拷过去导入即可。右上角还有「驱动自检」和「全部检查更新」,用来批量确认哪些库的驱动该换了。
六、手机端:定位是「值守端」,不是「配置端」
值班时人不在电脑前,掏出手机能看到状态、能点同步和终止、能翻失败原因,就够用了。所以 1.2.0 做了响应式收缩:
- ≤900px:左侧导航收成顶部条 + 抽屉,主区满宽;
- ≤640px:任务明细、数据源、账号三张表直接转成卡片——一行一个对象,字段名在左、值在右,不用左右拖;
- 触屏设备上,行内操作按钮常显(不靠鼠标悬停);弹窗满宽、底部按钮常驻。
说清边界:建任务组、调字段映射这类配置活,还是建议回电脑上做。屏幕就那么大,硬塞进去只会两头不讨好。这一版做到 P0(值守可用),配置类页面的窄屏优化留到下一版。
七、看不见的那一层:八种库收敛成一套骨架
这一版没有新增数据库,但把底层方言收敛重构做到了第二阶段:删表语句(DelDdl)、目标表建表(SinkTableCreator)、元数据读取(MetaService)三块从各库各写一份,收成「一套骨架 + 八份方言实现」。
怎么验证没收错?跑了一套黄金快照回归:同一批配置在八种库上生成的方言输出,重构前后逐行比对(共有段 1562 行全等、自检 100 行全等),再补一轮五库元数据端到端测试(MySQL / MariaDB / PG 各 7 列 7 注释、Oracle 9 列 8 注释、SQL Server 7 列 6 注释,中文与 emoji 正常)。
结果是:以后加一种库,只要一个实现类 + 注册一行 + 驱动清单一行。这意味着达梦、人大金仓这类国产库接进来的成本,从「改十处」变成「加一个文件」。
八、升级清单
| 类别 | 改动 |
|---|---|
| 界面 | 顶部横条 → 左侧导航(八项四组);深青绿主色;去卡片外壳;表头改浅色标签条;侧栏选中项与主区连体 |
| 备份 | 新增保留策略(份数 / 天数 / 总量上限)+ 自动回收 + 最新 3 份硬保护;备份内容与不含项在页面上写明 |
| 日志 | 系统事件 / 启动日志分栏;「只看错误」精确匹配;清理策略可改 |
| 账号 | 在线口径改为「6 分钟内有操作」,去掉按会话计数的错误口径 |
| 驱动 | 当前 / 运行中 / 可选版本数 / 影响数据源数并排;一键替换与回滚;导出与导入离线包 |
| 手机 | ≤900px 抽屉导航,≤640px 三张表转卡片,触屏按钮常显(值守端 P0) |
| 内核 | 方言收敛重构第二阶段(DelDdl / SinkTableCreator / 元数据读取),黄金快照回归全绿 |
| 打包 | 修正 1.1.0 起客户端包缺 drivers-pool 的问题,恢复 6 + 8 = 14 个驱动版本 |

顺便纠正一个我们自己起的坏名字:以前叫「增量方式」,读着像「只同步新增」,实际新增、修改、删除都同步,删除另有墓碑表 + 触发器单独实现。现在统一叫「变化识别方式 / 变化识别字段」,并写明「删除同步要主键,没主键的表确实不删」。
九、怎么拿到 1.2.0
| 方式 | 入口 |
|---|---|
| Windows 客户端 | dbridge.zzzmxxkj.com 下载区(full 内置 JDK11 / lite 约 57MB) |
| Docker / Linux | bash <(curl -sL https://dbridge.zzzmxxkj.com/install.sh) |
| Docker 镜像包 | curl -fL -o dbridge.tar https://dbridge.zzzmxxkj.com/dist/dbridge-docker-latest.tardocker load -i dbridge.tar |
| GitHub Release | github.com/nmjugtzdw/dbridge/releases |
| 官网 | dbridge.zzzmxxkj.com |
下载页与安装命令始终指向最新版。升级前程序会自动再备份一份,覆盖安装即可,配置与任务不受影响。
写在最后
同步工具的好坏,顺利的时候看不出来——那一刻大家都一样快。差别都在出事那天:能不能一眼看出哪张表挂了、日志能不能读懂、配置丢了能不能找回、人走了权限能不能收掉。
1.2.0 花的力气,基本都在这些「出事以后」的地方。如果你正在为某套老系统的数据同步发愁,欢迎下载试试。
DBridge(数桥)—— 图形化异构数据库同步控制台,支持 MySQL / MariaDB / Oracle / PostgreSQL / SQL Server / TiDB / OceanBase / Greenplum 共八种数据库,免装 JDK、内网离线可用。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.zzzmxxkj.com/396.html
共有 0 条评论