编程工具

关注公众号 jb51net

关闭
华创DBSync(数据库同步比较软件) V1.9 中文绿色版(附使用手册)

华创DBSync(数据库同步比较软件) V1.9 中文绿色版(附使用手册)

热门排行

截图

滑动图片可查看更多>>

简介

DBSync是一款十分不错的数据比较与同步工具,能比较出数据库之间的差异,能实时同步差异数据,从而使双方数据保持一致。用于系统间数据对接、数据分发、数据对比等。本站提供的是该软件的绿色版本,欢迎需要的朋友前来本站下载使用。

主要特点

支持各种数据源

既支持常规数据库,如Access、SQL Server、Oracle、MySQL、DB2等,又支持Excel、txt、csv等文件中的数据,任何可用OLE DB连接的数据,均可参与同步。

异型数据库同步

既支持相同类型数据库之间的同步,如Access到Access、SQL Server到SQL Server,又支持异型数据库之间的同步,如Excel到Access、Access到SQL Server、SQL Server到Oracle等。

无人值守同步

软件具有定期自动同步的功能,只需预先设置好时间间隔,就可长期自动同步,从而实现无人值守同步。

支持增量同步

既支持简单的全部复制式同步(Insert),又支持增量同步。软件能快速扫描数据库,找出相互间的差异(即增量),只对增量进行同步。

秒级实时同步

重复同步的时间间隔最短可设置为1秒,源数据库发生增、删、改后,1秒后就立即同步过去,几乎等同于实时同步。

支持同步后处理

可设置同步后的SQL执行语句,实现同步之外的数据转换、公式计算等额外任务。

运行环境

Windows中文版 + .NET Framework 2.0

 安装及运行

本软件不需要安装,将下载的DBSync.zip解压至本地目录,Click其中的DBSync.exe即可运行。

软件使用

1、主界面介绍

打开软件后进入主界面,显示同步任务列表,如下图所示:

图DBSync主界面

说明:任务是执行同步的基本单位,一个任务负责一对数据表之间的同步,多个任务可并发执行。

数据比较:Click任务列表中的“○”按钮,进入扫描并比较界面。

数据同步:Click任务列表中的“►”按钮,立即开始同步。

执行状态:实时显示同步进度信息,包括:已扫描的记录数、已同步(增删改)的记录数等。

开始时间、结束时间、下次开始时间:显示每个任务的执行时间信息。

日志:Click任务列表中的“日志”按钮,可查看该任务的操作日志。

设置:Click任务列表中的“修改”按钮,可修改任务设置。

2、同步任务设置

要比较与同步数据,必须先设置一个任务,在任务里指定源数据表、目标数据表,以及同步方式、同步频度等。Click主界面上的“新增”按钮,即可新增一个同步任务,进入Step1。

Step1:选择源数据库、目标数据库

要设置同步任务,首先要选定源数据库、目标数据库,如下图所示:

图DBSync选择数据库

说明:本界面的用途是设置源数据库及目标数据库的连接字符串,使得能连接双方数据库。其中,界面上打星号(*)的栏位是必填的。

关于OLE DB连接字符串:

本软件采用 OleDbConnection (.NET) 连接数据库,因此,连接字符串一栏需填写 OLE DB 形式的连接字符串。如何拼写OLE DB连接字符串,详见本文7.1章节。

填写完成后,请Click标签2,进入Step2。

Step2:选择源数据表、目标数据表

DBSync选择数据表

说明:本界面的用途是选择源数据表及目标数据表。

选择完成后,请Click标签3,进入Step3。

Step3:选择字段对应关系

图DBSync选择字段对应关系

说明:本界面的用途是选择字段对应关系,为需要同步的源字段指定对应的目标字段。其中的数据类型是指OleDbType类型,不同的数据库有不同的数据类型定义,但这里统一体现为OleDbType,详细资料请参见本文7.2章节

关于主键字段:

如果您需要做增量同步,这里必须选择主键字段。主键字段是记录的唯一标志,它用于判别同步双方是否存在对应记录。

选择完成后,请Click标签4,进入Step4。

Step4:选择同步方式及频度

图DBSync同步方式及频度

说明:本界面的用途是选择同步方式及频度。

