国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

復制的概述和術語

2024-07-21 02:12:52
字體:
來源:轉載
供稿:網友
   對一個地域分散的大型企業組織來說,構建具有典型的分布式計 算特征的大型企業管理信息系統時總要解決一個很棘手的問題;如何 在多個不同數據庫服務器之間保證共享數據的完整性、安全性和可用 性。之所以引發這樣的問題在于企業組織存在這樣的數據處理和要求: 在不同的地點對具有相同結構的本地數據庫進行修改;但要保證修改 后的數據庫有相同的結果。其實質就是將對本地數據庫的修改體現在 其它具有相同結構的遠程數據庫中。
    那么我們如何實現這種數據的恢灤閱兀看鳶縛贍苡瀉芏嘀鄭? 是包括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 所示。

(2)) 帶有遠程分發者的中心出版者(central publisher with remote distributor)
    由于在中心出版者配置下,所有的復制代理、出版和訂購活動以及信息的存儲和維護 等許多工作都由一臺服務器來完成,因此,如果復制的事務或數據較大或有太多的訂購者, 會對復制的效率產生極大的負面影響,網絡資源的有限性使這一問題更為突出。基于此,我們常將分發者與出版者分離開,分別讓獨立的服務器來扮演分發者和出版者的角色,從 而使出版者服務器從分發任務中解放出來。應該強調的是分發者與出版者之間必須有可 靠、高速的通信連接。該結構如圖16-2 所示。

(3) 出版訂購者(publishing subscriber)
    在該配置下,有兩個出版者原始出版者:和出版訂購者出版訂購者。是原始出版者的 訂購者,同時也扮演出版者角色向其它訂購者出版數據。二者具有相同的出版數據。當出 版者與訂購者之間的網絡傳輸速度較慢或通信費用較高時常使用該配置方案。出版訂購者 起到中轉作用,它首先從原始出版者訂購數據,然后將數據再出版給它的訂購者。原始訂 購者與出版訂購者都可以是出版者與分發者的雙重角色。該結構如圖16-3 所示。

    在跨洲或跨國的情況下的復制處理中常使用出版訂購者方案。另外的應滿足的需求是 出版訂購者與訂購者之間要比原始出版者與訂購者之間有著更短的網絡距離、更可靠的傳 輸性能。可以允許原始出版者與出版訂購者之間有較慢的傳輸速度,但必須有可靠的傳輸 性能。

(4) 中心訂購者(central subscriber)
    中心訂購者是指有許多出版者向一個訂購者復制出版事務和數據。目標表被水平分 割每個分割塊都含有一個標識本地數據的主鍵值。每個出版者只出版其中的一個分割塊。 對于那些具有上滾數據業務的應用環境來說,該配置方案很有價值。如在一個大型分銷系 統中,對銷售表進行水平分割。每一具銷售分部都是出版者,將只屬于它自己的銷售數據 出版到銷售總部。該結構如圖16-4 所示。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁都县| 会同县| 五常市| 泰安市| 若羌县| 连平县| 铅山县| 法库县| 胶州市| 从江县| 安康市| 洛浦县| 同心县| 郧西县| 普陀区| 彭泽县| 通榆县| 文水县| 敦煌市| 武鸣县| 乌恰县| 如皋市| 富宁县| 巨鹿县| 九龙坡区| 南安市| 邵阳县| 乐山市| 略阳县| 新密市| 潜江市| 滨州市| 新干县| 黄大仙区| 治县。| 威远县| 年辖:市辖区| 项城市| 繁峙县| 仲巴县| 五家渠市|