SQL Server 2005的負載均衡

  SQL Server 2005 仍然不直接地支持負載均衡 ?? 可是它爲之前 SQL Server 版本中可用的全部負載均衡方法提供了使人激動的改善和支持。
  目錄
   1 、端到端拓撲的事務性複製
   2 、表分割
   3 、備份和從新存儲上的改善 ( 片斷式從新存儲 )
   4 、數據庫鏡像和快照
   端到端拓撲的事務性複製
   SQL Server 2005 對端到端 (P2P) 的拓撲結構上的事務性的複製增強了支持。
   SQL Server 2000 支持雙向的複製,這就可讓兩臺服務器同時對彼此發佈和訂閱數據。服務器能夠更新同一個共享數據,可是在這樣的拓撲中你被限制在兩臺服務器上。
   P2P 的拓撲結構支持無限的發佈服務器,他們彼此之間能夠互相交換事務。固然,當參加的發佈者的數量增長以後,事務性的延遲也就更大了。雖然在你的 P2P 拓撲結構中對節點的數量沒有理論上的限制,可是隻有在某個肯定的數字之下才能夠提供可接受的性能。微軟推薦低於 12 個節點,以保證性能的優化。
  不管怎樣, P2P 拓撲都是 SQL Server 的一個巨大進步:如今,多端點服務器能夠更改數據,而且向其餘的發佈者複製事務。這就是說,訂閱服務器再也不被限制在主要的報告環境中。你能夠經過事務性負載全球共享的方式將服務器分佈開來。當用戶的數量增長的時候,只要簡單地向這個羣體中添加服務器便可。
  除了將負載分佈以外,這個拓撲結構還增長了可用性。若是任何一個點的服務器不可達,則池中其它的服務器就會共享這個負載,由於每一個服務器都有其它全部服務器上可得到的所有數據集合。
  如下的表列出了使用 P2P 拓撲結構來進行負載均衡的優勢和缺點。        

對等拓撲的優缺點數據庫

優勢服務器

缺點負載均衡

?                                 全部參與的服務器都有徹底的數據集合。 分佈式

?                                 用戶能夠鏈接到任何一個點的服務器上來讀取或者修改數據。函數

?                                 因爲負載在服務器之間進行了均衡,讀取的性能獲得了很大程度的改善。 性能

?                                 多個服務器會修改同一個數據,這會致使衝突。事務性複製不支持具備超出常規的衝突解決方案。你必須找出解決或者防止潛在衝突的解決方法。 優化

?                                 當端點服務器的數量增長的時候,性能會大幅降低。spa

?                                 寫活動重複,由於全部的數據都在同一臺服務器上。 日誌

  注意:複製在處理數據庫計劃無縫修改方面也進行了增強。在之前的發佈中,修改複製的對象的計劃須要關機時間。可是在SQL Server 2005中就不是這樣的狀況了。
  表分割
  分佈式分區視圖的工做方式在SQL Server 2005中與之前版本中的工做方式相同。然而,SQL Server 2005還支持表分區,這可讓你經過分佈讀寫負載到多個磁盤(或者磁盤陣列)上來改善性能。
  對於分區表,你必須識別分區要用的是哪個卷,還有每一個分區的範圍。例如,一個標識字段的數值能夠定義分區範圍;一個分區內能夠容許從11百萬的數值,在第二個分區內能夠容許1百萬到2百萬,以此類推。分區範圍能夠經過分區函數來指定.而後你還必須建立一個分區計劃來說分區函數中定義的每一個範圍值映射到分離的文件組上去。每一個文件組均可以放在不一樣的磁盤上。
  如下的表給出了表分區的優缺點:對象

表分區的優缺點

優勢

缺點

?                                 使用分區計劃和函數很容易創建

?                                 簡化了對大表的維護(有幾十億行記錄)

?                                 容許爲每一個分區建立獨立的索引

?                                 分區字段支持的數據類型有必定限制

?                                 必須爲每一個單獨的分區創建一個表都,可是你能夠在多個表上重複使用同一個分區函數。

?                                 表分區可讓你將負載擴展到磁盤上去。然而,全部的數據都必須被同一個服務器管理。若是你的性能瓶頸與CPU或者內存有關,那麼這種方法看起來不是你最好的選擇。

備份和從新存儲方面的改善(片斷式從新存儲)
  SQL Server的備份和從新存儲特性沒有很大的改變,可是微軟確實添加了一些新的函數來容許用戶比之前更快地訪問被從新存儲的數據庫。
  SQL Server 2005如今支持片斷式數據庫從新存儲。片斷式從新存儲可讓你首先從新存儲主要的文件組,而後將數據庫啓動,處於在線狀態。而後,可用的第二個文件組也能夠被從新存儲。只要第一文件組被從新存儲了,那麼用戶就能夠鏈接到數據庫了。其餘的文件組能夠繼續從新存儲,與此同時,數據庫也能夠爲查詢和事務提供服務。正在從新存儲的文件組標記爲離線。  假設你有一個100GB的數據庫,其中的75GB是歷史性數據,不多被訪問到。你能夠將這些歷史性數據放在它本身的文件組裏面,而後讓那些頻繁訪問的數據放在另一個文件組。若是你將最近的數據放在第一文件組中,那麼你就只須要從新存儲25GB的數據就可讓用戶鏈接到你的數據庫上。而後你再從新存儲其它的保留歷史性數據的文件組。  如下的表列出了這個備份和從新存儲解決方案的優缺點:

備份和從新存儲的優缺點:

優勢

缺點

?                                 實現和維護很是簡單

?                                 容許對報告數據庫進行讀取和寫入

?                                 不能提供最新的數據

?                                 在從新存儲的時候,數據庫不能訪問。這就意味着報告沒法生成。

  數據庫鏡像和快照
  SQL Server 2005引入了數據庫鏡像的概念來幫助得到高可用性。特別提醒的是,只要它正是發佈了,數據庫鏡像就能夠在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1纔會支持鏡像,暫定在2006年年初發布。
  從本質上來講,鏡像的工做方式與日誌傳輸相似。
  1、事務日誌記錄能夠應用在兩個服務器中的數據庫文件上。與日誌傳輸不一樣的是,數據庫鏡像不須要你備份事務日誌,也不須要拷貝備份到備份服務器上。
  2、數據庫鏡像連續兩次寫入數據。與日誌傳輸不一樣,備份的數據庫必須保持在非恢復的模式中,這能夠防止對數據的訪問,即便是隻讀的方式。然而,鏡像容許對備份數據庫進行快照。
  數據庫快照是SQL Server 2005中引入的另外一項特性。快照是某一個時間點上的數據庫的克隆。只要你的鏡像的數據庫進行了快照,你就可讓用戶查詢快照。快照的生成一般只須要幾秒鐘,由於它實際上在這個過程當中拷貝任何數據。所以,要把負載分佈到你的主服務器和備用服務器上,你能夠將你的數據庫鏡像,而後階段性地對備份服務器進行快照。你還可使用快照在主服務器上進行報告。
  如下的表列出了數據庫鏡像和快照的優缺點:

數據庫鏡像和快照的優缺點

優勢

缺點

?                                 從鏡像數據庫中生成快照很是快

?                                 數據是最新的,由於它是持續寫入鏡像

?                                 在同一個數據庫上能夠生成多個快照

?                                 快照提供了對數據的只讀訪問.

?                                 擁有快照,會增長服務器的負擔,對性能產生負面影響

?                                 若是你正好對鏡像服務器進行錯誤恢復,那麼事務和報告活動都會指向同一個服務器(可是不一樣的數據庫)。

相關文章
相關標籤/搜索