DBSync工作原理示意图
DBSync是一款数据库同步软件,支持各种数据库之间的同步,支持增量同步。本文分享该软件的产品渊源、设计思想、技术要点、功能特征、使用方法,最后分析其优缺点,供IT技术人员参考,也欢迎大家提供宝贵意见,促进我们持续进步。
阅读本文,用时大约15分钟。
1、产品渊源
早在2003年,我们在企业信息化的过程中,就经常遇到系统对接问题。很多客户的一些老旧软件,不方便废弃,又想将其中的数据汇集到我们的信息管理平台,借助平台实现集中查询、外网查询、手机查询等。有些则是反方向的,借助平台实现外网录入、手机录入,再将数据从平台同步到现有系统。
搜遍各大网络,未找到适合的。有些数据库虽然有同步工具,但只支持同型数据库之间的同步,不支持异型同步。而华创平台是通用型的,客户对它的用途五花八门,需要对接的系统也就多种多样,数据库的也就多种多样,因此需要能够异型同步。另外,很多同步工具的配置过程过于复杂,普通用户难以掌握。
为此,我们专门开发了一款同步软件,作为平台的配套工具,提供给客户使用,且力求简单易用。经过多年的实践发现,越来越多的客户,即使不使用平台也有同步需要,于是,我们于2018年开始对它进行改造,将它独立出来,经过不断完善,形成现在的DBSync,于2019年正式对外推出,并提供永久免费版。
2、设计思想
数据库之间的同步,一般是利用事务日志来实现的,它的工作原理是:读取源数据库的事务日志,找到最近执行过的事务,将这些事务传递至目标数据库,在目标库也执行一遍,使得源库、目标库都执行了同样的事务、产生同样的变化,从而使双方始终保持一致。
不同的数据库,其事务日志的格式就不相同的,因此,按照这个思路设计的软件,一般只适用于特定数据库。
DBSync跳出这个思路,不再依靠事务日志,而是直接访问事务执行的结果,也就是数据本身。通过扫描比较双方数据,找到相互间的差异,再将差异部分同步过去,从而使双方始终保持一致。
按照这个设计思想,DBSync就有广泛的适用性,支持各种数据库。因为,无论哪种数据库,无论内部怎么工作,其结果无非就是数据。我们只需要关注数据差异,找到差异并同步过去,就可以了。
3、技术要点
一款软件的设计开发,会涉及很多技术细节,这里仅列出与同步有关的技术要点。
●通过连接字符串连接数据库,允许用户自己填写连接字符串。这样,DBSync就能连接各种数据库,因为几乎所有数据库都可以使用OLEDB或ODBC进行连接。
●在用户操作界面上,为常见数据库提供连接字符串范例。用户可以在范例的基础上,修改其中的IP地址、用户名、密码等个性值,得到自己的连接字符串,从而减轻用户撰写难度。
●同步的基本单位是任务,一个任务负责一对数据表之间的同步。如果多个数据表、多个数据库之间需要同步,分别为它们设置任务,形成多个任务,即可。
●同步任务采取线程的方式运行,由于线程是可并发执行的,因此DBSync可同时执行多个同步任务。
●任务可设置select查询语句,用于限定参与同步的数据范围;可设置update语句,用于同步后的额外处理。
●主程序负责3个方面:一是与用户的交互,包括:任务的增、删、改,任务的手工启动与停止;二是监视任务的执行情况,实时显示同步进度信息;三是负责任务的定时自动启动,实现无人值守同步。
●兼顾性能与可靠性,更新目标数据库时,采用事务进行提交,每逢10000条更新提交一次,不足10000条的,一次性提交。
4、功能特征
根据以上设计思想及技术方案,DBSync具有以下功能特征:
●非侵入式,独立运行
无需改动现有数据库,无需注入脚本或触发器,不增加数据库负荷,只需连接上即可同步,独立运行,简单易用。
●支持各种数据库
既支持常规数据库,如Access、SQL Server、MySQL、Oracle、DB2等,又支持Excel、txt、csv等文件,任何可用OLEDB或ODBC连接的数据,均可参与同步。
●支持异构数据库同步
既支持同型数据库之间的同步,如Access到Access,MySQL到MySQL,又支持异型数据库同步,如Access到SQL Server、SQL Server到MySQL、MySQL到Oracle等。
●支持跨平台、跨地域同步
既支持同构平台之间的同步,如Windows到Windows,Linux到Linux,又支持跨平台同步,如Windows到Linux,Linux到Unix等,支持异地同步。
●支持增量同步
既支持简单的全部复制式同步(Insert),又支持增量同步。软件能快速扫描数据库,找出相互间的差异数据(即增量),只对增量进行同步。
●支持双向同步
参与同步的数据表,可根据需要分成多个区块,各区块分别指定同步方向,实现整体上的双向同步,能满足分布式系统的同步要求。
●支持二进制字段
有些字段的数据类型为binary、byte[]、image、object等,它们是用于存放图片、文件等二进制数据的,这类字段也可进行同步。
●支持同步后处理
可设置同步后需要执行的SQL语句,实现同步后的额外处理,如数据转换、公式计算等。
●可以先比较再同步
实施同步前,可以先比较,找出相互间的差异,列出具体的差异数据,以便核对变更情况,确定无误后再同步。
●无人值守同步
具有定期自动同步功能,只需预先设置好时间间隔,就可长期自动同步;支持系统重启后自动恢复同步,防止因系统重启而停止,实现无人值守同步。
●秒级实时同步
重复同步的时间间隔最短可设置为1秒,源数据库发生变更后,1秒后就同步过去,几乎等同于实时同步。
●异常提醒通知
具有提醒通知功能,每当任务执行出现异常,可Email通知当事人,方便您及时排错。
5、使用方法
本软件绿色运行,不需要安装。先下载本软件,下载网址:http://www.hc-software.com/hcgis/home/download.htm,Click页面底部DBSync对应的“立即下载”。下载后,解压至本地目录,Click其中的DBSync.exe即可运行。
5.1主界面介绍
软件启动后进入主界面,显示同步任务列表,如下图所示:
图1:DBSync主界面