日期:2011-05-02 15:22:00 来源:本站整理
<b>SQL Server数据库技术(107)</b>[MSSQL防范]
本文“<b>SQL Server数据库技术(107)</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
归并复制的概述
????大概读者对下面的实际例子并不陌生,在某一大型企业的分销系统中,贩卖经理或一些贩卖骨干人员常常要外出处理业务,将签订的条约通过手边的笔记本电脑传送到总部贩卖信息数据库.在这一例子中有两个主要的特;征任何贩卖经理和贩卖骨干都可以改正贩卖信息数据库;只有在举行数据传送时才将源数据库与目标数据库相连.在sql server 中,归并复制为这一情形供应了较好的办理筹划.
???? 归并复制作为一种从出版者向订购者分发数据办法答应出版者和订购者对出版数据举行改正,而不管订购者与出版者是彼此衔接或断开,然后当全部(或部份)节点相连时便归并发生在各个节点的改变.在归并复制中,每个节点都独立完成属于自己的任务,不像事件复制和快照复制那样订购者与出版者之间要彼此衔接,完好没必要衔接到别的节点,也没必要利用MS DTC 来实现两阶段提交便可以在多个节点对出版举行改正,只是在某一时刻才将该节点与别的节点相连(此时所指的别的节点并不一定指全部别的节点),然后将所发生的数据改变复制到这些相连节点的数据库中.假如在复制时因更新同一数据而发生冲突,则数据的终究后果并不老是出版者改正后的后果,也不一定包含在某一节点上所做的全部改正.因为各节点都有自主权,都可以对出版物(复制数据)举行改正,这样在按照所设定的冲突办理法则对冲突处理之后,数据库终究的后果常常是包含了多个节点的改正.
????可以看出固然最后全部的数据库都有相同的后果集,但这个后果是在多个节点共同参与下形成的,是多个改正归并到目标数据库的后果.因此归并复制并不保护事件的一致.
????与成立快照复制和事件复制出版物相比,当成立一个归并出版物时,SQL Server 会对数据库以及出版表举行以下处理(见图16-54):
(1) SQL Server 把出版表中的每一行都加上一个标识列,这样在表的多个拷贝间能惟一标识出该行.假如基本表上已存在具有ROWGUIDCOL 属性的标识列,则 SQL Server 将自动把其作为复制表的行标识,假如没有,则或在成立出版物历程中这些表被激活时,或在SQL Server Agent 第一次为该出版物供应服务时, SQL Server 将向表中增添一个具有ROWGUIDCOL 属性的rowguid.
(2) SQL Server 增添一个触发器来跟踪每一行或列数据的改变,并把捕捉到的改变存储到几个系统表中,或在成立出版物历程中复制表被激活时,或在SQL Server Agent 第一次为出版物供应服务时,将成立这些跟踪触发器.
(3) SQL Server 把用户跟踪的系统表增添到数据库,来履行冲突的检测,办理和记录.MSmerger_contents MSmerger_tombstone 系统表用来跟踪对出版物中数据的UPDATE、 DELETE、 INSERTS 操作.
16.5.2 归并复制的履行步骤
归并复制的履行需求快照代理和归并代理.其主要步骤是:
(1) 与快照复制、事件复制中快照代理的作用一样,归并复制的快照代理在开始复制之前也要完成二项任务;成立快照文件(同步调集)将存储在分发者的复制目录下;在出版数据库记录同步功课.归并代理将初始快照文件分发给订购者,从而完成订购初始化(出版数据库与订购数据库同步).
(2) 当在某一节点(订购者)对出版物中表的某一行举行改正时,触发器会触发,并将该行的生成列generation column 设置为零.当归并代理履行时,它把全部生成列为零的合成一组或多组,但凡新的生成列值比本来的大,则用新值替换旧值.
(3) 在举行同步处理时,归并代理把全部生成列值为零的列(被改正的列)复制到全部别的订购者.
(4) 在目标数据库,从节点送来的数据与已存在数据举行归并,归并代理来举行冲突检测,假如未发生冲突则接纳复制数据;假如发生冲突,归并代理按照缺省或所设定的冲突办理法则来办理冲突
以上是“<b>SQL Server数据库技术(107)</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论