程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server數據庫技術(106)

SQL Server數據庫技術(106)

編輯:關於SqlServer

對一個地域分散的大型企業組織來說,構建具有典型的分布式計 算特征的大型企業管理信息系統時總要解決一個很棘手的問題;如何 在多個不同數據庫服務器之間保證共享數據的完整性、安全性和可用 性。之所以引發這樣的問題在於企業組織存在這樣的數據處理和要求: 在不同的地點對具有相同結構的本地數據庫進行修改;但要保證修改 後的數據庫有相同的結果。其實質就是將對本地數據庫的修改體現在 其它具有相同結構的遠程數據庫中。
那麼我們如何實現這種數據的一致性呢?答案可能有很多種,但 是包括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) 將出版者事務日志中標有復制的事務移至分發數 據庫。使用事務復制的每一個出版數據庫都有自己的日志閱讀代理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved