- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于事务日志数据同步模型研究
基于事务日志数据同步模型研究
摘 要:在传统数据库同步技术基础上,针对数据集成系统的异构性,研究了一种新的基于事务日志的数据同步模型。通过对异构DBMS的事务日志进行分析,提出一种通用的事务日志的变化捕获方法,结合数据库的事务工作过程,在窗口机制的约束下将提取的增量数据按照统一的规范集成到共享数据库形成全局模式,再将增量数据加载到共享端实现数据过滤和映射。实验结果表明,在正确设置具体应用环境下的时间窗口时,该模型可有效降低数据同步的时间开销,保证了数据一致性。
关键词:异构性;事务日志;数据变化捕获;数据同步
引言
为了屏蔽异构的应用系统在集成共享数据库时造成的“信息孤岛”局面,需要将异构的数据副本(replica)集成到统一数据平台,按照预处理规则完成数据变化捕获、数据分发、数据转储与加载,以及冲突数据的检测和解决,以向用户提供统一的数据全局模式[1-2],实现数据的同步更新。
数据的同步更新方法中:文件传输方法[3]的缺点是效率和可靠性较差。数据复制方法[4]将主节点的数据更新副本拷贝到从节点并修改从节点上的副本,主要应用在具有高自治性的分布式数据库系统中。数据变化捕获[5](Change Data Capture,CDC)方法利用触发器、时间戳机制,将数据更新记录到CDC初始化时创建的表或者队列进行发布。CDC方法在近几年的数据同步领域获得了关注,通过它不仅能获得待同步副本对象的变化序列或当前映像,还能提供详细的控制信息[6]。而CDC方式主要有下面几种,其主要性能参数如表1所示[7-8]。
然而,上述所有CDC方法都不能完全实现实时、双向和增量同步,文献[9]基于数据库日志的CDC方法可以实现对不同的日志类型进行分析,并利用应用程序接口读取日志文件,分析了针对不同类型日志文件的可靠性读取规则和方法,但是对数据变化捕获算法缺乏深入的研究,而且缺少统一描述。文献[10]的RTDWH是数据仓库中的CDC方法,虽然可以保证数据更新的成功率,但是对事务处理性能耗损较大。
因此,文章提出一种异构环境下的基于事务日志的数据同步模型(Transaction Log-based Data Synchronous Model,TLDS),从事务角度阐述了主要模块的工作流程和原理。此外通过对事务日志的结构进行深入分析,设计了基于事务日志的变化捕获算法。最后进行了实验并对结果进行分析,保证了数据更新效果的同时对系统的性能影响也有所降低。
1 TLDS模型
TLDS模型要达到如下功能:各业务子系统维护的共享数据能实时同步到共享数据库中;对于已经进入统一数据共享与交换平台的数据,可以提供自动实时同步或者按需手动同步。按照该功能需求,结合数据交互工具OGG的工作原理,设计如图1的TLDS模型。
1.1 事务日志
事务日志记录一系列事务对数据库更新的日志序列,是维护数据完整性和一致性的重要依据,包括所有数据操作语言(DML)和数据定义语言(DDL)的记录。它以事务为单位持续写入,记录了在每个事务期间,对数据的更改及撤消更改所需的控制信息,包括事务开始(表示为)、事务提交(表示为)、异常终止(表示为)、检查点记录(Checkpoint Record)。
1.2 数据变化捕获、传输、转换与加载
(1)数据变化引起新事务产生,该新事务由LGWR写入日志后,标识该日志记录的LSN和该事务的TID会相继自增。日志的提取操作从初始时刻的head file开始,如果用户对数据库进行如下的事务操作:
TX={,,,……,};
直至polltime1设置的时间段结束,停止事务日志对数据的继续读取,记录这个事务日志的LSN号作为捕获检查点(capture checkpoint)。由于事务TX1和TX4最终只有和指令,因而不对其进一步处理,而只有TX2和TX3写入trail捕获队列的事务操作,将获得的更新数据组成trail队列进行传输。
(2)数据序列在等到trail传送队列的缓存被写满或者到达指定的时间,即达到2.3节设置的窗口边界值的条件之后,停止数据传送,并记录还未写入trail传送队列的事务日志的LSN号作为传输检查点(pump checkpoint)。已提交的TX事务操作段内已经提交的事务序列有TX2和TX3,如图2所示,pump checkpoint写在之后,因此最终写入trail传送队列的事务操作只有TX2,TX3需要等待下一轮的trail传送队列。
(3)对已传送的事务进行数据转换与加载,trail传送队列以元
组的形式记录数据更新信息,将他们被发送到目的端后,对更新信息的主键值以及更新的前、后像值经过本地解析还原并创建出对应的SQL更新语句。利用
原创力文档


文档评论(0)