Presentation is loading. Please wait.

Presentation is loading. Please wait.

Replication (複寫).

Similar presentations


Presentation on theme: "Replication (複寫)."— Presentation transcript:

1 Replication (複寫)

2 Outline Replication簡介 publisher-subscriber的複寫架構 訂閱方式 複寫類型 可更新的訂閱
Push Subscription(發送訂閱) Pull Subscription (提取訂閱) 複寫類型 快照式(snapshot)複寫 交易式複寫 合併式(merge)複寫 可更新的訂閱 Replication相關之代理程式 用Enterprise Manager設定publisher與distributor 設定publisher與distributor 建立及設定publication 用Enterprise Manager修改publication設定 刪除publication 將建立或刪除publication動作存成SQL Script 用Enterprise Manager設定Push Subscription 用Enterprise Manager設定Pull Subscription 複寫的管理與維護 複寫相關的系統預存程序

3 Replication簡介 將資料複寫到其他SQL Server上,以增進資料庫分散式運用的需求。
提供機制以保持各副本內容的同步(可能不是real time) 。 SQL Server也支援異值性(heterogeneous)資料庫之間的replication。 SQL Server採publisher-subscriber的複寫架構

4 Microsoft® SQL Server™ 2000 複寫 (Replication) 是指從某個資料庫複製與散發資料和資料庫物件到另一個資料庫,然後在資料庫之間進行同步以便達到一致性的一套技術。
使用複寫的時候,您可以透過區域網路、使用撥號連線以及透過 Internet,將資料散發到不同的位置,散發到遠端或行動使用者。 複寫也可以允許您增強應用程式效能、依照資料的使用方式為基礎進行實體分隔 (例如,要分隔線上交易處理 (OLTP) 以及決策支援系統),或者將資料庫處理散發到多個伺服器。

5 Replication的優點 允許多個伺服器保存相同資料的副本,當多個伺服器需要讀取同一資料,或需要為報告應用程式分隔伺服器時,這就很有用。
將 OLTP 應用程式與諸如線上分析處理 (OLAP) 資料庫、資料超市或資料倉儲之需要讀取大量資料的應用程式分隔。 允許較大的自主性。使用者可以在離線時處理資料副本,然後在連線時將他們對其他資料庫所作的變更傳播出去。 增加彙總讀取效能。 使資料更貼近個人或群組。 這有助於減少多重使用者資料更新和查詢的衝突,因為資料可以透過網路來散發,而且可以根據不同業務單位或使用者的需求來分割資料。 使用複寫作為自訂定型待命伺服器(standby server)策略的一部份,複寫是待命伺服器策略的的一項選擇。 SQL Server 2000 中的其他選擇包括記錄檔轉送 (Log Shipping) 及客錯移轉叢集 (Failover Clustering),用以在伺服器故障時提供資料副複本。

6 何時使用複寫 複製和散發資料給一個或多個站台。 定期散發資料副本。 散發資料變更給其他伺服器。
允許多名使用者及站台進行變更,然後將資料修改合併在一起,識別並解決可能的衝突。 建立線上和離線環境需要使用的資料應用程式。 建立使用者可瀏覽大量資料的 Web 應用程式。 在發行者的交易控制之下,可完全掌握在訂閱站台上進行的隨意變更。

7 publisher-subscriber的複寫架構
負責發行資料庫內容給其他伺服器的SQL Server。 Subscriber(訂閱者) 接受publisher所發行資料的SQL Server。 Publisher與Subscriber是一對多的關係。 Distributor(散發者) 負責將publisher所發行的資料散發到各subscriber的SQL Server。 遠端「distributor」是不同於「publisher」的伺服器,可設定為複寫的「distributor」。 本機「distributor」是同時設定為「publisher」和複寫「distributor」的伺服器。 在簡單的架構中,publisher與distributor通常是用同一個SQL Server。 設定為distributor的SQL Server會有一個distribution的系統資料庫。

8 Article(發行項) Publication(發行集) Publisher所發行的資料稱為article。
是進行replication時的複寫單位。 內容可以是發行項是資料表、資料分割 (Partition)或指定要複寫的資料庫物件。 發行項可能是整個資料表、特定資料行 (使用垂直篩選)、特定資料列 (使用水平篩選)、預存程序或檢視表定義、預存程序的執行、檢視表、索引檢視表或使用者自訂功能。 Publication(發行集) SQL Server進行replication時,所複寫的articles的集合。 Subscriber向Publisher訂閱資料時是以publication為單位。 每個publication的資料只能來自單一個資料庫的內容。 每一個publisher上,可以發行多個不同的publication。

