[发明专利]一种异构数据库同步系统中增量数据同步故障的恢复方法在审
申请号: | 201410132489.8 | 申请日: | 2014-04-02 |
公开(公告)号: | CN103970834A | 公开(公告)日: | 2014-08-06 |
发明(设计)人: | 李莹;姚祥龙;尹建伟;邓水光;吴健;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F11/14 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 胡红娟 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 同步 系统 增量 数据 故障 恢复 方法 | ||
技术领域
本发明涉及数据库同步技术领域,具体涉及一种异构数据库同步系统中增量数据同步故障的恢复方法。
背景技术
数据库是IT架构中的一种基础构件,是对数据进行存储、管理的一种有效设施,现在几乎所有的应用都离不开数据库的支持。由于现在海量数据和数据访问地区分布不均衡,单个数据库已经不能承载所有的访问,一般需要在多个不同的地方分别部署一个数据库来提供服务,其中每一个数据库对外界来说都是数据完整和服务完整的,但是事实上每两个数据库之间的数据都是不一致的,所以这些不同地方的数据库之间就需要进行增量数据的同步来保证所有数据库的数据一致性和服务完整性。
增量数据是指一个数据库在某一段时间之内产生的数据,按照操作类型区分又分为插入数据、删除数据、修改数据,分别对应SQL中insert、delete、update操作,数据库增量同步就是把增量数据从源数据库传输到目的数据库中,以达到源数据库和目的数据库的数据一致性,过程依次如下:获取源数据库的增量数据、传输到目的数据库、在目的数据库中执行SQL语句进行数据载入。
由于IT设施所处的环境是不可靠的,且硬件、软件、外界不可抗力等各种原因会造成数据库系统处在一个错误的状态而无法运行或者宕机,因此,在增量数据同步过程中会出现故障,当增量数据同步过程重启之后,如何恢复运行中断的增量数据同步是一个问题。
授权公告号为CN101038591B的专利文献公开了一种数据库同步方法,用于主用服务器数据库和备用服务器数据库的初始同步,所述主用服务器数据库中设置有包括同步标识号的同步表,该方法包括以下步骤:备用服务器向主用服务器发送初始同步请求;主用服务器根据接收到的所述初始同步请求,在所述同步表中更新同步标识号,并备份所述主用服务器数据库,生成备份文件;备用服务器获取所述更新后的同步标识号和所述备份文件,用所述备份文件恢复备用服务器数据库。
恢复运行中断的增量数据同步的关键在于记录同步位置信息,采用文件记录同步位置信息是一种通常采用的方法,但是由于文件操作与数据库操作不是同一个原子操作,写文件操作与写数据库操作之间存在很小的时间间隔,在某些极端情况下(比如刚刚写完文件操作还未进行数据库操作时掉电,仍会对数据库的一致性造成破坏,所以如果使用文件记录同步位置,必须设计更加复杂的方法来保证增量数据与同步位置的一致性。
发明内容
本发明提供了一种异构数据库同步系统中增量数据同步故障的恢复方法,在基本不影响数据库性能的同时,利用数据库事务的原子性进行同步故障的快速恢复。
一种异构数据库同步系统中增量数据同步故障的恢复方法,所述异构数据库同步系统包括至少两个数据库,两个数据库进行增量数据同步时,其中一个为提供增量数据的源数据库,另一个为接收增量数据的目的数据库,包括以下步骤:
(1)在目的数据库中建立对应的特殊表,每个目的数据库的特殊表用于记录能够与该目的数据库同步的源数据库的同步位置;
(2)将目的数据库的事务执行模式设为手动提交模式,同步完毕增量数据后,更新特殊表中的同步位置,然后手动提交增量数据事务;
(3)若从源数据库到目的数据库进行增量数据同步时发生故障,则从目的数据库的特殊表中读取源数据库的同步位置,由同步位置开始继续进行从源数据库到目的数据库的增量数据同步。
由于数据库事务操作的原子性,可以保证增量数据与同步位置的写入及修改是同一个原子操作,即增量数据与同步位置要么写入都成功、要么写入都不成功。
所述特殊表采用标准SQL建立。特殊表的名称固定(如datasync),所述特殊表中至少包含一个同步位置字段。特殊表中也可以包含其他字段,用于记录定位源数据库的其他信息,例如源数据库所在主机IP、源数据库端口以及源数据库名称,即特殊表中包含同步位置字段、源数据库所在主机IP、源数据库端口以及源数据库名称字段。
由于异构数据库同步系统中的各个数据库可能采用不同的标准建立,为了各数据库之间的兼容性,所述特殊表的同步位置字段以及其他所有字段的数据类型为varchar。varchar便于特殊表在所有数据库之间通用。
建立特殊表时,首先写入一条源数据库的初始数据,初始数据可以为一条数据为“host,port,databasename,-1”的行数据(host为源数据库的主机IP,port为源数据库端口,databasename为源数据库名称)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410132489.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种罐体生产用的空气传输装置
- 下一篇:新型夹抱合分机