DBSync是一款数据比较与同步工具,能比较出数据库之间的差异,能实时同步差异数据,从而使双方始终保持一致。用于系统间数据对接、数据分发、数据对比等。 DBSync提供了大量功能功能,例如交互式(GUI)模式/命令行模式,可切换会话,插入,更新和删除包含的同步类型,任务计划程序调度,数据过滤,可能的转换错误的预验证等。用户可以通过配置几个选项,并通过向导界面或命令行模式进行一些同步自定义来转换和同步MySQL与MySQL或MySQL。添加到调度功能的命令行参数使您能够定期自动同步或转换数据,而无需用户输入和辅助设置。
1.支持各种数据源
既支持常规数据库,如Access、SQL Server、Oracle、MySQL、DB2等,又支持Excel、txt、csv等文件中的数据,任何可用OLE DB连接的数据,均可参与同步。
2.异型数据库同步
既支持相同类型数据库之间的同步,如Access到Access、SQL Server到SQL Server,又支持异型数据库之间的同步,如Excel到Access、Access到SQL Server、SQL Server到Oracle等。
3.无人值守同步
软件具有定期自动同步的功能,只需预先设置好时间间隔,就可长期自动同步,从而实现无人值守同步。
4.支持增量同步
既支持简单的全部复制式同步(Insert),又支持增量同步。软件能快速扫描数据库,找出相互间的差异(即增量),只对增量进行同步。
5.秒级实时同步
重复同步的时间间隔最短可设置为1秒,源数据库发生增、删、改后,1秒后就立即同步过去,几乎等同于实时同步。
6.支持同步后处理
可设置同步后的SQL执行语句,实现同步之外的数据转换、公式计算等额外任务。
打开软件后进入主界面,显示同步任务列表,如下图所示:
说明:任务是执行同步的基本单位,一个任务负责一对数据表之间的同步,多个任务可并发执行。
数据比较:Click任务列表中的“○”按钮,进入扫描并比较界面。
数据同步:Click任务列表中的“?”按钮,立即开始同步。
执行状态:实时显示同步进度信息,包括:已扫描的记录数、已同步(增删改)的记录数等。
开始时间、结束时间、下次开始时间:显示每个任务的执行时间信息。
日志:Click任务列表中的“日志”按钮,可查看该任务的操作日志。
设置:Click任务列表中的“修改”按钮,可修改任务设置。
*同步前做好数据备份:数据同步将直接更改目标数据库,请做好目标数据库的备份工作,以防数据丢失。
*同步方式选择增量同步时,要注意双方在数据范围上的对等性。同步程序工作时,需要先扫描、比较双方数据,找到相互间的差异,再做同步。如果双方在数据范围上不对等,比较就失去意义,结果自然也是错误的。
*增量同步时,主键字段用于唯一地标识一条记录,其值应该非空且唯一,同步时如遇到空值或者重复的,将直接跳过,不作处理。
*如何实现双向同步:每个任务的同步方向是单向的,即将源库数据同步至目标库,使得目标库与源库保持一致。如果需要双向同步,可另建一个任务用于反方向的同步。
*同步至文件时的限制:除了常规数据库间的同步外,有些用户需要将数据同步到单一文件中,由于文件机制本身的限制,有些增量同步不支持,具体情况是:
同步至txt、csv等文本文件:支持新增(Insert)同步,不支持删(Delete)、修改(Update)同步。
同步至Excel文件:支持新增(Insert)、修改(Update)同步,不支持删(Delete)同步。
要比较与同步数据,必须先设置一个任务,在任务里指定源数据表、目标数据表,以及同步方式、同步频度等。Click主界面上的“新增”按钮,即可新增一个同步任务,进入Step1。
Step1:选择源数据库、目标数据库
要设置同步任务,首先要选定源数据库、目标数据库,如下图所示:
说明:本界面的用途是设置源数据库及目标数据库的连接字符串,使得能连接双方数据库。其中,界面上打星号(*)的栏位是必填的。
*关于OLE DB连接字符串:
本软件采用 OleDbConnection (.NET) 连接数据库,因此,连接字符串一栏需填写 OLE DB 形式的连接字符串。如何拼写OLE DB连接字符串,详见本文7.1章节。
填写完成后,请Click标签2,进入Step2。
Step2:选择源数据表、目标数据表
说明:本界面的用途是选择源数据表及目标数据表。
选择完成后,请Click标签3,进入Step3。
Step3:选择字段对应关系
说明:本界面的用途是选择字段对应关系,为需要同步的源字段指定对应的目标字段。其中的数据类型是指OleDbType类型,不同的数据库有不同的数据类型定义,但这里统一体现为OleDbType,详细资料请参见本文7.2章节
*关于主键字段:
如果您需要做增量同步,这里必须选择主键字段。主键字段是记录的唯一标志,它用于判别同步双方是否存在对应记录。
选择完成后,请Click标签4,进入Step4。
Step4:选择同步方式及频度
说明:本界面的用途是选择同步方式及频度。
(1)同步方式:
*全部新增(Insert)至目标表:是指将源数据表中的数据全部Insert到目标数据表。
*仅同步增量数据:是指以主键字段为记录标识,只同步差异部分(即增量部分),而相同的部分不作同步。增量分3种:一是新增,是指对于源数据表存在而目标表不存在的记录,视作源库新增的,因此应新增(Insert)到目标库;二是删除,是指对于目标数据表存在而源数据表不存在的记录,视作已从源库删除,因此应从目标库中删除(Delete);三是修改,是指源数据表与目标数据表均存在的记录,但双方数据有差异,视作源库已做修改,因此需用源库数据修改(Update)目标库。
(2)执行频度:
*手动点击“开始”执行:是指每次同步都由用户Click任务列表中的“?”来执行
*手动,然后自动重复执行:是指由用户Click“?”开始第一次执行,同步结束后,程序会按照预定的时间间隔自动重复执行。只要程序不关闭,同步操作就会一直持续下去,从而实现无人值守同步。
(3)同步范围:
属于高级选项,可填写Select * From...Where... 形式的 SQL 语句,进一步限定参与同步的数据范围。主要用于3种场合:
*一是总库与分库之间的同步,需要限定总库的数据范围。很多单位的数据库是分布式的,有总库、分库之分,总库数据多,分库数据少,它们之间在数据范围上是不对等的。总库与分库进行同步时就应限制总库的范围,使得双方在数据范围上是对等的,在对等的基础上进行同步。举例:
某集团公司有多个分公司,集团公司的数据库是总库,包含所有客户信息,分公司的数据库是分库,只包含当地客户信息。假如总库与天津分库做同步,就可以填写这样的SQL语句限定总库范围:SELECT * FROM Customer where Area=”TianJin”,使总库的同步范围仅限于天津数据,双方就是对等的,防止其它数据混串。
*二是挑选有用数据进行同步,其它数据不同步。举例:
某公司有一套销售管理系统,其中的订单信息有3种状态:草拟、已签约、已付款。这些订单需要同步至财务系统,对于财务来说只需已付款的订单信息,此时就可以填写这样的SQL语句限定数据范围:SELECT * FROM Order where Status=3。其中,Status=3代表已付款的订单。
*三是为了提高同步速度,将同步范围限定于增量部分。同步程序的工作机制是,先扫描、比较双方数据,找出相互间的差异(即增量),再将增量同步过去,从而使双方保持一致。双方的数据量如果很大,比较所需的时间就越长,同步速度就越慢。提速思路就是,限制每次同步所涉及的源数据量,分别处理新增、修改、删除3种增量:
A、对于新增、修改增量,每次同步完成时,记住完成时间;下次同步时,将同步范围限定于该时间后的增量。SQL实例:
SELECT a.* FROM Customer AS a,(SELECT syncDate FROM dbsync WHERE tablename='Customer') AS b where b.SyncDate is null or a.CreateTime>=b.SyncDate or a.UpdateTime >=b.SyncDate
其中,dbsync 表的syncDate 字段记有上次同步的完成时间。由于同步是定期执行的,两次同步间的增量非常有限,所需的比较量就很少,速度自然就很快。
B、对于删除增量,另安排一个同步任务单独执行。由于该任务只比较双方的主键,不比较其它数据,即使不限定数据范围,速度也很快。
(4)同步后处理:
可填写 Update SQL 语句,每次同步后会执行,可实现同步之外的数据转换、公式计算等额外任务。
*SQL实例1:UPDATE dbsync set syncDate=date() where tablename=' Customer'。该SQL语句将同步完成时间记入数据库,可用于下次同步时限定同步范围,减少数据扫描及比较量,提高同步速度。
*SQL实例2:UPDATE Customer set [性别]=’男’ where Sex=1;UPDATE Customer set [性别]=’女’ where Sex=0。该SQL语句根据同步过来的“Sex” 字段,进一步计算“性别”字段。
……
数据比较与同步工具DBSync-数据比较与同步工具-数据比较与同步工具DBSync下载 v1.5官方版 >>本地高速下载
>>本地下载