9 訂閱方式 訂閱(subscription)是對複製資料或複寫資料庫物件的一項請求。 Push Subscription(發送訂閱)
訂閱會定義要接收那些publication,以及在何處與何時收這些publication。 可藉由「publisher」(發送訂閱) 或「subscriber」(提取訂閱) 請求訂閱同步或資料散發。 publication可以支援混合發送和提取的訂閱。 Push Subscription(發送訂閱) 由publisher主動傳送publication給subscriber Pull Subscription (提取訂閱) 由subscriber自行根據自已排定的時程,向publisher要求提取publication 使用時機 Subscriber數量較多時 不需要即時取得最新的內容時

10 複寫類型 快照式(snapshot)複寫 取得publication的snapshot後傳送給subscriber
不需要不斷地監視publisher對publication所做的變更 當snapshot很大,網路傳輸效能會受影響。 可能需要花較長的時間將資料更新傳送給訂閱者。 使用其他的複寫類型之前,需要先進行過一次快照式複寫 觀念與在做交易記錄備份或差異式備份之前,需先做過一次完整資料庫備份相同 使用時機 publication資料大多屬於靜態資料且不常變更, 或 Subscriber對publication資料的即時性要求不高, 或 Publication的snapshot不大, 或 可接受站台經常斷線及長延遲時間 latency(延遲):伺服器上資料變更完成而且出現在其他伺服器上消耗的時間數量(例如,於publisher進行變更,然後變更出現在subscriber之間的時間) 使用限制 Subscriber對publication內容只能做唯讀處理時,或 Subscriber對publication內容所做的修改不重要不需反應到publisher中 設定可更新訂閱選項便可讓subscriber修改publication(參後面的可更新的訂閱 )

11 交易式(Transactional)複寫
系統會監視publisher對publication中的資料所做的各筆交易(包括INSERT、UPDATE 及 DELETE ,預存程序執行所造成的變更及索引檢視表 ),然後以交易記錄的形式,連續或定期傳送給subscriber。 會保留交易的不可部分完成的特性(Atomicity) 例如,如果在一筆交易中有 100 個資料列更新,則包含所有 100 個資料列資料修改的整筆交易都會被接受,並傳播到subscriber端,或者全部皆不接受。在傳送所有變更之後,所有訂閱者都擁有與發行者相同的值。 Subscriber在接收到publication後,會將所收到的交易記錄加以執行。 使用時機 Publication的snapshot太大,或 Publication內容變動較頻繁,且Subscriber需要較即時的資料,或 Subscribe需要交易完整  (在訂閱者端全部套用或全部都不套用) ,或 訂閱者經常保持與發行者連線,或 您的應用程式不容許subscriber接受變更時的延遲時間過長。 使用限制 Subscriber對publication內容只能做唯讀處理時,或 Subscriber對publication內容所做的修改不重要不需反應到publisher中 設定可更新訂閱選項便可讓subscriber修改publication(參後面的可更新的訂閱 )

12 合併式(merge)複寫 合併式複寫允許各網站獨立運作 (線上或離線) ,並於稍後將多個網站中的資料更新合併為單一、同一個結果。
同時允許publisher與subscriber對publication內容做修改,且subscriber上所做的修改也會反應到publisher中。步驟如下 初始快照集會傳送到各subscriber 然後 SQL Server 便會追蹤publisher與subscriber上已發行資料的變更。 伺服器之間的資料會定期或視需要而同步。 由於更新是在一台以上的伺服器中獨立進行 (無認可協定),所以相同的資料可以被publisher或超過一個以上的subscriber更新。因此在合併更新時可能會有衝突發生。可在設定合併式複寫時,定義衝突解決方式。 使用時機 多個subscriber需要經常更新資料,並將其變更傳送給publisher和其他subscriber。 subscriber需要接收資料、離線變更資料,稍後同步變更publisher和其他subscriber時。 應用程式的延遲時間需求或高或低時。 站台自主性具有關鍵性時。

