Sql Server 2005負載均衡的體系特點
關于SQL Server 的負載均衡問題,我們以前的介紹只針對概念上的范范介紹,那么我們現在針對SQL Server 2005版本,來說一下它的性能。從中,我們能更具體的了解到這個版本的特點以及和負載均衡相關的內容介紹。
Sql Server 2005的新特性
端到端拓撲的事務性復制
SQL Server 2005對端到端(P2P)拓撲結構上事務性的復制加強了支持。P2P的拓撲結構支持無限的發布服務器,它們彼此之間可以互相交換事務。
P2P拓撲是SQL Server的一個巨大進步。現在,多端點服務器可以更改數據,并且向其他的發布者復制事務。這就是說,訂閱服務器不再被限制在主要的報告環境中,可以通過事務性負載全球共享的方式將服務器分布開來。當用戶的數量增加的時候,只要簡單地向這個群體中添加服務器即可。
除了將負載分布之外,這個拓撲結構還增加了可用性。如果任何一個點的服務器不可達,則池中其他服務器就會共享這個負載,因為每個服務器都有其他所有服務器上可獲得的全部數據集合。
數據庫鏡像和快照
SQL Server 2005引入了數據庫鏡像的概念,來幫助獲得高可用性。特別提醒的是,只要它正式發布了,數據庫鏡像就可以在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1才會支持鏡像。
數據庫快照是SQL Server 2005中引入的另一項特性。快照是某一個時間點上的數據庫的克隆。只要對鏡像數據庫進行了快照,就可以讓用戶查詢快照。快照的生成通常只需要幾秒鐘,因為它實際上在這個過程中并沒有拷貝任何數據。因此,要把負載分布到主服務器和備用服務器上,就可以將數據庫做鏡像,然后階段性地對備份服務器進行快照。而且還可以使用快照在主服務器上進行報告。
軟件實現SQL Server 2005的負載均衡
中間層
實現數據庫的負載均衡技術,首先要有一個可以控制連接數據庫的控制端。在這里,它截斷了數據庫和程序的直接連接,由所有的程序來訪問這個中間層,然后再由中間層來訪問數據庫。這樣,我們就可以具體控制訪問某個數據庫了,然后還可以根據數據庫的當前負載來調整每次連接到哪個數據庫。好處在兩個方面:首先,它成功地將數據庫放到了內網之中,更好地保護了數據庫的安全性。如果數據庫也在公網上,1433端口是很容易被攻擊的,所以要保護數據庫與之的連接,就用到了中間層。它可以將數據庫更加好地保護在內網。其次,連接數據庫的所有連接都可以控制,更方便DBA對數據的管理,看哪些連接更耗費數據庫資源,以便更好地優化代碼。
但是,也有兩點要注意:第一,必須要做成Windows的服務程序。Windows發展到今天,如果以一個集成的大系統來講,做成服務程序更加穩定,也更加安全,這樣做即使用戶不登錄機器,也可以使用。第二,必須要使用多個中間層。從中間層的作用可以看出,它承接了數據庫的所有連接,所以,一旦出了問題,就會導致整個系統癱瘓。所以做多個中間層是必要的,這樣,如果一個壞了可以登錄到另一個。
實現多據庫數據同步
中間層有了,下一步的工作是設置構建數據庫集群。對于負載均衡,最重要的就是所有服務器的數據都是同步的。這是一個集群所必需的,因為,如果數據不同步,那么用戶從一臺服務器讀出的數據,就有別于從另一臺服務器讀出的數據,這是不能允許的。所以必須實現一個數據庫的數據同步。這里設置一個用于寫入的數據庫,設置兩個用于讀出的數據庫,因為據統計,一般來講,70%的數據庫操作為讀操作。
首先,在寫入數據庫上做一個發布服務器,主要基于SQL Server 2005的復制技術,將即將用到的表都選上。注意,在連接上要選用模擬用戶,然后共享時選擇sa用戶,這樣就可以將數據共享了。
其次,在兩個讀服務器上做訂閱服務,要注意同樣的事項,這樣一個 “一寫兩讀"的數據庫集群就完成了。