一种异构数据库复制事务一致性保障方法及系统技术方案

技术编号:13188312 阅读:44 留言:0更新日期:2016-05-11 17:46
本发明专利技术提供一种基于提交表的异构数据库复制事务一致性保障方法及系统,在使用日志进行异构数据库复制环境中,利用提交事务表记录目的端数据库完成事务的过程,并定期执行恢复起始点的检查,在复制系统故障时利用提交事务表决定需要重传的事务日志起始位置。本发明专利技术采用基于事务表的异构数据库复制,解决了源数据库和目的数据库双方事务执行可能存在的不一致性,导致双方数据不一致的技术问题。

【技术实现步骤摘要】

本专利技术涉及一种异构数据库复制的事务一致性保障方法,尤指一种基于事务提交 表的异构数据库复制事务一致性保障方法及系统
技术介绍
随着企业信息化系统的广泛应用,信息化系统已经成为企业维持业务运转的关 键。企业多样化的业务类型导致数据访问需求日趋复杂化,同时数据量的急剧攀升也导致 数据库服务器不堪重负。企业迫切需要提高信息系统的可用性,保证业务的连续性,最大限 度地减少因灾难或故障所带来的损失。为此,分布式异构数据库的数据复制是一种常用的 技术手段。 目前,抽取源数据库的事务日志,获得源数据库的数据操作,包括插入(INSERT)、 删除(DELETE)、更新(UPDATE),然后通过网络发送给复制系统的目的端,目的端恢复成原始 的SQL语句在目的数据库上执行,是一种常用的数据库复制技术。它具有对源数据库的性能 和数据模式影响小,可采用非常灵活的方式配置出各种拓扑结构,支持跨异构的操作系统 和数据库平台复制等优点。 保障目的数据库与源数据库的事务一致性,并在任何软硬件故障下具备恢复数据 复制的能力,是这种复制系统需要考虑的问题。目前存在的一些数据复制系统,例如Oracle 的GoldenGate,通过自身的文件管理复制信息,在源端和目的端的文件中保存抽取到的事 务日志,当系统出现软硬件故障时,根据文件中保存的日志执行位置,日志抽取位置等信 息,重新在源数据库的事务日志中进行定位,继续数据复制过程。 然而,上述方法中复制系统使用的文件管理独立于目的数据库的事务管理,无法 保证复制事务的一致性。例如,复制系统目的端首先提交一个事务,然后在自己的文件中登 记此事务的ID和LSN,在文件可靠的刷新到不易失存储介质之前,发生了故障。系统重启后, 因为目的数据库的事务已经提交,该数据库的故障恢复和事务管理机制将保证事务的持久 性,即事务对于数据的影响已经生效,但复制系统的内部文件并未正确登记这一信息,导致 恢复数据复制时,复制系统再次将此事务的日志传到目的数据库执行,同一事务执行多次, 造成了源数据库和目的数据库的事务不一致。 由此可见,传统的复制系统利用自身文件管理复制信息,无法保证源数据库和目 的数据库双方事务执行的一致性,需要专利技术新的异构数据库复制的事务一致性保障方法。
技术实现思路
本专利技术提供了一种异构数据库复制的事务一致性保障方法及系统,其目的在于, 解决现有异构数据库复制系统采用基于事务日志的数据复制时,源数据库和目的数据库双 方事务执行可能存在的不一致性,导致双方数据不一致的技术问题。 为了解决上述问题,本专利技术采用以下技术方案: -种基于提交表的异构数据库复制事务一致性保障方法,包括如下步骤: 目的数据库与源数据库事务同步的操作步骤,具体为:在目的数据库创建提交事 务表,在复制系统目的端的内存中创建未提交事务表;从源数据库中获取事务的操作日志, 复制系统目的端根据所述操作日志在目的数据库中执行相应的数据操作;将事务第一次操 作信息作为一条记录插入未提交事务表,将事务的最后一次提交操作信息作为一条记录插 入提交事务表,同时从未提交事务表中删除已提交事务的记录; 复制系统目的端的定时检查步骤,具体为:在未提交事务表中找到尚未提交的、最 早发生的事务,在提交事务表中删除该事务之前的所有事务记录,同时在提交事务表中插 入一条包含尚未提交的、最早发生的事务信息的检查点记录; 故障恢复步骤,具体为:从提交事务表中的检查点记录获取尚未提交的、最早发生 的事务信息,复制系统源端以该事务作为恢复起点,将事务相关的操作日志发送给目的端; 如果提交事务表中没有该日志对应事务的记录,则复制系统目的端根据收到的操作日志在 目的数据库中执行相应数据操作。 进一步地,所述目的数据库与主数据库事务同步步骤的具体实现过程为: 11)在目的数据库创建提交事务表,在复制系统目的端内存中创建未提交事务表; 12)抽取源数据库中的操作日志,操作日志包含事务ID、事务序列号LSN和内容; 13)若操作日志的事务ID是第一次出现,表明抽取到的是事务的第一条操作日志, 则在未提交事务表中插入一条包含事务第一条操作日志LSN信息的事务记录,执行日志内 容指定的数据操作,返回步骤12);否则,执行步骤14); 14)若抽取到的日志内容表明是提交操作,则执行步骤15);若抽取到的日志内容 表明是提交以外的数据操作,则执行步骤16); 15)在提交事务表插入一条包含事务提交操作日志LSN信息的事务记录,将提交事 务表与事务涉及的所有数据操作一并进行事务提交,从未提交事务表中删除等于提交事务 ID的事务记录; 16)执行相应数据操作,返回步骤12); 进一步地,所述目的数据库的定时检查步骤的具体实现过程为: 21)在未提交事务表中找到序列号LSN最小的记录,对应当前尚未提交的、最早发 生的事务,记该记录的序列号LSN为LSN0; 22)在提交事务表中删除小于等于LSN0的所有记录; 23)在提交事务表中插入一条检查点记录,检查点记录包含有LSN0信息; 进一步地,所述故障恢复步骤的具体实现过程为: 31)复制系统源端向复制系统目的端发送查询检查点的请求; 32)复制系统目的端在目的数据库查询到检查点记录,将其存储的LSN0信息反馈 给复制系统源端; 33)复制系统源端在源数据库的操作日志文件中搜索等于LSN0的事务记录作为恢 复起点,依次将此事务及后续事务相关操作日志发送给复制系统目的端。 34)复制系统目的端在目的数据库根据恢复用的操作日志的事务ID在提交事务表 中搜索,若搜索到等于事务ID的事务记录,则不操作,结束;否则对目的数据库按照恢复用 的操作日志执行相应数据操作。 -种基于提交表的异构数据库复制事务一致性保障系统,包括:源数据库、目的数 据库、复制系统、创建于目的数据库的提交事务表、创建于复制系统目的端内存的未提交事 务表; 复制系统源端将源数据库中事务的操作日志转发给目的端,目的端在目的数据库 中执行相应的数据操作;目的端将收到的事务的第一次操作信息作为一条记录插入未提交 事务表,将事务的最后一次提交操作?目息作为一条记录插入提交事务表,从未提交事务表 中删除已提交事务的记录; 复制系统目的端定时在未提交事务表中找到尚未提交的、最早发生的事务,在提 交事务表中删除该事务之前的所有事务记录,同时在提交事务表中插入一条包含尚未提交 的、最早发生的事务信息的检查点记录; 复制系统目的端从提交事务表中的检查点记录获取尚未提交的、最早发生的事务 信息,复制系统源端以该事务作为恢复起点,将源数据库中此事务及后续事务相关的操作 日志发送给目的端;如果提交事务表中没有该事务的记录,则复制系统目的端根据收到的 操作日志在目的数据库中执行相应数据操作。 本专利技术对比现有技术有以下优越性: 本专利技术利用目的数据库中一张提交事务表保存已提交的事务和尚未提交的最早 的事务,对此表的更新与对应的事务一并提交,充分利用了目的数据库自身的故障恢复功 能,将复制事务自身的操作与事务执行的信息合成为一个事务,一起进行提交。如此,事务 的原子性保证了事务自身的数据操作与事务成功执行的信息存储的一致性,而事务执行的 信息存储是复制系统故障恢复的依据,从而保证了异本文档来自技高网
...

【技术保护点】
一种基于提交表的异构数据库复制事务一致性保障方法,其特征在于,包括如下步骤:目的数据库与源数据库事务同步的操作步骤,具体为:在目的数据库创建提交事务表,在复制系统目的端的内存中创建未提交事务表;从源数据库中获取事务的操作日志,复制系统目的端根据所述操作日志在目的数据库中执行相应的数据操作;将事务第一次操作信息作为一条记录插入未提交事务表,将事务的最后一次提交操作信息作为一条记录插入提交事务表,同时从未提交事务表中删除已提交事务的记录;复制系统目的端的定时检查步骤,具体为:在未提交事务表中找到尚未提交的、最早发生的事务,在提交事务表中删除该事务之前的所有事务记录,同时在提交事务表中插入一条包含尚未提交的、最早发生的事务信息的检查点记录;故障恢复步骤,具体为:从提交事务表中的检查点记录获取尚未提交的、最早发生的事务信息,复制系统源端以该事务作为恢复起点,将事务相关的操作日志发送给目的端;如果提交事务表中没有该日志对应事务的记录,则复制系统目的端根据收到的操作日志在目的数据库中执行相应数据操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:付铨孙峰陈琦周英飚
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1