sqlserver 2005 分佈式架構 對等事務複製 .

轉載網友一篇博文

一、爲什麼要使用對等事務複製

首先要說明的是使用sqlserver複製的目的

使用sqlserver數據庫複製的目的,就是要將數據庫壓力由一臺服務器分散到多臺服務器,通過一臺sqlserver服務器作爲主機,將主數據庫中的數據,複製到其他N臺備份服務器上,從而實現分佈式查詢,大大降低了主服務器的壓力.

在圖一中,右面的拓撲結構就是典型的複製,寫入的壓力,全都在B這臺服務器上,讀取的壓力平衡到兩臺機器上

圖一

                                              圖一

綜上所述,使用sqlserver複製的目的就是均衡壓力,提高sqlserver的高可用性

類似的能夠提高數據庫高可用性的解決方案目前有四種

1 windows集羣實現sqlserver雙機熱備

2 sqlserver 數據庫鏡像

3 sqlserver日誌傳送

4 sqlserver複製

在這四種解決方案中,能夠滿足分佈式數據庫需求的只有sqlserver複製

其次爲什麼要使用事務複製呢?在sqlserver複製技術中,共有三種

1 快照複製

2 事務複製

3 合併複製

在這三種複製技術中

      快照複製最簡單,定時將主數據庫中的所有數據,同步到其他備份機器中,這樣做的缺點有兩點,1 數據同步定時,不即時;2 浪費I/O資源,每次同步都是將主數據庫中的所有數據同步到其他備份機器上.快照複製的主要用途是定期初始化備份機,例如在進行事務複製時可用設定每週進行一次快照複製,有效的保證了主數據庫與其他備份數據庫的數據一致性.

      合併複製較爲複雜,在合併複製中 主數據庫與其他備份數據庫可以同時修改一條數據,當發生衝突是,處理起來較爲複雜.

      事務複製是最適合做分佈式的,首先,要求主數據庫和其他備份數據庫中的架構和數據一致(可以通過使用相同的備份還原,快照複製等方法),當數據庫運行時,只用當主數據庫中的架構或者數據發生變動,才產生事務將變動同步到其他備份數據庫上.相比快照複製,同步即時,又省I/O資源.相比合並複製,簡單,可靠.

那爲什麼要使用對等事務複製呢?

在sqlserver 事務複製中,又分爲三種方式

1 標準事務複製

2 層次結構更新訂閱事務複製

3 對等事務複製

在上面,介紹複製技術的三種方式中,已經將了標準事務複製的好處,但是這裏要講講它的缺點,大家可以再仔細看看圖一,就會發現,所有寫入壓力都在B這臺服務器上,也就是說事務複製的瓶頸在於主服務器,當主服務器掛掉時,雖然其他備份數據依然可以提供讀取服務,但是這個數據庫系統已經掛掉了,不能寫入了.

這時應該怎麼辦?別擔心,Microsoft已經爲我們提供瞭解決方案,那就是 可更新訂閱的事務複製和對等事務複製

可更新訂閱的事務複製有一個特性,可以同時在多個位置(服務器)更改同一行。這必然會帶來衝突.

所以我們選擇了對等事務複製,同一行在同一時間只能在一個位置修改.

圖一中,左邊的圖,就是典型的對等事務複製,不單單讀取的壓力被分散到多臺服務器上,連寫入的壓力也被分散了.

圖二中就是一個典型的對等事務複製實施案例

圖二

                                          圖二

上圖顯示了三個參與數據庫,它們作爲一家在洛杉磯、倫敦和臺北均設有辦事處的國際軟件支持單位的後端數據庫。每個辦事處的支持工程師接聽客戶電話,並輸入和更新每個客戶電話的相關信息。三個辦事處的時區各相差八小時,因此不會出現工作日的重疊:臺北辦事處下班時,倫敦辦事處正開始一天的工作。如果辦事處下班時電話仍在進行中,則電話將被轉接到下一個開始辦公的辦事處的代表。

