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