数据同步系统及方法

文档序号:7741118阅读:211来源:国知局
专利名称:数据同步系统及方法
数据同步系统及方法
技术领域
本发明涉及数据传输领域,特别涉及一种数据同步系统及方法。背景技术
异地数据同步是一种可以使跨区域企业或者几个企业之间能够进行远程数据同 步或备份的技术。数据同步一般包括关系数据库之间的数据同步和文件数据器之间的数 据同步。通常,关系数据库之间的数据同步采用传输控制协议(Transmission Control Protocol,简称TCP)实现。两个关系数据库之间建立TCP长连接,当其中一个数据库中的 数据有变化时,则与之连接的另一数据库能拉取到最新变化的SQL语句(包括插入、更新、 删除等)并执行,使得两个相互连接的数据库的数据保持一致。而文件服务器之间的数据 同步可采用远程同步功能(remote synchronize,简称rsync)实现。然而,由于要求数据库 之间允许TCP双向长连接,而企业之间往往有防火墙,其只允许HTTP单向短连接,导致数据 同步无法进行,因此关系数据库之间的数据同步的网络穿透性差。对于文件服务器之间的 数据同步,也同样存在网络穿透性差的缺点。另外这两种同步方式同步数据不够精细化,在 需要精细控制数据的场景下不能满足业务需求。

发明内容基于此,有必要提供一种网络穿透性较强、同步数据较精细的数据同步系统。此外,还有必要提供一种网络穿透性较强、同步数据较精细的数据同步方法。一种数据同步系统,所述数据同步系统包括内网数据服务器、同步处理模块及至 少一个外网数据服务器,所述内网数据服务器包括第一数据接口,所述外网数据服务器包 括第二数据接口;所述同步处理模块向所述第一数据接口及第二数据接口发送数据传输请求及同 步信息,接收所述第一数据接口及第二数据接口返回的增量数据,处理所述增量数据,将所 述内网数据服务器和外网数据服务器需执行的同步数据分别发送到第一数据接口和第二 数据接口 ;所述第一数据接口及第二数据接口分别接收所述数据传输请求及同步信息,根据 所述同步信息获取对应的增量数据并将所述增量数据返回给所述同步处理模块,接收并执 行所述同步处理模块发送的同步数据。优选地,所述第一数据接口及第二数据接口都为超文本传输协议接口。优选地,所述同步处理模块还用于记录所述内网数据服务器及外网服务器中每个 数据源同步数据的时间戳及数据同步的发起时间。优选地,所述同步信息包括接收数据的时间范围和数据源参数,所述增量数据为 数据库内增加的数据和/或磁盘内增加的文件数据。优选地,所述同步处理模块还用于在网络传输失败时自动重试,若重试传输成功, 则发起下次轮询;若重试传输失败,则继续重试直到达到最大重试次数,且在发起下次轮询时,增加步进时间。一种数据同步方法,包括以下步骤A.向数据服务器的数据接口发送数据传输请求及同步信息;B.接收所述数据接口根据同步信息返回的增量数据,并处理所述增量数据,获取 所述数据服务器需执行的同步数据并发送至所述数据接口,由所述数据接口接收并执行所 述同步数据。优选地,所述数据接口为超文本传输协议接口。优选地,所述数据同步方法还包括步骤C:记录执行所述同步数据的时间戳及数 据同步的发起时间。优选地,所述同步信息包括接收数据的时间范围和数据源参数,所述增量数据为 数据库内增加的数据和/或磁盘内增加的文件数据。优选地,所述方法还包括在网络传输失败时自动重试,重试是否成功,若重试传 输成功,则发起下次轮询,并增加步进时间,若重试传输失败,则继续重试直到达到最大重 试次数,且在发起下次轮询时,增加步进时间。上述数据同步系统及方法,采用数据接口根据同步信息获取增量数据,再对增量 数据进行处理得出每个数据服务器的需执行的同步数据,将该同步数据发送给数据服务器 的数据接口执行进行该同步数据,实现了数据服务器的数据同步,这样实现,网络穿透性较 强,数据同步较精细。另外,记录执行同步数据的时间戳,以便下次同步能更快的获取到增量数据,提高 数据同步的速度,记录数据同步的发起时间,可让系统定时发起数据同步。