每個地點都有一臺數據庫服務器和一臺應用程序服務器,供支持工程師在輸入和更新客戶電話的相關信息時使用。拓撲按時間進行分區,因此更新只發生在正在辦公的節點。然後更新流動到其他參與數據庫。此拓撲具有下列優點:

  • 獨立,但不孤立:每個辦事處都可以獨立插入、更新或刪除數據,還可以共享數據,因爲數據將複製到其他所有的參與數據庫。

  • 出現故障或維護任一參與數據庫的同時可提供更高的可用性。

圖三

                                  圖三

上圖顯示了向三節點拓撲添加節點的過程。當出現下列情形時,可以添加一個節點:

  • 因爲又開設了一家辦事處。

  • 爲了提供更高的可用性以支持維護或提高發生災難性錯誤時的容錯能力。

  • 請注意:在三節點拓撲和四節點拓撲中,所有的數據庫都向其他數據庫發佈和訂閱,從而在需要維護或者一個或多個節點發生故障時,提供最大的可用性。添加節點後,必須針對性能以及部署和管理的複雜性來權衡可用性和可伸縮性的需要。

二、怎樣實現對等事務複製

在這裏,將演示怎樣配置兩個sqlserver實例中的數據庫來實現對等事務複製

 

首先要介紹下試驗環境,YUANLQ/SQLSERVER2005和./SQLSERVERcopy

主數據庫就是YUANLQ/SQLSERVER2005中,實例數據庫AdventureWorks

前提條件

1 ./SQLSERVERcopy中需要有一個和主數據庫結構完全一樣的數據庫,在這裏我們使用advW來進行演示

2 確保所有sqlserver實例的代理服務器都開啓,下圖中,兩個sqlserver實例的代理都亮起了綠色,表示運行正常.

在這裏要說明的一點,這兩個實例都曾發佈過複製,並且分發服務器選擇的都是本地,所以,在演示中不會出現要求配置分發服務器的界面

 

開始配置

首先在 主機上發佈事務複製

選擇需要對等事務複製的數據庫

 

下一步,選擇複製方式 事務複製

下一步 選擇要發佈的對象 在這裏選擇全部

下一步,這裏說明了某些問題可能導致更改程序

下一步,由於對等事務複製不支持篩選,所以這裏直接跳過

下一步, 因爲備份數據庫中個結構和數據與主數據庫完全一致,所以這裏什麼都不選,直接跳過

 下一步,配置代理,點擊快照代理的安全設置

 

 

進入 安全設置中,在這裏,推薦做法是專門爲代理設置widows帳戶,我這裏偷懶了

下面的一項是發佈服務器帳戶,我專門爲它開通了一個sqlserver登陸賬戶

 

確定之後回到 代理安全性

 

下一步 創建發佈

 

 

 

 

 需要給發佈一個名稱

 

 

 點擊完成,開始發佈

 

發佈完成

 

 點擊關閉就好了

想要進行對等事務複製還要修改複製屬性

 

 

 

在備份實例中,也要進行相應的操作,只是要注意一點,發佈名稱要和主數據庫實例中的發佈名稱一致就好了,下圖中,能夠看到 兩個sqlserver實例都發布了自己的事務複製

 

 下面開始配置對等事務複製,這裏需要注意的是,只須在主服務器上配置就可以了

 

 

 

 

這裏需要將所有備份數據庫所在的sqlserver實例添加進來,點擊添加sqlserver

 

 

登陸到這些備份sqlserver實例上去,選擇對等數據庫

 

 

 

點擊紅色圓圈中的按鈕

 

下一步

 

 

 

 

 

 

 

 

最終,我們能夠看到,兩個sqlserver實例都發布了自己的事務複製,也都訂閱了對方的事務複製

 

=================================================

趕快連接兩個sqlserver實例試試吧,修改其中任何一個庫中的數據,過1到2秒之後,就會同步到另一個庫中.

配置對等事務複製完畢.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章