2026-10-22 14:43:41
数据库同步软件DBSync的设计与实现
DBSync是一款功能强大的数据库同步软件,它支持各种数据库之间的同步,包括增量同步,且操作简便。以下是对DBSync设计与实现的详细解析。
一、产品渊源
DBSync的起源可以追溯到2003年,当时在企业信息化的过程中,经常遇到系统对接问题。许多客户需要将老旧软件中的数据汇集到新的信息管理平台,或者将平台上的数据同步到现有系统。然而,市场上缺乏能够支持异型数据库同步的工具,且很多同步工具的配置过程过于复杂。因此,我们专门开发了一款同步软件,作为平台的配套工具,提供给客户使用。经过多年的实践和完善,DBSync于2019年正式对外推出,并提供永久免费版。
二、设计思想
DBSync的设计思想跳出了传统利用事务日志实现同步的框架,而是直接访问事务执行的结果,即数据本身。通过扫描比较双方数据,找到相互间的差异,再将差异部分同步过去,从而使双方始终保持一致。这种设计思想使得DBSync具有广泛的适用性,能够支持各种数据库之间的同步。
三、技术要点
数据库连接:通过连接字符串连接数据库,允许用户自己填写连接字符串。DBSync能够连接各种数据库,因为几乎所有数据库都可以使用OLEDB或ODBC进行连接。
用户界面:在用户操作界面上,为常见数据库提供连接字符串范例,减轻用户撰写难度。
同步任务:同步的基本单位是任务,一个任务负责一对数据表之间的同步。如果多个数据表、多个数据库之间需要同步,分别为它们设置任务即可。
线程并发:同步任务采取线程的方式运行,由于线程是可并发执行的,因此DBSync可同时执行多个同步任务。
查询与更新语句:任务可设置select查询语句,用于限定参与同步的数据范围;可设置update语句,用于同步后的额外处理。
主程序功能:主程序负责与用户的交互、监视任务的执行情况、实时显示同步进度信息,以及负责任务的定时自动启动,实现无人值守同步。
性能与可靠性:更新目标数据库时,采用事务进行提交,每逢10000条更新提交一次,不足10000条的,一次性提交,兼顾性能与可靠性。
四、功能特征
非侵入式,独立运行:无需改动现有数据库,无需注入脚本或触发器,不增加数据库负荷,只需连接上即可同步,独立运行,简单易用。
支持各种数据库:既支持常规数据库,如Access、SQL Server、MySQL、Oracle、DB2等,又支持Excel、txt、csv等文件,任何可用OLEDB或ODBC连接的数据,均可参与同步。
支持异构数据库同步:既支持同型数据库之间的同步,又支持异型数据库同步。
支持跨平台、跨地域同步:既支持同构平台之间的同步,又支持跨平台同步,如Windows到Linux,Linux到Unix等,支持异地同步。
支持增量同步:软件能快速扫描数据库,找出相互间的差异数据(即增量),只对增量进行同步。
支持双向同步:参与同步的数据表,可根据需要分成多个区块,各区块分别指定同步方向,实现整体上的双向同步。
支持二进制字段:可用于存放图片、文件等二进制数据的字段也可进行同步。
支持同步后处理:可设置同步后需要执行的SQL语句,实现同步后的额外处理。
可以先比较再同步:实施同步前,可以先比较,找出相互间的差异,列出具体的差异数据,以便核对变更情况。
无人值守同步:具有定期自动同步功能,只需预先设置好时间间隔,就可长期自动同步。
秒级实时同步:重复同步的时间间隔最短可设置为1秒,实现几乎等同于实时同步的效果。
异常提醒通知:具有提醒通知功能,每当任务执行出现异常,可Email通知当事人。
五、使用方法
DBSync软件绿色运行,不需要安装。下载并解压后,直接运行DBSync.exe即可。
主界面介绍:
新增任务:Click右上角的“新增”按钮,可新增一个任务。
删除任务:Click右上角的“删除”按钮,可删除一个任务。
数据比较:Click任务列表中的“○”按钮,可比较双方数据。
开始同步:Click任务列表中的“►”按钮,开始同步。
中止同步:Click任务列表中的“■”按钮,中止正在进行的同步。
执行状态:实时显示同步进度信息。
日志:Click任务列表中的“查看”按钮,可查看该任务的操作日志、同步日志。
设置:Click任务列表中的“设置”按钮,可修改任务设置。
任务设置界面:
Step1:连接源数据库、目标数据库,设置连接字符串。
Step2:选择源数据表、目标数据表。
Step3:设置字段对应关系,选择主键字段。
Step4:设置同步方式及频度,包括全部新增、仅同步增量数据、手动或自动执行等选项。
数据比较界面:
设置好同步任务后,Click任务列表中的“○”按钮,进入扫描与比较界面,比较双方数据,找出差异数据。
操作日志界面:
Click任务列表中“日志”列的“查看”按钮,进入操作日志界面,显示任务的操作日志、同步日志。
六、优缺点分析
优点:
缺点:
综上所述,DBSync是一款功能强大、操作简便的数据库同步软件,适用于大部分数据同步场合,如系统对接、数据热备份、读写分离等。然而,对于实时性要求极高的场合,如毫秒级的同步,DBSync可能无法胜任。