系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。
DBSync是一款数据比较与同步工具,能比较出数据库之间的差异,能实时同步差异数据,从而使双方始终保持一致。用于系统间数据对接、数据分发、数据对比等。 DBSync提供了大量功能功能,例如交互式(GUI)模式/命令行模式,可切换会话,插入,更新和删除包含的同步类型,任务计划程序调度,数据过滤,可能的转换错误的预验证等。用户可以通过配置几个选项,并通过向导界面或命令行模式进行一些同步自定义来转换和同步MySQL与MySQL或MySQL。添加到调度功能的命令行参数使您能够定期自动同步或转换数据,而无需用户输入和辅助设置。
数据比较与同步工具DBSync特色
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执行语句,实现同步之外的数据转换、公式计算等额外任务。
数据比较与同步工具DBSync主界面介绍
打开软件后进入主界面,显示同步任务列表,如下图所示:
说明:任务是执行同步的基本单位,一个任务负责一对数据表之间的同步,多个任务可并发执行。
数据比较:Click任务列表中的“○”按钮,进入扫描并比较界面。
数据同步:Click任务列表中的“?”按钮,立即开始同步。
执行状态:实时显示同步进度信息,包括:已扫描的记录数、已同步(增删改)的记录数等。
开始时间、结束时间、下次开始时间:显示每个任务的执行时间信息。
日志:Click任务列表中的“日志”按钮,可查看该任务的操作日志。
设置:Click任务列表中的“修改”按钮,可修改任务设置。
数据比较与同步工具DBSync注意事项
*同步前做好数据备份:数据同步将直接更改目标数据库,请做好目标数据库的备份工作,以防数据丢失。
*同步方式选择增量同步时,要注意双方在数据范围上的对等性。同步程序工作时,需要先扫描、比较双方数据,找到相互间的差异,再做同步。如果双方在数据范围上不对等,比较就失去意义,结果自然也是错误的。
*增量同步时,主键字段用于唯一地标识一条记录,其值应该非空且唯一,同步时如遇到空值或者重复的,将直接跳过,不作处理。
*如何实现双向同步:每个任务的同步方向是单向的,即将源库数据同步至目标库,使得目标库与源库保持一致。如果需要双向同步,可另建一个任务用于反方向的同步。
*同步至文件时的限制:除了常规数据库间的同步外,有些用户需要将数据同步到单一文件中,由于文件机制本身的限制,有些增量同步不支持,具体情况是:
同步至txt、csv等文本文件:支持新增(Insert)同步,不支持删(Delete)、修改(Update)同步。
同步至Excel文件:支持新增(Insert)、修改(Update)同步,不支持删(Delete)同步。
数据比较与同步工具DBSync使用教程
要比较与同步数据,必须先设置一个任务,在任务里指定源数据表、目标数据表,以及同步方式、同步频度等。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” 字段,进一步计算“性别”字段。
系统软件一般是在计算机系统购买时随机携带的,也可以根据需要另行安装。