当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:22:00  来源:本站整理

SQL Server数据库技术(103)[MSSQL防范]

赞助商链接



  本文“SQL Server数据库技术(103)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
  以上是“SQL Server数据库技术(103)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • Windows 搭配 IIS7 PHP MySQL 环境
  • sqlserver索引的原理及索引成立的注意事项小结
  • SQL Join的一些总结(实例)
  • SQL的Join利用图解教程
  • SQL中JOIN和UNION辨别、用法及示例介绍
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql Out of memory (Needed 16777224 bytes)的错误办理
  • mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • mysql启用skip-name-resolve情势时呈现Warning的处理办法
  • MySQL Order By语法介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • ?对一个地域分离的大型企业组织来说,构建具有典型的分布式计 算特点的大型企业管理信息系统时总要办理一个很棘手的问题;若何 在多个差别数据库服务器之间保证同享数据的完好性、安全性和可用 性.之所以引发这样的问题在于企业组织存在这样的数据处理和要求: 在差别的地址对具有相同构造的本地数据库举行改正;但要保证改正 后的数据库有相同的后果.其实质就是将对本地数据库的改正表目前 别的具有相同构造的远程数据库中.
    ????那么我们若何实现这种数据的一致性呢?答案大概有很多种,但 是包含sql server 在内的大大都数据库产品都采取一种复制技术来解 决这一问题.本章的大旨就是介绍SQL Server 的复制技术.下面让我 们从复制的概述开始.

    ????SQL Server 供应了内置的复制本领,复制组件并非附加产品而是核心引擎的一部 分.在复制这一支持分布式数据处理本领的重要技术帮忙下,我们可以在跨局域网、广域 网或因特网的差别数据库服务器上保护数据的多个拷贝,从而自动地以同步或异步的方法 保证数据多个拷贝之间的数据的一致性.从本质上讲,复制就是从一个源数据库向多处目 标数据库复制数据.

    16.1.1 SQL Server 的复制模子
    SQL Server 利用"出版和订购"这一术语来描写其复制活动.所谓出版就是向别的数 据库服务器(订购者)复制数据.订购就是从别的服务器(出版者)接纳复制数据.固然 出版和订购的对象都是将复制数据,但出版和订购却并非差别角度(出版者和订购)的 同一数据操作(复制数据),而是表现出一定的层次性温次序性(老是先举行出版,然后 再举行订购).SQL Server 的复制组件有出版者、订购者、分发者、出版物与论文、推订 购和拉订购.

    (1) 出版物和论文
    论文(article) 是被复制的数据调集,一篇论文可以是整个表、某些列(垂直划分的 表)或某些行(水平划分的表)乃至是一些存储历程.论文是出版物的基本构成单元. 出版物是论文和调集,它可以包含一个或多个论文.订购者订购的是出版物而不是出版物 中的论文,这样可以使订购更为简单.

    (2) 出版者
    出版者是指出版出版物的服务器.出版者服务器来保护源数据库(包含出版物)以及 有关出版物的信息,使数据可用于复制.除了决意哪些数据将被复制,外出版者要检测哪 些复制数据发生改变,并将这些改变复制到分发者的分发数据库中.

    (3) 分发者
    分发者是指把从出版者传送来的复制数据或事件或存储历程送至呼应的订购者的服务 器,并负责保护分发数据库.

    (4) 订购者
    订购者是指存储复制的数据的拷贝,且接纳并保护已出版的数据的服务器.订购者也 可以对出版数据举行改正,但是固然订购者可以对数据举行改正,但它还是一个订购者. 当然,订购者也可以作为别的订购者的出版者.

    ????出版者、分发者、订购者实际上并不一定指彼此独立的服务器,它只是对SQL Server 在复制历程中所扮演的差别角色的描写.SQL Server 答应一台SQL Server 服务器可以扮 演差别的角色.比方,一台出版者服务器既可出版出版物也可以作为分发者来存储和传送 快照复制和事件复制.当然一台订购者服务器也可以同时作为别的订购者的出版者,只不 过这种情形很少见.在实际利用中我们决意能否让一台服务器扮演一个或多个角色在很大 程度是基于复制系统性能的考虑.比方为了提高分发者从分发数据库向订购者的数据库复 制出版物的效率,降低出版者服务器的负载.我们常不答应某一SQL Server 服务器既扮 表演版者又扮演分发者,而是让别的的服务器专门承当分发者任务从而提高了出版者和 分发者的性能.

    (5) 订购范例
    ????在SQL Server 中有两种订购范例:推订购和拉订购.通过利用推订购或拉订购将出 版数据库发生的改变复制到订购数据库.推订购是指由出版者将全部发生在出版数据库的 改正复制给订购者而没必要订购者发出订购恳求.只要出版数据库发生改正,出版者就会自 动把这种改正表目前订购者那边.在对数据同步性要求对比高的场所(如只要出版物内容 发行改变,订购数据库就要做出呼应改正)最好利用推订购.拉订购是指订购者每过一段 时间就会向出版者要求复制出版数据库发生的改变.在有很多订购者场所最好利用拉订 购.因为拉订购是由订购者而不是出版者启动,所以在由订购者来决意同步出版数据库变 化的场所也最好利用拉订购.

    16.1.2 SQL Server 的复制代理
    (1) 快照代理
    快照代理Snapshot Agent 在分发者上成立并存储快照文件,在分发数据库中记录 出版数据库和订购数据库之间的同步信息.快照代理运行在分发者服务器上并与出版者相 衔接,每一个出版物都有自己的快照代理.

    (2) 日记阅读代理
    日记阅读代理(Log Reader Agent) 将出版者事件日记中标有复制的事件移至分发数 据库.利用事件复制的每一个出版数据库都有自己的日记阅读代理.日记阅读代理运行在 分发者服务器上.

    (3) 分发代理
    分发代理(Distribution Agent) 可以将存储在分发数据库中的事件或快照分发到订购 者服务器.假如事件出版物或快照出版物被设置为只有成立了推订购即当即在出版者和订 购者之间同步,则在分发者上它们各自城市有一个分发代理;不然事件出版物和快照出版 物将同享一个分发代理.归并出版物没有分发代理.

    (4) 归并代理
    归并代理(Merge Agent) 被用来移动、归并在快照代理成立初始快照之后所发生的 递增改正,每一个归并出版物都有自己的归并代理.当利用推订购归并出版物时,归并代 理运行在出版者上;当利用拉订购归并出版物时,归并代理运行在订购者上.快照出版物 和事件出版物没有归并代理.

    (5) 行列阅读代理
    ????在快照复制或事件复制时假如挑选了queued updating 选项或immediate updating with queued updating as a failover 选项,则需求利用行列阅读代理.
    ????行列阅读代理是运行在分发者上的多线程代理,它主要负责从分发者消息行列中读到 消息并将包含在消息中的事件利用到出版者.

    16.1.3 SQL Server 的复制范例
    ????SQL Server 供应了三种复制范例:快照复制(Snapshot Replication)、事件复制 (Transactional Replication)、归并复制(Merge Replication). 可以在实际利用中利用一 种或多种复制范例.每一种复制范例都在差别程度上实现数据的一致性和节点的自主性, 因此对复制范例的挑选主要依靠于利用系统对数据一致性、节点自主性的要求以及现有的 网络资源情形(如网宽和网络传输速度).在辨别介绍事件复制、快照复制和归并复制的 三节中我们将谈论若何挑选符合的复制范例.下面扼要介绍一下这三种复制范例.

    (1) 快照复制
    ????如其名字所言,快照复制意指在某一时刻给出版数据库中的出版数据照相,然后将数 据复制到订购者服务器.快照复制实现较为简单,其所复制的只是某一时刻数据库的瞬时 数据,复制的成功与否并不影响本地数据库(出版数据库或订购数据库)的一致性.在数 据改变较少的利用环境中常利用快照复制,如复制不常常被改正的静态表.

    (2) 事件复制
    ????与快照复制差别事件日记复制的内容不是数据而是多条DELETE UPDATE INSERT 语句或存储历程.在利用事件复制时,改正老是发生在出版者上(设置了当即更新订购者 选项的事件复制可在订购者处改正复制数据),订购者只以读取数据的方法将改正反映到 订购数据库,所以可以避免复制冲突.假如数据更新频率较大且但愿改正尽快复制到订购 者常利用事件复制.

    (3) 归并复制
    ????归并复制答应订购者对出版物举行改正,并将改正归并到目标数据库(可以是出版数 据库也可以是订购数据库).各个节点可独立工作而没必要彼此衔接,可对出版物举行任何 操作而没必要考虑事件的一致性.假如在归并改正时发生冲突,则复制按照一定的法则或自定义的冲突办理战略来对冲突举行解析并承受冲突一方的改正.

    16.1.4 复制数据的一致性
    ????在分布式利用环境中事件处理除了满意事件的ACID 要求外,还必须满意数据的一致 性要求.在复制环境下的复制数据的一致性主要有两种范例:
    事件的一致性(Transactional consistency)
    数据的集合性(Data convergence)

    (1) 事件的一致性(Transactional consistency)
    ????在复制环境下,事件的一致性主如果指全部参与复制的节点在复制完毕后都必须具有 相同的数据后果集,有如发生在全部节点上的全部的事件在每个节点都被一一地履行了一 次在SQL Server 中关于复制数据而言有两种级别事件一致性:当即事件一致性(Immediate transactional consistency)、 潜在事件一致性(Latent transactional consistency)
    当即事件一致性
    ????当即事件一致性保证全部参于复制事件的节点在任一时刻都有完好相同的数据.在 SQL Server 中通过在全部参与事件处理的节点间利用两阶段提交协议,从而可以在分布 式利用环境下实现事件的一致性.全部节点必须同时提交事件或都不提交事件,事件在任 何一节点提交失利城市招致整个事件在全部节点上都要回滚.很明显这种较为"尖刻"的 事件一致性并不合适有大量节点参与的事件处理,因为网络传输并不坚固并且性能也不稳 定.所以在复制时保证事件的当即一致性就是要求出版数据库和订购数据库必须保持数据 的瞬时同步.
    潜在事件一致性
    ????潜在的事件一致性答应数据在出版数据库和订购数据库之间保持异步的一致,即在出 版物发生改变后,经过一定的延时后才将出版物的改变反映到订购者那边.事件在订购者 上提交成功与否并不影响出版者的事件处理.假如出版数据库不再发生新的数据改变,那 么在经过一定的时间隔断后,全部节点都将具有相同的数据后果集.别的,潜在的事件一 致性要求终究的同步数据包含某个站点所做的全部改正,即它要末是节点A 履行完一个 或多个事件后的数据状况,要末是节点B 履行完事件后的数据状况.
    ????当即事件一致性和潜在事件一致性的差别在于:当即事件一致性要求数据当即同步, 而不答应在出版者(源服务器)所发生的数据改变在复制到订购者(目的服务器)之前有 一段等候时间.在SQL Server 中,无论是事件复制,还是快照复制都不要求保证复制立 即事件一致性.事件复制与快照复制相比只是缩短了数据分发出去的等候时间,本质上属 于潜在的事件一致性.

    (2) 数据的集合性(Data convergence)
    在复制环境下,数据的集合性是指全部节点终究具有相同的数据后果.但与事件一致 性差别,这里的数据后果大概并不包含某个节点全部事件都被履行后的后果.
    ????归并复制夸大的就是数据的集合和节点的自主性而不是事件的一致性.在归并复制 中,全部节点普通并不一定要互连,更多地是以离线的方法对数据安闲处理,只是在归并 后才终究保证数据的同步.但有时即便在归并后,某一节点所举行的事件处理后果也并不 全都反映到别的节点,因为在归并时仍大概存在一些节点处于离线工作状况.

    16.1.5 同步情势
    所谓同步就是教唆出版者出版物内的数据和描写文件与订购者的复制保持一致.

    (1) 手工同步
    ????当成立订购时,您可以在订购者手动装入初始快照文件而不是通过网络,这被称为"手 工同步".假如出版物较大,那么从磁带或别的存储介质来装入快照文件举行手工同步将 大大提高效率.比方数据库有几十个GB, 那么将数据库下载到磁带,再重新装入订购者 数据库,这样将比通过传输速度较慢且不非常坚固的网络既快速又简单.利用手工办法进 行同步处理,没必要再运行快照代理举行初始同步,SQL Server 也不会将目标表与出版论 文举行初始化同步,它将假定已经同步了订购者和出版者,并立行将复制文件分发给订购 者.
    ????在举行手工同步时,由用户来负责确保出版论文与目标表的表构造与数据是相同的. 这种办法的长处是复制数据所产生的改变可以当即被分发到订购者,从而避免履行快照代 理来举行初始同步而惹起的系统超载.
    注意:在这里说起的"没必要运行快照代理"是指没必要运行快照代理来举行出版者与订购者之间的快照初始化,但在今后复制历程中快照代理仍要运行.

    (2) 自动同步
    ????自动同步是指订购者与出版者之间的出版表与目标表的初始同步由SQL Server 自动 来完成.在默许情形下,SQL Server 会在筹划时间自动启动同步处理程序,首先由快照 代理在分发者内成立同步调集(*.sch 的描写文件和*.bcp 的数据文件),并在分发者上建 立一个同步功课,分发代理然后将同步调集传送到订购者首先操纵描写文件生成表构造, 然后利用BCP 将数据复制到订购者数据库.

    (3) 无同步
    ????无同步就是不需求订购数据库与出版数据库同步,SQL Server 会假定出版数据库与订 购数据库已经同步,也不会对能否同步举行考证,这些工作要由用户自己来完成.

    16.1.6 复制的拓扑构造
    ????sSQL Server 仅支持星形拓扑构造,在该构造中,复制数据从中央出版者/分发者流向 多个订购者,订购者之间并不举行复制数据的传送.所以假如某一订购者不能正常工作, 并不影响别的订购者从分发者接纳复制数据.

    ????利用星形拓扑构造的最大长处在于其削减了订购历程中数据的等候时间,因为在复制 订购中,复制数据至多经过三步便在全部订购者中实现了同步.所以在数据同步中假如流 动的数据不多则利用星形拓扑构造是快速高效.的别的该构造答应将出版物举行分割从而 削减存储在每一个订购者上的数据量.但是,星形拓扑构造也有自身的缺陷,主要表目前:

    ????数据的同步处理过度依靠于中央分发者/出版者.当订购者改正复制时,数据的 同步要求中央分发者/出版者参与此中,在该同步中利用了二阶段提交协议.当 别的订购者举行订购时,出版者又要参与此中并把复制数据反映到别的订购者. 从而招致中央分发者/出版者仅能支持有限个订购者.此时我们只能通过增添另 外的中央分发者/出版者从而支持更多订购者;
    ????假如中央分发者/出版者失效,则整个复制体系将瘫痪,数据的订购和分发将终止.
    ????在SQL Server 中有以上几种情势的星形构造:
    ????中央出版者(Central Publisher)
    ????带有远程分发者的中央出版者(Central publisher with remote Distributor)
    ????出版订购者 (Publishing Subscriber)
    ????中央订购者 (Central Subscriber)

    (1) 中央出版者(Central Publisher)
    ????中央出版者是最为简单的一种星形的拓扑构造,在这种配置下,一台服务器既扮表演 版者角色又扮演分发者角色,同时答应一个或多个独立的服务器扮演订购者角色.该配置 合适于从数据中央(如公司总部)向数据利用者(如分公司)复制数据,并且这些数据不 答应被数据利用者改正(如公司财政报表等).该构造如图所示16-1 所示.
    SQL Server数据库技术(103)
    (2)) 带有远程分发者的中央出版者(Central publisher with remote Distributor)
    ????由于在中央出版者配置下,全部的复制代理、出版和订购活动以及信息的存储和保护 等很多工作都由一台服务器来完成,因此,假如复制的事件或数据较大或有太多的订购者, 会对复制的效率产生极大的负面影响,网络资源的有限性使这一问题更为突出.基于此,我们常将分发者与出版者别脱离,辨别让独立的服务器来扮演分发者和出版者的角色,从 而使出版者服务器从分发任务中约束出来.应当夸大的是分发者与出版者之间必须有可 靠、高速的通信衔接.该构造如图16-2 所示.
    SQL Server数据库技术(103)
    (3) 出版订购者(Publishing Subscriber)
    ????在该配置下,有两个出版者原始出版者:和出版订购者出版订购者.是原始出版者的 订购者,同时也扮表演版者角色向别的订购者出版数据.二者具有相同的出版数据.当出 版者与订购者之间的网络传输速度较慢或通信费用较高经常利用该配置筹划.出版订购者 起到中转作用,它首先从原始出版者订购数据,然后将数据再出版给它的订购者.原始订 购者与出版订购者都可以是出版者与分发者的双重角色.该构造如图16-3 所示.
    SQL Server数据库技术(103)
    ????在跨洲或跨国的情形下的复制处理中常利用出版订购者筹划.别的的应满意的需求是 出版订购者与订购者之间要比原始出版者与订购者之间有着更短的网络距离、更坚固的传 输性能.可以答应原始出版者与出版订购者之间有较慢的传输速度,但必须有坚固的传输 性能.

    (4) 中央订购者(Central Subscriber)
    ????中央订购者是指有很多出版者向一个订购者复制出版事件和数据.目标表被水平分 割每个分割块都含有一个标识本地数据的主键值.每个出版者只出版此中的一个分割块. 关于那些具有上滚数据业务的利用环境来说,该配置筹划很有代价.如在一个大型分销系 统中,对贩卖表举行水平分割.每一具贩卖分部都是出版者,将只属于它自己的贩卖数据 出版到贩卖总部.该构造如图16-4 所示.
    SQL Server数据库技术(103)

    ?
    本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .