通用型的同步软件,支持SQL、NoSQL各种数据库,用于系统对接、数据备份、异地传输等。
文章目录
- 通用型的同步软件,支持SQL、NoSQL各种数据库,用于系统对接、数据备份、异地传输等。
- 一、功能特点
- 非侵入式,独立运行
- 支持各种数据库
- 支持异构同步
- 支持异地同步、跨平台同步
- 支持增量同步
- 数据过滤与处理
- 秒级实时同步
- 异常提醒通知
- 二、工作原理
- 三、运行环境
- 四、数据同步
- 五、参考资料
一、功能特点
非侵入式,独立运行
- 非侵入式,无需改动数据库,无需注入脚本或触发器,不影响现有系统运行。只需连接上即可同步,独立运行,简单易用。
支持各种数据库
- 支持Oracle、MySQL、SQL Server、Access、PostgreSQL、MongoDB、DB2、ES、SQLite、Firebird…各种数据库都可同步。
支持异构同步
- 既支持同构数据库之间的同步,如Access到Access,MySQL到MySQL,又支持异构数据库同步,如Access到SQLServer、SQLServer到MySQL、MySQL到Oracle等。
支持异地同步、跨平台同步
- 支持异地同步,例如云端、本地之间同步;既可同构平台同步,如Windows到Windows,Linux到Linux,又可跨平台同步,如Windows到Linux,Linux到Unix等。
支持增量同步
- 既支持简单的复制式同步(Copy),又支持增量同步。软件能快速扫描数据库,找出相互间的差异(即增量),只对增量进行同步。
数据过滤与处理
- 参与同步的范围,可以是整个库,也可以是个别表,或者表中部分行列,可任意过滤;可设置同步后SQL更新语句,实现额外数据处理。
秒级实时同步
- 重复同步的时间间隔最短可设置为1秒,源数据库发生变更后,1秒后就同步过去,几乎等同于实时同步。
异常提醒通知
- 软件具有提醒通知功能,每当任务执行出现异常,可自动Email通知当事人,让您及时了解异常情况,及时排错。
二、工作原理
- DBSync工作原理并不复杂,它不依靠数据库日志、触发器、脚本等内部过程,只读取双方数据,采用独有高效算法,快速扫描比较,找出增量并写入目标库,从而使双方保持一致。
- DBSync采用驱动程序连接数据库,任何可用OLEDB或ODBC连接的数据均可同步,因此它支持各种数据库,包括关系型、NoSQL型、数据文件等。
- 使用时,先设置数据库连接字串,使得DBSync能连接双方数据库,再指定双方表与字段的对应关系,再设置同步方式(如增量同步)、同步频度(如每分钟一次),即可开始同步。
- 这种不介入数据库内部、按表同步的特征,使得DBSync适用范围广、灵活性强、可靠性高,不会遗漏数据,且简单易用。
- 本软件是供技术人员使用的,要同步数据,你需要知道双方数据库的基本情况。比如,要同步客户资料,你需要知道其存储位置与结构:在源数据库里,它是哪个表,在目标数据库里,它又是哪个表,两表的字段是如何对应的…等等。另外,对于源数据库,你需要有读权限;对于目标数据库,你需要有写权限。写入时,DBSync仍然遵守目标数据库的各种约束限制,不会绕过或破坏该限制,确保数据安全。
- 下载地址:DBSync
三、运行环境
Windows系统的电脑均可运行,可以运行在源数据库端,也可以运行在目标数据库端,还可以运行在第三方电脑上。任选一台电脑,只要能连接数据库即可。绿色软件,免安装,下载后解压即可运行。
四、数据同步
-
右上角新建,下面我以SqlServer为例
-
连接字符串,可参考下面的参考资料。
-
第二步,选择对应同步的表
-
如果表没有设置主键,可以选择主键,如果有主键会自动匹配
-
注意:没有主键的无法增量同步
-
没有主键列,全部同步即可
-
最后直接点击同步就可以了。
五、参考资料
本软件采用 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,用于指定第一行为标题行。