13 可更新的訂閱 當使用合併式複寫,或者,使用具有可更新訂閱選項的快照式複寫或具有可更新訂閱選項的交易式複寫,則可修改subscriber端的資料。 用於快照式複寫和交易式複寫的可更新訂閱選項,可讓您變更subscriber端上已複寫的資料,然後將變更傳播給publisher和其他subscriber 。 可更新的訂閱選項包括立即更新、佇列更新、以及使用佇列更新作為容錯移轉為佇列更新的立即更新。 立即更新允許subscriber只有在publisher立即接收更新資料時才可更新資料。 若publisher端接受變更,就會將變更傳送給其他subscriber 。 subscriber必須持續且確實連線到publisher ,才能在subscriber端進行變更。 佇列更新可讓subscriber更新資料,並在與publisher斷線的時間內,將那些更新儲存在佇列中。當subscriber重新連線到publisher時,就會將變更傳播到publisher 。 若publisher端接受變更,就會出現正規複寫處理並將變更從publisher傳播給其他subscriber 。 可將資料更新儲存到 SQL Server 2000 佇列中,或使用 Microsoft Message Queuing。 具有佇列更新的立即更新可讓您使用立即更新,並在subscriber與publisher之間無法維持連線時切換到佇列更新。切換到佇列更新,在重新連線到publisher ,並清空佇列後,您可以切換回到立即更新模式。 使用合併式複寫時,會自動更新subscriber端的資料,即自動設為可更新的訂閱 。

14 Replication相關之代理程式 快照集代理程式(snapshot agent) 記錄讀取代理程式(log reader agent)
可搭配各種複寫類型使用 負責準備與儲存publication的架構與初始資料 在distributor上執行 自publisher取得的snapshot,存於distributor上的distribution資料庫。 記錄讀取代理程式(log reader agent) 可搭配各種交易式複寫使用 交易式複寫一開始是用distribution agent取得初始的publication內容。後續在publisher上發生的交易記錄,則是由在distributor上的log reader agent負責將之存到distribution資料庫。 每個有publication的資料庫都有專屬的log reader agent負責讀取其交易記錄。

15 散發代理程式(distribution agent)
可搭配快照式複寫或交易式複寫使用 負責將快照式或交易式複寫的內容傳送給subscriber。 對push subscription,distribution agent是在distributor或subscriber上執行。 若採非即時同步的publication,所有的subscriber都共用在distributor上的同一個distribution agent。 若採即時同步的publication,每一個subscriber都各有一個distribution agent。 對pull subscription,distribution agent是在subscriber上執行。 快照式複寫或交易式複寫都是由snapshot agent負責取得初始的publication內容,再由distribution agent負責傳送給subscriber。 合併式複寫不會用到distribution agent,而是用merge agent 。 合併代理程式(merge agent) 可搭配合併式複寫使用 在合併式複寫中負責同步更新各伺服器的資料內容。在衝突發生時,依預定的規則來解決。 每個合併subscription都有自己的merge agent 在push subscription,merge agent是在distributor上執行。 在pull subscription,merge agent是在subscription上執行。

16 佇列讀取器代理程式(queue reader agent)
可搭配快照式複寫或交易式複寫使用 在快照式複寫或交易式複寫中可採立即更新、佇列更新,以便subscriber對publication進行修改。 若採佇列更新, queue reader agent負責將佇列中的資料套用到publication上。 queue reader agent只會在distributor上執行 同一queue reader agent負責所有publication的更新動作。

17 用Enterprise Manager設定publisher與distributor
步驟簡述 初始設定 選定做為distributor的SQL Server 選定做為publisher的SQL Server,以及所要publish的資料庫 開啟Enterprise Manager的複寫監視器功能 建立及設定publication Subscription設定 後續的監視與調整工作

18 先選定SQL Server

19 機器名稱 SQL Server instance名稱

20 選取用哪一個SQL Server instance做為distributor

21 假設您現在是用本機(Window)帳號登入的,會出現下列訊息
機器名稱 SQL Server instance名稱

22 網域\網域之帳號

23 若目前登入所用之帳號無足夠權限去驗證所提供的網域帳號,又會出現下列訊息

24

25

26 預設是隱藏的共用資料夾

27 若預設值適用,可直接選用。

28 設定distribution資料庫

29 選取哪些SQL Server instance要做為publisher,並由先前所選的
SQL Server instance做為distributor

30 從publisher內的使用者資料庫選取要做replication的資料庫,
交易式或快照式 合併式

31 選擇subscriber

32

33

34

35

36

37

38

39 建立及設定publication 在設定完publisher與distributor後,下一步驟為在publisher上建立publication。相關設定有: 要出版哪個資料庫 要出版哪些資料表 要使用何種複寫方式:快照式、交易式、合併式 使用快照式或交易式時,是否允許subscriber更新資料