(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” 字段,进一步计算“性别”字段。

3、数据比较界面

设置好同步任务后,Click任务列表中的“○”按钮,进入扫描与比较界面,如下图所示:

图DBSync扫描与比较界面

说明:本界面的用途是比较双方数据,找出数据差异(即增量)。该界面不实施同步,仅展示增量数据,其中的红色部分为已修改字段,移动鼠标过去能显示修改前的原值。

典型应用场景

1、数据对比

数据对比,可直观查看数据变化情况,用于核对数据变更,查看业务变化等。例如,您的Excel数据需要发给他人补充修改,修改后再发回给您,如果想检查他修改了哪些,逐条检查会很繁琐。此时,可用DBSync对比这两份数据,突出显示改动条目,修改情况就一目了然了。

2、数据对接

很多公司拥有多套软件系统,各自管理一个领域。系统之间可能存在依赖关系,需要对方的数据才能运行。例如,人事薪资系统,可能需要考勤系统的考勤数据,以及生产检测系统的计件数据,才能计算考勤工资、计件工资。此时,就需要数据对接了。

按照传统做法,要么通过手工导入导出数据,但这样很繁琐;要么软件双方提供接口,通过定制开发来实现,但这样有难度,费用也高。现在简单了,利用DBSync就可进行对接,全自动同步数据。

3、数据集成

多套系统的存在,还容易造成信息孤岛问题,查阅数据时不断经常切换,很不方便。利用DBSync,可以将各种数据汇集到一起,实现集中式的管理。

事实上,本软件最初就是为客户定制的一个简易工具,与华创信息管理平台配套使用,可将其它系统的数据汇总至平台,让大家都在平台里查数据。平台自身是开放式的,用户可自由建表,因此能接收、管理各方面的数据。

4、数据上报与分发

有些系统是分布式的,由总库及各地分库组成,各自独立运行。子库向总库上报数据,以及总库向分库分发数据,也可利用DBSync实现。

5、老旧系统扩建改造

有些老旧系统,功能上存在欠缺,但又难以升级改造。此时,可以利用DBSync与其它软件进行对接,借用其它软件的功能实现扩建改造。

前端扩建实例:某公司的CRM系统,缺乏手机端的跟单下单功能,而第三方的华创平台具有手机端,扩建办法就是:参照CRM中的订单表,在平台里创建一个同样的订单表,使得用户可以用平台软件在手机上跟单下单;再利用DBSync将平台数据实时同步至CRM,平台成为了CRM的前端,就支持手机使用了。

后端扩建,如:数据的统计分析、打印输出等,道理是一样的。找到适合的第三方软件,将数据同步过去,把它变成系统的后端,即可。

6、其它注意事项

同步前做好数据备份:数据同步将直接更改目标数据库,请做好目标数据库的备份工作,以防数据丢失。

同步方式选择增量同步时,要注意双方在数据范围上的对等性。同步程序工作时,需要先扫描、比较双方数据,找到相互间的差异,再做同步。如果双方在数据范围上不对等,比较就失去意义,结果自然也是错误的。

增量同步时,主键字段用于唯一地标识一条记录,其值应该非空且唯一,同步时如遇到空值或者重复的,将直接跳过,不作处理。

如何实现双向同步:每个任务的同步方向是单向的,即将源库数据同步至目标库,使得目标库与源库保持一致。如果需要双向同步,可另建一个任务用于反方向的同步。

同步至文件时的限制:除了常规数据库间的同步外,有些用户需要将数据同步到单一文件中,由于文件机制本身的限制,有些增量同步不支持,具体情况是:

同步至txt、csv等文本文件:支持新增(Insert)同步,不支持删(Delete)、修改(Update)同步。

同步至Excel文件:支持新增(Insert)、修改(Update)同步,不支持删(Delete)同步。

参考资料

OLE DB连接字符串

本软件采用 OleDbConnection (.NET) 连接数据库,连接字符串需填写OLE DB 的形式。OLE DB是一种广泛采用的数据库访问接口,大部分数据库都支持该接口,个别不支持的可采取OLE DB Provider for ODBC进行连接,因此本软件支持各种数据源,包括常规数据库、Excel文件、文本文件等。以下是各种数据源的连接字符串格式,供参考。

Access 连接字符串

标准连接:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydb.mdb;Persist Security Info=False;

带密码的连接:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\mydb.mdb;Persist Security Info=False; ;Jet OLEDB:Database Password=123456;

SQL Server 2000连接字符串

带密码的连接:

Provider=sqloledb;Server=(local);Database=Northwind;Uid=sa;Pwd=123456;

不带密码的信任连接:

Provider=sqloledb;Server=(local);Database=Northwind;Integrated Security=SSPI;

SQL Server 2005连接字符串

带密码的连接:

Provider=SQLNCLI;Server=(local);Database=Northwind;Uid=sa;Pwd=123456;

不带密码的信任连接:

Provider=SQLNCLI;Server=(local);Database=Northwind;Integrated Security=SSPI;

SQL Server 2008连接字符串

带密码的连接:

Provider=SQLNCLI10;Server=(local);Database=Northwind;Uid=sa;Pwd=123456;

不带密码的信任连接:

Provider=SQLNCLI10;Server=(local);Database=Northwind;Integrated Security=SSPI;

SQL Server 2012\2014\2016连接字符串

带密码的连接:

Provider=SQLNCLI11;Server=(local);Database=Northwind;Uid=sa;Pwd=123456;

不带密码的信任连接:

Provider=SQLNCLI11;Server=(local);Database=Northwind;Integrated Security=SSPI;

Oracle连接字符串

微软提供的OLE DB连接:

Provider=msdaora;Data Source=127.0.0.1;User Id=sa;Password=123456;

Oracle提供的OLE DB连接:

Provider= OraOLEDB.Oracle; Data Source=127.0.0.1;User Id=sa;Password=123456;

Oracle提供的OLE DB信任连接:

Provider= OraOLEDB.Oracle;Data Source= Northwind; OSAuthent=1;

MySQL连接字符串

Provider=MySQLProv;Data Source=127.0.0.1;User Id=sa;Password=123456;

DB2连接字符串

Provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=127.0.0.1;Initial Catalog=MyCtlg;Package Collection=MyPkgCol;Default Schema=Schema;User ID=sa;Password=123456;

Excel连接字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myExcel.xls;Extended Properties="Excel 8.0;HDR=YES";

说明:

A、用数据库接口访问Excel文件,是将Excel文件当作数据库,Excel中的Sheet当作数据表来访问的。

B、连接字符串中的HDR=YES,用于指定第一行为标题行。

文本文件连接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\myPath\;Extended Properties="text;HDR=Yes;FMT=Delimited";

说明:

A、用数据库接口访问txt、csv等文本文件,是将文件所在目录当作数据库,将文件自身当作数据表来访问的,因此Data Source处填写的是文件所在目录。

B、连接字符串中的HDR=YES,用于指定文件中的第一行为标题行。

C、连接字符串中的FMT=Delimited,用于指定字段之间用逗号分隔。如果不是以逗号分隔,比如,以TAB分隔,需要先在该目录下设置一个schema.ini文件,再在schema.ini中指定分隔符,例如:

[Test.txt]

Format=TabDelimited

其中,Format=TabDelimited指定TAB作为字段分隔符,其它几种分隔符定义方式:

Format=CSVDelimited,指定逗号为分隔符;Format=Delimited(custom character),指定任意字符作为分隔符,如Format=Delimited(|)就是指定|作为分隔符;Format=FixedLength,指定字段长度是固定的。

其它数据库连接字符串

由于数据库种类繁多,我们无法一一列出所有连接字符串。如果您的数据库很特殊,不清楚如何书写连接字符串,可以让系统工具生成连接字串,步骤如下:

(1)先在本地磁盘创建一个.txt文件,如:c:\1.txt,再将扩展名改为.udl,即c:\1.udl。

(2)双击该文件,打开“数据连接属性”程序。

(3)在“提供程序”标签处,选择您的数据库的专属OLE DB Provider;如果没有专属Provider,可安装数据库客户端后再试一下;如果还是没有,可选择Microsoft OLE DB Provider for ODBC Drivers,点击下一步。

(3)在“连接”标签处,视情况输入服务器名称或IP地址、用户名、密码等信息,点击“确定”。

(4)右键点击c:\1.udl,打开方式选择记事本,即可看到连接字符串。

大家还下载了