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秒之后,就會同步到另一個庫中.

配置對等事務復制完畢.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM