SQL Server 2005負(fù)載均衡部分性能分析
前文,關(guān)于SQL Server 2005的負(fù)載均衡的一些特點(diǎn)我們已經(jīng)了解了一些,在這里,我們再來補(bǔ)充一些內(nèi)容。整個(gè)SQL Server 2005軟件系統(tǒng)中包含的服務(wù)有很多,在這里我們主要是介紹一下負(fù)載均衡相關(guān)的性能。
數(shù)據(jù)庫的安全備份
在一個(gè)大的系統(tǒng)中,系統(tǒng)的無故障性是很重要的,但是在剛才的系統(tǒng)下,如果用于寫的服務(wù)器突然壞了,整個(gè)系統(tǒng)就會出現(xiàn)問題,所以,再做個(gè)備份是必要的。
數(shù)據(jù)庫鏡像是SQL Server 2005大力推出的,它就是要實(shí)現(xiàn)數(shù)據(jù)庫的安全轉(zhuǎn)移,所以需要再單獨(dú)拿出一臺機(jī)器來做備份服務(wù)器,將完全鏡像寫入該服務(wù)器,這樣,即使寫入服務(wù)器壞了,它也可以自動轉(zhuǎn)移到備份服務(wù)器上來,保證不影響用戶。
這實(shí)際上就相當(dāng)于實(shí)現(xiàn)了對服務(wù)器的容災(zāi)管理,但是有一點(diǎn)需要注意,在這種鏡像的體系中,必須要有一臺服務(wù)器作為監(jiān)視服務(wù)器,以便察看哪臺服務(wù)器壞了,用以在機(jī)器出錯(cuò)之后迅速調(diào)整。
回傳數(shù)據(jù)庫的狀態(tài)
數(shù)據(jù)庫服務(wù)器均已配完,整體的機(jī)器集群架構(gòu)已經(jīng)構(gòu)建,接下來的工作就是配置程序。
首先,在讀和寫的服務(wù)器都放上一個(gè)監(jiān)控程序,它同樣必須是 Windows的服務(wù),這樣更穩(wěn)定;其次,它可以設(shè)定成每隔30秒或者一定時(shí)間,將服務(wù)器的CPU、內(nèi)存、網(wǎng)卡流量和當(dāng)前數(shù)據(jù)庫狀態(tài)等信息發(fā)送回來。在這里需要設(shè)置一個(gè)權(quán)值,用以衡量CPU、內(nèi)存利用率等信息的各自比例。在這個(gè)系統(tǒng)中,建議以CPU利用率為準(zhǔn)。
中間層實(shí)現(xiàn)的負(fù)載均衡
到此為止,所有的準(zhǔn)備工作都已完成,包括數(shù)據(jù)庫的建立和配置,中間層的位置,下面所作的就是用軟件來實(shí)現(xiàn)這個(gè)負(fù)載均衡。
首先,當(dāng)一個(gè)用戶有數(shù)據(jù)庫請求時(shí),先判斷是讀還是寫,如果是寫的話,就直接返回寫入服務(wù)器,這樣當(dāng)寫服務(wù)器寫完數(shù)據(jù)以后,差不多可以在3秒內(nèi)返回其他兩臺機(jī)器。
其次,當(dāng)遇到一個(gè)讀的請求時(shí),根據(jù)監(jiān)控返回來的數(shù)據(jù)判斷,根據(jù)剛才的權(quán)值返回一個(gè)當(dāng)前最空閑的機(jī)器。需要注意的是,這時(shí)最好做一個(gè)記錄器,用以保持一段時(shí)間的數(shù)值,可以讓管理員自行設(shè)定,更好地做到幾臺數(shù)據(jù)庫的壓力平衡。
最后,如果為主的寫入服務(wù)器突然壞掉,程序可以自動把備份的服務(wù)器切換過來,用剛才的備份服務(wù)器當(dāng)作寫服務(wù)器,然后做一個(gè)報(bào)警系統(tǒng),用以通知管理員。同樣,當(dāng)監(jiān)控服務(wù)器發(fā)現(xiàn)其他兩臺讀服務(wù)器壞掉時(shí),也會自動通知管理員,來處理服務(wù)器的異常情況,這樣就可以保證系統(tǒng)的穩(wěn)定運(yùn)行,而且易于管理和維護(hù)。
總之,用軟件和微軟SQL Server 2005的一些新技術(shù),可以很輕松地實(shí)現(xiàn)負(fù)載均衡,這樣不但可以不用硬件來實(shí)現(xiàn),方便管理員的操控,更有利于DBA管理數(shù)據(jù)庫,及時(shí)發(fā)現(xiàn)問題。

圖1 數(shù)據(jù)庫分布示意圖


















