|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。数据|数据库
异构数据库复制手艺的研讨与完成
1弁言
收集手艺的飞速开展和普遍使用,出格是因特网的提高,年夜小气便了企业的跨地区开展。同时,为了顺应不休增加的贸易合作情况,很多企业经由过程不休重组和分离谋划来进步效力,构成了分离、异构的情况特性。同时这些构造在地区上固然分离,但在办理上绝对会合,常常既要有各部门的部分把持和分离办理,也要有全部构造的全局把持和高条理的协同办理。这类协同办理请求各部门之间的信息既能天真交换和共享,又能一致办理和利用。
以后,散布式数据库手艺已成熟,而且因盘算机本钱的下落和通讯用度的下降而失掉了普遍的使用。但是,散布式数据库体系既要供应部分自治又要完成全局把持,带来了很年夜的应战性。为此,引进数据库复制机制,数据库复制依附于散布式数据库手艺但又能够供应散布式数据库所不具有的功效,出格是因为在存取数据时有可选的数据正本,因而能够改善体系的功能和回护使用的可用性。经由过程利用数据库的复制手艺能够完成会合和自治相分离的把持机制,并可年夜年夜进步全部散布式数据库体系的牢靠性和呼应速率。
现有的异构数据库复制计划上风凸起,好比在运转功能和全体性方面都有着分明的上风,并且产商年夜多供应了一些帮助工具能够帮忙用户更好地完成复制义务等;但同时成绩也存在:数据库产商供应的复制计划依附于产商本人的DBMS中心干系严密的完成手艺,纷歧定合用于别的DBMS,也就是说复制计划不是完整异构的。
为办理完整异构成绩,本文提出一种新的复制手艺:“基于SQL重现法”复制手艺,“基于SQL重现法”复制手艺的中心头脑就是为源数据库中的复制工具(源表或视图)创立变动轨迹表,当源表产生变更时,变动轨迹表中纪录了变动情形,再经由过程过后从变动轨迹表中猎取SQL语句,将源表中的数据复制到方针表中。这类办法能够取得复制工具的净变更,运转和传输效力很高,并且易于办理,填补懂得决复制抵触的不敷。这类办法合适于除同步复制以外的各类复制情势。
本文将从事情道理、计划头脑、实行历程和手艺特性等几个方面先容“基于SQL重现法”复制手艺。
数据库复制就是经由过程将源数据库中指定的数据复制到方针数据库中,以坚持源数据库与方针数据库中指定命据的同步。它应当由哪些部分构成,关于这一点今朝还没有很一致的意见。
本文如许形貌数据库复制的流程:在源数据库取得复制工具的变更情形,然后把它们从源数据库传送到方针数据库,并修正那边的正本。
依据以上形貌本文把全部复制流程分为两个功效绝对自力的处置步骤:变更捕捉(ChangeCapture)与数据分发(DataDistribute),把它们称为构成数据库复制的两个次要环节。
本文前面的内容都将环绕这两个环节举行论述。
2事情道理
(1)变更捕捉
变更捕捉是捕捉源表的变更序列的历程。“基于SQL重现法”数据复制手艺捕捉变更的中心头脑是为多个相干源表(极度的情形多是一张源表或全部数据库的一切表,在这里称为一个“源集”)创立一个变动轨迹表,个中包括产生变动的序列号、变动工夫和复原后的SQL语句等信息,当源表产生变更时,就立即在变动轨迹表中纪录下源表的变更情形,此时变动轨迹表相称于基于日记法中的“日记”,变动工夫相称于基于工夫戳法中的“工夫戳”,可是因为这个历程不是由数据库引擎自己完成的,因此必要依托触发器来完成。也就是说,必要为每一个源表创建触发器,当源表产生修正、拔出和删除操纵时,触发器被启动,经由过程挪用存储历程,将源表产生的操纵复原为SQL语句,向该源表对应的变动轨迹表中拔出变动工夫和复原后的SQL语句,事情道理以下图所示。
“基于SQL重现的数据复制”变更捕捉事情道理
(2)数据分发
数据分发是指将源表的变更信息实行到响应的方针表中的历程。针对“基于SQL重现法”复制手艺捕捉变更的办法,数据分发是指依据变动轨迹表中的序号,按按次从变动轨迹表中猎取对应的SQL语句,然后经由过程实行程序在方针服务器上实行此SQL语句,将源表产生的变更使用于方针表,实行乐成后删除变动轨迹表中对应序号的纪录。数据分发事情道理如所示。
“基于SQL重现的数据复制”数据分发事情道理
其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 |
|