SQLServer技术(106)

来源:互联网 发布:php和mysqlweb开发pdf 编辑:程序博客网 时间:2024/04/30 08:18
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
 对一个地域分散的大型企业组织来说,构建具有典型的分布式计算特征的大型企业管理信息系统时总要解决一个很棘手的问题;如何在多个不同数据库服务器之间保证共享数据的完整性、性和可用性。之所以引发这样的问题在于企业组织存在这样的数据处理和要求:在不同的地点对具有相同结构的本地数据库进行修改;但要保证修改后的数据库有相同的结果。其实质就是将对本地数据库的修改体现在其它具有相同结构的远程数据库中。
    那么我们如何实现这种数据的一致性呢?答案可能有很多种,但是包括在内的大多数数据库产品都采用一种复制技术来解决这一问题。本章的主旨就是介绍SQLServer的复制技术。下面让我们从复制的概述开始。

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

16.1.1SQLServer的复制模型
SQLServer使用“出版和订购”这一术语来描述其复制活动。所谓出版就是向其它数据库服务器(订购者)复制数据。订购就是从另外服务器(出版者)接收复制数据。虽然出版和订购的对象都是将复制数据,但出版和订购却并不是不同角度(出版者和订购)的同一数据操作(复制数据),而是体现出一定的层次性和顺序性(总是先进行出版,然后再进行订购)。SQLServer的复制组件有出版者、订购者、分发者、出版物与论文、推订购和拉订购。

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

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

(3)分发者
分发者是指把从出版者传递来的复制数据或事务或存储过程送至相应的订购者的服务器,并负责维护分发数据库。

(4)订购者
订购者是指存储复制的数据的拷贝,且接收并维护已出版的数据的服务器。订购者也可以对出版数据进行修改,但是尽管订购者可以对数据进行修改,但它仍是一个订购者。当然,订购者也可以作为其它订购者的出版者。

    出版者、分发者、订购者实际上并不一定指相互独立的服务器,它只是对SQLServer在复制过程中所扮演的不同角色的描述。SQLServer允许一台SQLServer服务器可以扮演不同的角色。比如,一台出版者服务器既可出版出版物也可以作为分发者来存储和传送快照复制和事务复制。当然一台订购者服务器也可以同时作为其它订购者的出版者,只不过这种情况很少见。在实际应用中我们决定是否让一台服务器扮演一个或多个角色在很大程度是基于复制系统性能的考虑。例如为了提高分发者从分发数据库向订购者的数据库复制出版物的效率,降低出版者服务器的负载。我们常不允许某一SQLServer服务器既扮演出版者又扮演分发者,而是让另外的服务器专门承担分发者任务从而提高了出版者和分发者的性能。

(5)订购类型
    在SQLServer中有两种订购类型:推订购和拉订购。通过1
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击