資源描述:
《ms sql入門基礎(chǔ)-復(fù)制的概述和術(shù)語--》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、MSSQL入門基礎(chǔ):復(fù)制的概述和術(shù)語>> 對一個地域分散的大型企業(yè)組織來說,構(gòu)建具有典型的分布式計(jì)算特征的大型企業(yè)管理信息系統(tǒng)時總要解決一個很棘手的問題;如何在多個不同數(shù)據(jù)庫服務(wù)器之間保證共享數(shù)據(jù)的完整性、安全性和可用性。之所以引發(fā)這樣的問題在于企業(yè)組織存在這樣的數(shù)據(jù)處理和要求:在不同的地點(diǎn)對具有相同結(jié)構(gòu)的本地數(shù)據(jù)庫進(jìn)行修改;但要保證修改后的數(shù)據(jù)庫有相同的結(jié)果。其實(shí)質(zhì)就是將對本地數(shù)據(jù)庫的修改體現(xiàn)在其它具有相同結(jié)構(gòu)的遠(yuǎn)程數(shù)據(jù)庫中?! ∧敲次覀?nèi)绾螌?shí)現(xiàn)這種數(shù)據(jù)的一致性呢?答案可能有很多種,但是包括SQLServer在內(nèi)的大多數(shù)數(shù)據(jù)庫產(chǎn)品都采用一種復(fù)制技術(shù)來解決這一問題。本章的
2、主旨就是介紹SQLServer的復(fù)制技術(shù)。下面讓我們從復(fù)制的概述開始?! QLServer提供了內(nèi)置的復(fù)制能力,復(fù)制組件并不是附加產(chǎn)品而是核心引擎的一部分。在復(fù)制這一支持分布式數(shù)據(jù)處理能力的重要技術(shù)幫助下,我們可以在跨局域網(wǎng)、廣域網(wǎng)或因特網(wǎng)的不同數(shù)據(jù)庫服務(wù)器上維護(hù)數(shù)據(jù)的多個拷貝,從而自動地以同步或異步的方式保證數(shù)據(jù)多個拷貝之間的數(shù)據(jù)的一致性。從本質(zhì)上講,復(fù)制就是從一個源數(shù)據(jù)庫向多處目標(biāo)數(shù)據(jù)庫復(fù)制數(shù)據(jù)?! ?6.1.1SQLServer的復(fù)制模型 SQLServer使用出版和訂購這一術(shù)語來描述其復(fù)制活動。所謂出版就是向其它數(shù)據(jù)庫服務(wù)器(訂購者)復(fù)制數(shù)據(jù)。訂購就是從另外服務(wù)
3、器(出版者)接收復(fù)制數(shù)據(jù)。雖然出版和訂購的對象都是將復(fù)制數(shù)據(jù),但出版和訂購卻并不是不同角度(出版者和訂購)的同一數(shù)據(jù)操作(復(fù)制數(shù)據(jù)),而是體現(xiàn)出一定的層次性和順序性(總是先進(jìn)行出版,然后再進(jìn)行訂購)。SQLServer的復(fù)制組件有出版者、訂購者、分發(fā)者、出版物與論文、推訂購和拉訂購?! 。?)出版物和論文 論文(article)是被復(fù)制的數(shù)據(jù)集合,一篇論文可以是整個表、某些列(垂直劃分的表)或某些行(水平劃分的表)甚至是一些存儲過程。論文是出版物的基本組成單元。出版物是論文和集合,它可以包括一個或多個論文。訂購者訂購的是出版物而不是出版物中的論文,這樣可使訂購更為簡單?!?/p>
4、?。?)出版者 出版者是指出版出版物的服務(wù)器。出版者服務(wù)器來維護(hù)源數(shù)據(jù)庫(包含出版物)以及有關(guān)出版物的信息,使數(shù)據(jù)可用于復(fù)制。除了決定哪些數(shù)據(jù)將被復(fù)制,外出版者要檢測哪些復(fù)制數(shù)據(jù)發(fā)生變化,并將這些變化復(fù)制到分發(fā)者的分發(fā)數(shù)據(jù)庫中?! 。?)分發(fā)者 分發(fā)者是指把從出版者傳遞來的復(fù)制數(shù)據(jù)或事務(wù)或存儲過程送至相應(yīng)的訂購者的服務(wù)器,并負(fù)責(zé)維護(hù)分發(fā)數(shù)據(jù)庫?! 。?)訂購者 訂購者是指存儲復(fù)制的數(shù)據(jù)的拷貝,且接收并維護(hù)已出版的數(shù)據(jù)的服務(wù)器。訂購者也可以對出版數(shù)據(jù)進(jìn)行修改,但是盡管訂購者可以對數(shù)據(jù)進(jìn)行修改,但它仍是一個訂購者。當(dāng)然,訂購者也可以作為其它訂購者的出版者?! 〕霭嬲?、分發(fā)
5、者、訂購者實(shí)際上并不一定指相互獨(dú)立的服務(wù)器,它只是對SQLServer在復(fù)制過程中所扮演的不同角色的描述。SQLServer允許一臺SQLServer服務(wù)器可以扮演不同的角色。比如,一臺出版者服務(wù)器既可出版出版物也可以作為分發(fā)者來存儲和傳送快照復(fù)制和事務(wù)復(fù)制。當(dāng)然一臺訂購者服務(wù)器也可以同時作為其它訂購者的出版者,只不過這種情況很少見。在實(shí)際應(yīng)用中我們決定是否讓一臺服務(wù)器扮演一個或多個角色在很大程度是基于復(fù)制系統(tǒng)性能的考慮。例如為了提高分發(fā)者從分發(fā)數(shù)據(jù)庫向訂購者的數(shù)據(jù)庫復(fù)制出版物的效率,降低出版者服務(wù)器的負(fù)載。我們常不允許某一SQLServer服務(wù)器既扮演出版者又扮演分發(fā)者,
6、而是讓另外的服務(wù)器專門承擔(dān)分發(fā)者任務(wù)從而提高了出版者和分發(fā)者的性能?! 。?)訂購類型 在SQLServer中有兩種訂購類型:推訂購和拉訂購。通過使用推訂購或拉訂購將出版數(shù)據(jù)庫發(fā)生的變化復(fù)制到訂購數(shù)據(jù)庫。推訂購是指由出版者將所有發(fā)生在出版數(shù)據(jù)庫的修改復(fù)制給訂購者而不必訂購者發(fā)出訂購請求。只要出版數(shù)據(jù)庫發(fā)生修改,出版者就會自動把這種修改體現(xiàn)在訂購者那里。在對數(shù)據(jù)同步性要求比較高的場合(如只要出版物內(nèi)容發(fā)行變化,訂購數(shù)據(jù)庫就要做出相應(yīng)修改)最好使用推訂購。拉訂購是指訂購者每過一段時間就會向出版者要求復(fù)制出版數(shù)據(jù)庫發(fā)生的變化。在有很多訂購者場合最好使用拉訂購。因?yàn)槔嗁徥怯捎嗁?/p>
7、者而不是出版者啟動,所以在由訂購者來決定同步出版數(shù)據(jù)庫變化的場合也最好使用拉訂購。 16.1.2SQLServer的復(fù)制代理 ?。?)快照代理 快照代理SnapshotAgent在分發(fā)者上創(chuàng)建并存儲快照文件,在分發(fā)數(shù)據(jù)庫中記錄出版數(shù)據(jù)庫和訂購數(shù)據(jù)庫之間的同步信息??煺沾磉\(yùn)行在分發(fā)者服務(wù)器上并與出版者相連接,每一個出版物都有自己的快照代理?! 。?)日志閱讀代理 日志閱讀代理(LogReaderAgent)將出版者事務(wù)日志中標(biāo)有復(fù)制的事務(wù)移至分發(fā)數(shù)據(jù)庫。使用事務(wù)復(fù)制的每一個出版數(shù)據(jù)庫都有自己的日志閱讀代理。日