图1为一个实施例中数据同步系统的结构示意图;图2为另一个实施例中数据同步系统的结构示意图;图3为一个实施例中数据同步方法的流程图。
具体实施方式如图1所示,一种数据同步系统,包括内网数据服务器10、同步处理模块20和至少 一个外网数据服务器30。其中内网数据服务器10包括第一数据接口 100,外网数据服务器30包括第二数据接 口 300。在一个实施例中,内网数据服务器10为企业内网中的数据服务器,外网数据服务器 30为企业防火墙外的外部其他企业中的数据服务器。第一数据接口 100和第二数据接口 300均用于接收数据传输请求和包含接收数据时间范围、数据源参数等的同步信息,且根据 该同步信息获取对应的增量数据并将该增量数据返回给同步处理模块20 ;且均还用于接 收并执行同步处理模块20发送的同步数据。在一个实施例中,如图2所示,内网数据服务 器10和外网数据服务器30分别还包括数据库和/或文件存储模块,第一数据接口 100和 第二数据接口 300接收并执行同步数据后,可将同步数据分别存储在内网数据服务器10的 数据库101和/或文件存储模块102和外网数据服务器30的数据库301和/或文件存储 模块302中。
在一个实施例中,第一数据接口 100和第二数据接口 300均为超文本传输协议 (Hyper Text Transfer Protocol,简称“Http,,)数据接 口,该 Http 数据接口是部署在 web 服务器上的服务器动态脚本。其中,数据源需要同步则必须先获取增量数据。数据源可存 储在数据库或磁盘文件中,该增量数据为一定时间内数据库内增加的数据和/或磁盘内增 加的文件数据。若数据源位于数据库中,可以从日志(Log)文件中分析出增量数据并得到 可执行的结构化查询语言(Structured Query Language,简称“SQL”)语句集;若数据源为 磁盘文件,可利用shell命令查找出指定时间内的增量文件数据,指定时间由系统设定,也 可由用户自定。在一个实施例中,第一数据接口 100和第二数据接口 300还可使用用户名密码和 SSL (Secure Socket Layer)加密来保证数据通讯的安全性。同步处理模块20用于向所述第一数据接口 100和第二数据接口 300发送数据传 输请求及同步信息,接收所述第一数据接口 100及第二数据接口 300返回的增量数据,处理 增量数据,即对增量数据进行分析和组合,并将该内网数据服务器10和外网数据服务器30 需执行的同步数据分别发送到第一数据接口 100和第二数据接口 300。在一个实施例中,同步处理模块20还用于记录该内网数据服务器10及外网数据 服务器30中每个数据源最后一次同步数据的时间戳及数据同步的发起时间。在一个实施例中,以Http数据接口为例说明数据同步的具体过程如下同步处理模块20向内网数据服务器10及外网数据服务器30中的Http数据接口 发起Http数据传输请求,传输接收数据的时间范围和数据源参数等同步信息;Http数据接 口使用Http Get方法获取内网数据服务器10和外网数据服务器30的增量数据并将增量 数据传递给同步处理模块20 ;同步处理模块20对接收到的增量数据进行分析和组合处理, 得出每个数据服务器需要执行的同步数据,再将得出的同步数据使用Http Post分别发送 到Http数据接口 ;Http数据接口执行所接收到的同步数据;同步处理模块20记录本次同 步的执行结果。其中,同步数据可以为SQL语句集或磁盘文件等。在一个实施例中,同步处理模块20在网络传输失败时,会自动重试,若重试传输 成功,则发起下次同步轮询;若重试传输失败,则继续重试传输直到达到最大重试次数,且 在发起下次同步轮询时,增加步进时间,以保证时间同步的差异不会太大。其中,最大重试 次数由系统设定,步进时间为下次发起时间与上次记录数据同步的时间戳之差。如图3所示,一种数据同步方法,包括以下步骤步骤S10,向数据服务器的数据接口发送数据传输请求及同步信息。由同步处理模 块20向内网数据服务器10和外网数据服务器30的数据接口发送数据传输请求及同步信 息。其中,该同步信息包括接收数据时间范围、数据源参数等。数据接口为超文本传输协议 (Hyper Text Transfer Protocol,简称 “Http”)数据接口。步骤S20,接收所述数据接口根据同步信息得到的增量数据,并处理所述增量数 据,获取所述数据服务器需执行的同步数据并发送至所述数据接口,由所述数据接口接收 并执行所述同步数据。在一个实施方式中,内网数据服务器10和外网数据服务器30的数据接口接收到 同步信息,根据同步信息获取每个数据服务器的增量数据,将该增量数据返回到同步处理 模块20,同步处理模块20对增量数据进行分析和组合等处理获取内网数据服务器10和外网数据服务器30需执行的相应的同步数据,并发送该相应的同步数据至内网数据服务器 10和外网数据服务器30的数据接口。数据接口接收到同步数据后执行该同步数据。其中, 所述增量数据为一定时间数据库内增加的数据和/或磁盘内增加的文件数据。在一个实施例中,上述数据同步方法还包括记录执行同步数据的时间戳及数据同 步的发起时间的步骤。记录执行同步数据的时间戳,以便下次同步能更快的获取到增量数 据,提高数据同步的速度,记录数据同步的发起时间,可让系统定时发起数据同步。在一个实施例中,上述数据同步方法还包括步骤在网络传输失败时自动重试,若 重试传输成功,则发起下次轮询;若重试传输失败,则继续重试直到达到最大重试次数,且 在发起下次轮询时,增加步进时间。其中,最大重试次数由系统设定。上述数据同步系统及方法,采用数据接口根据同步信息获取增量数据,再对增量 数据进行处理得出每个数据服务器的需执行的同步数据,将该同步数据发送给数据服务器 的数据接口执行进行该同步数据,实现了数据服务器的数据同步,这样实现数据同步,网络 穿透性较强,数据同步较精细。另外,记录执行同步数据的时间戳,以便下次同步能更快的获取到增量数据,提高 数据同步的速度,记录数据同步的发起时间,可让系统定时发起数据同步。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种数据同步系统,其特征在于,所述数据同步系统包括内网数据服务器、同步处理 模块及至少一个外网数据服务器,所述内网数据服务器包括第一数据接口,所述外网数据 服务器包括第二数据接口;所述同步处理模块向所述第一数据接口及第二数据接口发送数据传输请求及同步信 息,接收所述第一数据接口及第二数据接口返回的增量数据,处理所述增量数据,将所述内 网数据服务器和外网数据服务器需执行的同步数据分别发送到第一数据接口和第二数据 接口 ;所述第一数据接口及第二数据接口分别接收所述数据传输请求及同步信息,根据所述 同步信息获取对应的增量数据并将所述增量数据返回给所述同步处理模块,接收并执行所 述同步处理模块发送的同步数据。
2.根据权利要求1所述的数据同步系统,其特征在于,所述第一数据接口及第二数据 接口都为超文本传输协议接口。
3.根据权利要求1或2所述的数据同步系统,其特征在于,所述同步处理模块还用于记 录所述内网数据服务器及外网服务器中每个数据源同步数据的时间戳及数据同步的发起 时间。
4.根据权利要求1所述的数据同步系统,其特征在于,所述同步信息包括接收数据的 时间范围和数据源参数,所述增量数据为数据库内增加的数据和/或磁盘内增加的文件数 据。
5.根据权利要求1所述的数据同步系统,其特征在于,所述同步处理模块还用于在网 络传输失败时自动重试,若重试传输成功,则发起下次轮询;若重试传输失败,则继续重试 直到达到最大重试次数,且在发起下次轮询时,增加步进时间。
6.一种数据同步方法,包括以下步骤A.向数据服务器的数据接口发送数据传输请求及同步信息;B.接收所述数据接口根据同步信息返回的增量数据,并处理所述增量数据,获取所述 数据服务器需执行的同步数据并发送至所述数据接口,由所述数据接口接收并执行所述同 步数据。
7.根据权利要求6所述的数据同步方法,其特征在于,所述数据接口为超文本传输协 议接口。
8.根据权利要求6或7所述的数据同步方法,其特征在于,所述数据同步方法还包括步 骤C 记录执行所述同步数据的时间戳及数据同步的发起时间。
9.根据权利要求6所述的数据同步方法,其特征在于,所述同步信息包括接收数据的 时间范围和数据源参数,所述增量数据为数据库内增加的数据和/或磁盘内增加的文件数 据。
10.根据权利要求6所述的数据同步方法,其特征在于,所述方法还包括在网络传输 失败时自动重试,重试是否成功,若重试传输成功,则发起下次轮询;若重试传输失败,则继 续重试直到达到最大重试次数,且在发起下次轮询时,增加步进时间。
全文摘要
本发明涉及一种数据同步系统及方法。所述系统包括内网数据服务器、同步处理模块及至少一个外网数据服务器,所述内网数据服务器包括第一数据接口,所述外网数据服务器包括第二数据接口;所述同步处理模块向所述第一数据接口及第二数据接口发送数据传输请求及同步信息,接收所述第一数据接口及第二数据接口返回的增量数据,处理所述增量数据,将所述内网数据服务器和外网数据服务器需执行的同步数据分别发送到第一数据接口和第二数据接口;所述第一数据接口及第二数据接口分别接收所述数据传输请求及同步信息,根据所述同步信息获取对应的增量数据并将所述增量数据返回给所述同步处理模块,接收并执行所述同步处理模块发送的同步数据。
文档编号H04L29/06GK102137132SQ20101010373
公开日2011年7月27日 申请日期2010年1月26日 优先权日2010年1月26日
发明者杨晓俊, 蔡昌志, 陈锦泽 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1