40 1. 先選定publisher 2

41 1. 選定要出版的資料庫 2

42 後面再介紹進階選項

43 1. 選取要出版哪個資料庫 2

44 決定要使用何種複寫類型:快照式、交易式、合併式

45 指定subscriber類型

46 指定要出版哪些資料表 可對所選的article做進一步的設定 勾選所要出版的table 可對所有article做進一步的設定

47 可對所有article做進一步的設定 1

48 可對所選的article做進一步的設定

49

50

51

52 publication建立完成

53

54 若在前面的建立發行集精靈中勾選顯示進階選項,流程如後

55

56

57 若在此資料庫上已定義有publication會出現此畫面

58

59 勾選進階選項才有此畫面。 若前面選了快照式或交易式,則可在此設定可更新的訂閱之更新方式

60

61 在允許可更新的訂閱時,必須有主索引鍵的table才可以做為article,而且在table中會
新增一個Msrepl_tran_version的unique identifier欄位,所以會出現下一畫面。

62

63

64

65

66 (勾選進階選項才有此畫面。) 若前面不使用可更新的訂閱之更新方式,則後續可以做發行資料的轉換(DTS),如下

67

68

69

70 Publication的進階設定 定義資料篩選 啟用匿名訂閱 進行快照式複寫的時間排程 只要發行table中的某些欄位或記錄
匿名訂閱:Subscriber不需透過publisher的任何檢查即可訂閱其publication。 在設定散發與發行精靈中有設定哪些SQL Server才可以做此publisher之subscriber 進行快照式複寫的時間排程

71 設定方式 在建立發行集精靈的倒數第二步

72

73 欄位篩選

74 記錄篩選

75 匿名訂閱

76 進行快照式複寫的時間排程

77

78 用Enterprise Manager修改publication設定

79 2 1.選擇publication

80

81

82

83

84 有關subscription 後面介紹

85 有關subscription 後面介紹

86 在這裡只能看,不能改 若為合併式複寫沒有此頁次

87

88 若自訂路徑, 則只有SQL Server 2000 才可以當 subscriber。

89 使用pull或立即更新的訂閱方式時, subscriber可以登入publisher的帳戶。 預設所有的sysadmin角色成員均會 在此清單中。

90 設定快照集 代理程式的 執行方式, 及複寫作業 設定。

91 合併式複寫才有此頁次, 讓publisher和subscriber 以外的SQL Server進行 資料同步化。

92 用Enterprise Manager刪除publication

93 1 2

94

95

96 將建立或刪除publication動作存成SQL Script

97 1 2

98

99

100

101

102 用Enterprise Manager設定 Push Subscription
2. 這兩項都可以 在publisher上設定 1.選定publisher

103 2.啟動 發送訂閱精靈 1.選定publication

104

105 列出先前已被 選為可做 subscriber的 SQL Server 選擇要設為subscriber的 SQL Server,可複選

106

107

108

109

110

111 對於不同的複寫類型,設定的步驟會有所不同。例如,對於可更新的publication,
需設定是否讓此subscriber可更新publication。對於合併式複寫,需設定解決衝突 的優先權方式

112

113 檢查與修改設定一下

114

115 也可刪除此subscription

116

117 用Enterprise Manager設定 Pull Subscription
在各subscriber上設定 2 1.選定subscriber

118 驅動提取訂閱精靈

119

120

121

122

123

124

125

126

127

128 需啟動

129

130

131

132

133 修改pull subscription的方式一

134 修改pull subscription的方式二

135 選定publication 建立新的pull subscription 屬性修改 刪除

136 複寫的管理與維護 設為distributor的SQL Server會有複寫監視器 其 實 是 看 同 樣 的
西 以agent為分類,看各agent的執行過程 所有用此distributor 的publisher會列於此 以publication為分類,看各agent的執行過程

137 點選某publisher下的某一publication,右邊出現
相關的代理程式資訊

138 查看某agent的歷程記錄 1

139

140

141 Agent設定檔:SQL Server提供若干個系統設定檔供agent使用,內含執行時參數的大

142 1.選擇做為樣版 的設定檔 2.

143 不同agent有不同的參數

144 設定複寫監視器的 資訊更新頻率

145

146

147 修改agent屬性 啟動agent 設定複寫監視器的 資訊更新頻率 設定要列出哪些 agent的資訊

148 複寫相關的系統預存程序


Download ppt "Replication (複寫)."

Similar presentations


Ads by Google