SyncNavigator v8.6.2

SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。

安装包下载地址:https://www.syncnavigator.cn/Setup.zip

帮助文档地址:https://www.syncnavigator.cn/Help_zh-CN.chm

Web文档地址:https://www.syncnavigator.cn/chm/index.htm

数据比较与同步工具Syncnavigator|数据比较与同步工具下载|数据库实时同步_数据库同步软件数据比较与同步工具Syncnavigator|数据比较与同步工具下载|数据库实时同步_数据库同步软件_02

1       产品简介

DBSync是一款数据库比较与同步工具,能比较出数据库之间的差异,能实时同步差异数据,从而使双方始终保持一致。用于系统间数据对接、数据分发、数据对比等。

2       主要特点

支持各种数据源

既支持常规数据库,如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执行语句,实现同步之后的数据转换、公式计算等额外任务。

3       如何下载安装

 

 

 

4       软件使用

4.1主界面介绍

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

 

图1:主界面

 

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

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

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

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

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

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

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

 

4.2同步任务设置

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

 

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

 

首先要选定源数据库、目标数据库,如下图所示:

 

图2:选择数据库

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

 

●关于OLE DB连接字符串:

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

 

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

 

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

 

 

图3:选择数据表

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

 

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

 

Step3:选择字段对应关系

 

 

图4:选择字段对应关系

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

 

●关于主键字段:

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

 

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

 

Step4:选择同步方式及频度

 

 

图5:同步方式及频度

 

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

 

(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

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

 

4.3数据比较界面

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

 

图6:扫描与比较界面

 

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

 

4.4关于系统重启并自动恢复同步

本软件关闭重启后,此前正在执行的任务能自动继续执行,无需人工干预。对于系统关机重启,如果也需要自动恢复执行,将本软件配置成开机自动启动即可,能防止意外关机重启而造成同步中断,从而实现无人值守同步。

配置开机启动的位置:开始→所有程序→启动→鼠标右键→浏览,进入启动程序目录→在空白处点鼠标右键→新建→快捷方式→浏览→选择本软件DBSync.exe即可。

5       典型应用场景

5.1 数据对比

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

 

5.2 数据对接

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

 

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

 

5.3 数据集成

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

 

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

 

5.4 数据上报与分发

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

 

5.5 老旧系统扩建改造

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

 

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

 

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

6       其它注意事项

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

 

●确保目标数据库可更新:连接数据库的账号应具有更新权限;如果数据表含有标识字段、主键唯一性约束等,请确保能正常增删改目标库。

 

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

 

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

 

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

 

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

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

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