[发明专利]一种异构数据库的数据同步、校验方法、装置及系统有效
申请号: | 201410192546.1 | 申请日: | 2014-05-08 |
公开(公告)号: | CN103984715B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | 胡三波 | 申请(专利权)人: | 武汉库百网络技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司11212 | 代理人: | 杨立 |
地址: | 430074 湖北省武汉市洪*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 数据 同步 校验 方法 装置 系统 | ||
技术领域
本发明涉及数据同步技术领域,具体涉及一种异构数据库的数据同步、校验方法、装置及系统。
背景技术
目前常用的差异数据捕捉方法主要有快照法(Snapshot)、日志法、API(Application Program Interface)法、影子表法、控制表法、时间戳法和触发器法。
快照法就是在某一时刻对数据库中数据进行一次“照相”,生成一个描述数据库中数据的瞬时状态的静态文件,最后在规定时间内复制到目标数据库。
日志法就是通过分析数据库日志信息来捕获复制对象的变化序列。
API(Application Program Interface,应用程序接口)法就是在应用程序和数据库之间引入一类中间件,由它提供一系列API,在API上完成应用程序对数据库修改的同时,记录下同步对象的变化序列。
影子表法是初始化数据库时,为每一个同步对象表建立一个影子表,即作为一份当前的拷贝,以后通过比较当前的影子表与源表获取变化信息。
控制表法是为每个要同步的源表创建一个控制表,控制表只包括源表的主键字段和一些控制信息字段(更新时间、更新类型等),当源表中的某条记录发生变化时,同时添加或修改控制表相应的主键记录。
时间戳法是需要相关应用系统中的每个表中都有一个时间戳字段,以记录每个表的修改时间。
触发器法是为复制对象创建相应的触发器,当对复制对象进行修改、插入和删除等DML(Data Manipulation Language,数据操作语言)命令时,触发器被唤醒,将变化捕获。
采用上述快照法不依赖任何机制,不占用额外的系统资源,但因为它是对数据库的完整拷贝,因此效率很低且无法区分哪些具体项发生变化;另外,快照法只能在同种数据库之间使用,不适用异构数据库之间的数据同步。
由于大多数数据库都有日志,利用日志法不仅方便而且也不会占用太多额外的系统资源,但是采用日志法也存在一些缺点:首先,一些数据库系统不公开其日志的格式,要开发一个基于日志的变化捕获程序非常困难;其次,不同的数据库在具体细节上存在很大差异,会给异构数据库带来新的问题;最后,日常数据库管理工作已经非常繁重,而日志法无疑会加重这种负担,日志法同快照法一样,只能在同种数据库之间完成,不适用异构数据库。
API法可以实现日志法大多数的优点,但对于不经过API的操作所引起的数据变化,API无法捕获,另外应用程序的可移植性比较差;在数据离线的方式下,通过API的数据库操作也不能保持数据的一致性。
影子表法使用范围比较广,容易移植,很适合解决异构数据库的数据同步,但是占用空间大,不能获得中间操作信息和控制信息,并且每次捕获变化都要扫描源表和影子表,效率低下。
控制表法可以获得同步对象的净变化,运行和数据传输的效率都很高,控制表占用存储空间小于影子表,易于管理,并且控制表中保存的更新时间、操作者等控制信息,弥补了解决同步冲突的不足。但由于控制表法要依赖触发器实现,因而在应用上有一定的局限性。
时间戳法虽然不影响原有应用的运行效率,但却需要对原有系统做较大的调整,因而不能捕获到哪些不通过应用系统引起的操作数据变化。
触发器法占用的系统资源比较多,对于复杂的复制任务需要非常复杂的配置和实施,管理非常不方便;另外,触发器在异构数据可之间也是无效的。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的异构数据库的数据同步方法、装置及异构数据库的数据同步校验方法、系统,采用多种机制保持数据库的一致性,即在线状态下保证数据实时同步,离线数据可以在网络重连之后上传,在数据出错后可以进行校验,保证数据的一致。
依据本发明的一个方面,提供了一种异构数据库的数据同步方法,包括:
在线数据同步部分和离线数据同步部分;
所述在线数据同步部分包括:
实时监听客户端数据库的数据操作;
当监听到客户端数据库中的数据发生变化时,获取发生变化的数据记录;
客户端将所述数据记录发送给服务器端;
在服务器端接收到客户端发送的数据记录的情况下,服务器端根据所述数据记录,修改服务器端数据库中的数据,并将数据修改结果状态通知客户端;
所述离线数据同步部分包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉库百网络技术有限公司,未经武汉库百网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410192546.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置