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