国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

SQL Server數(shù)據(jù)庫(kù)實(shí)現(xiàn)負(fù)載均衡

2019-11-08 20:38:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SQL Server數(shù)據(jù)庫(kù)負(fù)載方案

----------------------------------------------------------------------------------------------------------------------------

微軟官方方案:1、通過(guò)分庫(kù)分表、分庫(kù)磁盤IO、Share-Disk架構(gòu)2、AlwaysOn第三方軟件服務(wù):1、DBTwin2、負(fù)載均衡產(chǎn)品Moebius For SQL Server3、數(shù)據(jù)庫(kù)路由器軟件ICX(提供MS SQL Server數(shù)據(jù)庫(kù)服務(wù)器的集群功能,可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器的并行處理、負(fù)載均衡和熱備份、實(shí)時(shí)切換。 )硬件負(fù)載方案1、F5 +數(shù)據(jù)池

簡(jiǎn)介

    當(dāng)今世界是一個(gè)信息化的世界,我們的生活中無(wú)論是生活、工作、學(xué)習(xí)都離不開(kāi)信息系統(tǒng)的支撐。而信息系統(tǒng)的背后用于保存和處理最終結(jié)果的地方就是數(shù)據(jù)庫(kù)。因此數(shù)據(jù)庫(kù)系統(tǒng)就變得尤為重要,這意味著如果數(shù)據(jù)庫(kù)如果面臨問(wèn)題,則意味著整個(gè)應(yīng)用系統(tǒng)也會(huì)面臨挑戰(zhàn),從而帶來(lái)嚴(yán)重的損失和后果。

    如今“大數(shù)據(jù)”這個(gè)詞已經(jīng)變得非常流行,雖然這個(gè)概念如何落地不得而知。但可以確定的是,隨著物聯(lián)網(wǎng)、移動(dòng)應(yīng)用的興起,數(shù)據(jù)量相比過(guò)去會(huì)有幾何級(jí)的提升,因此數(shù)據(jù)庫(kù)所需要解決的問(wèn)題不再僅僅是記錄程序正確的處理結(jié)果,還需要解決如下挑戰(zhàn):

當(dāng)數(shù)據(jù)庫(kù)性能遇到問(wèn)題時(shí),是否能夠橫向擴(kuò)展,通過(guò)添加服務(wù)器的方式達(dá)到更高的吞吐量,從而充分利用現(xiàn)有的硬件實(shí)現(xiàn)更好的投資回報(bào)率。是否擁有實(shí)時(shí)同步的副本,當(dāng)數(shù)據(jù)庫(kù)面臨災(zāi)難時(shí),可以短時(shí)間內(nèi)通過(guò)故障轉(zhuǎn)移的方式保證數(shù)據(jù)庫(kù)的可用性。此外,當(dāng)數(shù)據(jù)丟失或損壞時(shí),能否通過(guò)所謂的實(shí)時(shí)副本(熱備)實(shí)現(xiàn)數(shù)據(jù)的零損失。數(shù)據(jù)庫(kù)的橫向擴(kuò)展是否對(duì)應(yīng)用程序透明,如果數(shù)據(jù)庫(kù)的橫向擴(kuò)展需要應(yīng)用程序端進(jìn)行大量修改,則所帶來(lái)的后果不僅僅是高昂的開(kāi)發(fā)成本,同時(shí)也會(huì)帶來(lái)很多潛在和非潛在的風(fēng)險(xiǎn)。

    面對(duì)上述挑戰(zhàn)一個(gè)顯而易見(jiàn)的辦法是將多個(gè)服務(wù)器組成一組集群,這樣一來(lái)就可以充分利用每一臺(tái)服務(wù)器的資源并將客戶端負(fù)載分發(fā)到不同服務(wù)器上,隨著應(yīng)用程序負(fù)載的增加,只需要將新的服務(wù)器添加到集群即可。

====  ====  ====  ====  ====

    Internet的規(guī)模每一百天就會(huì)增長(zhǎng)一倍,客戶希望獲得7天×24小時(shí)的不間斷可用性及較快的系統(tǒng)反應(yīng)時(shí)間,而不愿屢次看到某個(gè)站點(diǎn)“Server Too Busy”及頻繁的系統(tǒng)故障。

    隨著業(yè)務(wù)量的提高,以及訪問(wèn)量和數(shù)據(jù)流量的快速增長(zhǎng),網(wǎng)絡(luò)各個(gè)核心部分的處理性能和計(jì)算強(qiáng)度也相應(yīng)增大,使得單一設(shè)備根本無(wú)法承擔(dān)。在此情況下,如果扔掉現(xiàn)有設(shè)備去做大量的硬件升級(jí),必將造成現(xiàn)有資源的浪費(fèi),而且下一次業(yè)務(wù)量的提升,又將導(dǎo)致再一次硬件升級(jí)的高額成本投入。于是,負(fù)載均衡機(jī)制應(yīng)運(yùn)而生。

    對(duì)于負(fù)載均衡,筆者經(jīng)常接觸的當(dāng)屬Oracle的負(fù)載均衡機(jī)制。下面,我們先簡(jiǎn)單了解Oracle的負(fù)載均衡的實(shí)現(xiàn)方案。

    Real application Clusters是雙機(jī)并行服務(wù)器(8i及以前版本稱作Oracle Parallel Server,OPS),用來(lái)在集群環(huán)境下實(shí)現(xiàn)多機(jī)共享數(shù)據(jù)庫(kù),以保證應(yīng)用的高可用性,同時(shí)可以自動(dòng)實(shí)現(xiàn)并行處理及均分負(fù)載,還能實(shí)現(xiàn)數(shù)據(jù)庫(kù)在故障時(shí)的排錯(cuò)和無(wú)斷點(diǎn)恢復(fù)。它可以自動(dòng)進(jìn)行負(fù)載平衡、故障修復(fù)和規(guī)劃停機(jī)時(shí)間,以支持高可用性應(yīng)用程序。若并行服務(wù)器中某節(jié)點(diǎn)失效,透明的應(yīng)用程序容錯(cuò)能夠把用戶自動(dòng)轉(zhuǎn)接到另一節(jié)點(diǎn)上繼續(xù)運(yùn)行,應(yīng)用程序在用戶沒(méi)有察覺(jué)的情況下繼續(xù)執(zhí)行。這使周期性和非周期性發(fā)生故障的系統(tǒng)增大了連續(xù)可用性。進(jìn)程的失效可以完全透明地轉(zhuǎn)移到另一節(jié)點(diǎn)上去,通過(guò)適當(dāng)?shù)嘏渲茫梢灾付ㄋ胁樵兌荚诳蛻舳诉M(jìn)行緩存,這樣它們便可以在轉(zhuǎn)移后的節(jié)點(diǎn)上重新設(shè)置。

    下面我們重點(diǎn)介紹Sql Server 2005是如何實(shí)現(xiàn)負(fù)載均衡的。

    Sql Server 2005的新特性

    端到端拓?fù)涞氖聞?wù)性復(fù)制

    SQL Server 2005對(duì)端到端(P2P)拓?fù)浣Y(jié)構(gòu)上事務(wù)性的復(fù)制加強(qiáng)了支持。P2P的拓?fù)浣Y(jié)構(gòu)支持無(wú)限的發(fā)布服務(wù)器,它們彼此之間可以互相交換事務(wù)。     P2P拓?fù)涫荢QL Server的一個(gè)巨大進(jìn)步。現(xiàn)在,多端點(diǎn)服務(wù)器可以更改數(shù)據(jù),并且向其他的發(fā)布者復(fù)制事務(wù)。這就是說(shuō),訂閱服務(wù)器不再被限制在主要的報(bào)告環(huán)境中,可以通過(guò)事務(wù)性負(fù)載全球共享的方式將服務(wù)器分布開(kāi)來(lái)。當(dāng)用戶的數(shù)量增加的時(shí)候,只要簡(jiǎn)單地向這個(gè)群體中添加服務(wù)器即可。

    除了將負(fù)載分布之外,這個(gè)拓?fù)浣Y(jié)構(gòu)還增加了可用性。如果任何一個(gè)點(diǎn)的服務(wù)器不可達(dá),則池中其他服務(wù)器就會(huì)共享這個(gè)負(fù)載,因?yàn)槊總€(gè)服務(wù)器都有其他所有服務(wù)器上可獲得的全部數(shù)據(jù)集合。

    數(shù)據(jù)庫(kù)鏡像和快照

    SQL Server 2005引入了數(shù)據(jù)庫(kù)鏡像的概念,來(lái)幫助獲得高可用性。特別提醒的是,只要它正式發(fā)布了,數(shù)據(jù)庫(kù)鏡像就可以在SQL Server 2005上使用。然而,只有到SQL Server 2005 Service Pack 1才會(huì)支持鏡像。

    數(shù)據(jù)庫(kù)快照是SQL Server 2005中引入的另一項(xiàng)特性。快照是某一個(gè)時(shí)間點(diǎn)上的數(shù)據(jù)庫(kù)的克隆。只要對(duì)鏡像數(shù)據(jù)庫(kù)進(jìn)行了快照,就可以讓用戶查詢快照。快照的生成通常只需要幾秒鐘,因?yàn)樗鼘?shí)際上在這個(gè)過(guò)程中并沒(méi)有拷貝任何數(shù)據(jù)。因此,要把負(fù)載分布到主服務(wù)器和備用服務(wù)器上,就可以將數(shù)據(jù)庫(kù)做鏡像,然后階段性地對(duì)備份服務(wù)器進(jìn)行快照。而且還可以使用快照在主服務(wù)器上進(jìn)行報(bào)告。

    軟件實(shí)現(xiàn)SQL Server 2005的負(fù)載均衡

    中間層

    實(shí)現(xiàn)數(shù)據(jù)庫(kù)的負(fù)載均衡技術(shù),首先要有一個(gè)可以控制連接數(shù)據(jù)庫(kù)的控制端。在這里,它截?cái)嗔藬?shù)據(jù)庫(kù)和程序的直接連接,由所有的程序來(lái)訪問(wèn)這個(gè)中間層,然后再由中間層來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。這樣,我們就可以具體控制訪問(wèn)某個(gè)數(shù)據(jù)庫(kù)了,然后還可以根據(jù)數(shù)據(jù)庫(kù)的當(dāng)前負(fù)載來(lái)調(diào)整每次連接到哪個(gè)數(shù)據(jù)庫(kù)。好處在兩個(gè)方面:首先,它成功地將數(shù)據(jù)庫(kù)放到了內(nèi)網(wǎng)之中,更好地保護(hù)了數(shù)據(jù)庫(kù)的安全性。如果數(shù)據(jù)庫(kù)也在公網(wǎng)上,1433端口是很容易被攻擊的,所以要保護(hù)數(shù)據(jù)庫(kù)與之的連接,就用到了中間層。它可以將數(shù)據(jù)庫(kù)更加好地保護(hù)在內(nèi)網(wǎng)。其次,連接數(shù)據(jù)庫(kù)的所有連接都可以控制,更方便DBA對(duì)數(shù)據(jù)的管理,看哪些連接更耗費(fèi)數(shù)據(jù)庫(kù)資源,以便更好地優(yōu)化代碼。

    但是,也有兩點(diǎn)要注意:第一,必須要做成Windows的服務(wù)程序。Windows發(fā)展到今天,如果以一個(gè)集成的大系統(tǒng)來(lái)講,做成服務(wù)程序更加穩(wěn)定,也更加安全,這樣做即使用戶不登錄機(jī)器,也可以使用。第二,必須要使用多個(gè)中間層。從中間層的作用可以看出,它承接了數(shù)據(jù)庫(kù)的所有連接,所以,一旦出了問(wèn)題,就會(huì)導(dǎo)致整個(gè)系統(tǒng)癱瘓。所以做多個(gè)中間層是必要的,這樣,如果一個(gè)壞了可以登錄到另一個(gè)。

    實(shí)現(xiàn)多據(jù)庫(kù)數(shù)據(jù)同步

    中間層有了,下一步的工作是設(shè)置構(gòu)建數(shù)據(jù)庫(kù)集群。對(duì)于負(fù)載均衡,最重要的就是所有服務(wù)器的數(shù)據(jù)都是同步的。這是一個(gè)集群所必需的,因?yàn)椋绻麛?shù)據(jù)不同步,那么用戶從一臺(tái)服務(wù)器讀出的數(shù)據(jù),就有別于從另一臺(tái)服務(wù)器讀出的數(shù)據(jù),這是不能允許的。所以必須實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。這里設(shè)置一個(gè)用于寫入的數(shù)據(jù)庫(kù),設(shè)置兩個(gè)用于讀出的數(shù)據(jù)庫(kù),因?yàn)閾?jù)統(tǒng)計(jì),一般來(lái)講,70%的數(shù)據(jù)庫(kù)操作為讀操作。

    首先,在寫入數(shù)據(jù)庫(kù)上做一個(gè)發(fā)布服務(wù)器,主要基于SQL Server 2005的復(fù)制技術(shù),將即將用到的表都選上。注意,在連接上要選用模擬用戶,然后共享時(shí)選擇sa用戶,這樣就可以將數(shù)據(jù)共享了。

    其次,在兩個(gè)讀服務(wù)器上做訂閱服務(wù),要注意同樣的事項(xiàng),這樣一個(gè)“一寫兩讀”的數(shù)據(jù)庫(kù)集群就完成了。

    數(shù)據(jù)庫(kù)的安全備份

    在一個(gè)大的系統(tǒng)中,系統(tǒng)的無(wú)故障性是很重要的,但是在剛才的系統(tǒng)下,如果用于寫的服務(wù)器突然壞了,整個(gè)系統(tǒng)就會(huì)出現(xiàn)問(wèn)題,所以,再做個(gè)備份是必要的。

    數(shù)據(jù)庫(kù)鏡像是SQL Server 2005大力推出的,它就是要實(shí)現(xiàn)數(shù)據(jù)庫(kù)的安全轉(zhuǎn)移,所以需要再單獨(dú)拿出一臺(tái)機(jī)器來(lái)做備份服務(wù)器,將完全鏡像寫入該服務(wù)器,這樣,即使寫入服務(wù)器壞了,它也可以自動(dòng)轉(zhuǎn)移到備份服務(wù)器上來(lái),保證不影響用戶。

    這實(shí)際上就相當(dāng)于實(shí)現(xiàn)了對(duì)服務(wù)器的容災(zāi)管理,但是有一點(diǎn)需要注意,在這種鏡像的體系中,必須要有一臺(tái)服務(wù)器作為監(jiān)視服務(wù)器,以便察看哪臺(tái)服務(wù)器壞了,用以在機(jī)器出錯(cuò)之后迅速調(diào)整。

    回傳數(shù)據(jù)庫(kù)的狀態(tài)

    數(shù)據(jù)庫(kù)服務(wù)器均已配完,整體的機(jī)器集群架構(gòu)已經(jīng)構(gòu)建,接下來(lái)的工作就是配置程序。

    首先,在讀和寫的服務(wù)器都放上一個(gè)監(jiān)控程序,它同樣必須是Windows的服務(wù),這樣更穩(wěn)定;其次,它可以設(shè)定成每隔30秒或者一定時(shí)間,將服務(wù)器的CPU、內(nèi)存、網(wǎng)卡流量和當(dāng)前數(shù)據(jù)庫(kù)狀態(tài)等信息發(fā)送回來(lái)。在這里需要設(shè)置一個(gè)權(quán)值,用以衡量CPU、內(nèi)存利用率等信息的各自比例。在這個(gè)系統(tǒng)中,建議以CPU利用率為準(zhǔn)。

    中間層實(shí)現(xiàn)的負(fù)載均衡

    到此為止,所有的準(zhǔn)備工作都已完成,包括數(shù)據(jù)庫(kù)的建立和配置,中間層的位置,下面所作的就是用軟件來(lái)實(shí)現(xiàn)這個(gè)負(fù)載均衡。

    首先,當(dāng)一個(gè)用戶有數(shù)據(jù)庫(kù)請(qǐng)求時(shí),先判斷是讀還是寫,如果是寫的話,就直接返回寫入服務(wù)器,這樣當(dāng)寫服務(wù)器寫完數(shù)據(jù)以后,差不多可以在3秒內(nèi)返回其他兩臺(tái)機(jī)器。

    其次,當(dāng)遇到一個(gè)讀的請(qǐng)求時(shí),根據(jù)監(jiān)控返回來(lái)的數(shù)據(jù)判斷,根據(jù)剛才的權(quán)值返回一個(gè)當(dāng)前最空閑的機(jī)器。需要注意的是,這時(shí)最好做一個(gè)記錄器,用以保持一段時(shí)間的數(shù)值,可以讓管理員自行設(shè)定,更好地做到幾臺(tái)數(shù)據(jù)庫(kù)的壓力平衡。

    最后,如果為主的寫入服務(wù)器突然壞掉,程序可以自動(dòng)把備份的服務(wù)器切換過(guò)來(lái),用剛才的備份服務(wù)器當(dāng)作寫服務(wù)器,然后做一個(gè)報(bào)警系統(tǒng),用以通知管理員。同樣,當(dāng)監(jiān)控服務(wù)器發(fā)現(xiàn)其他兩臺(tái)讀服務(wù)器壞掉時(shí),也會(huì)自動(dòng)通知管理員,來(lái)處理服務(wù)器的異常情況,這樣就可以保證系統(tǒng)的穩(wěn)定運(yùn)行,而且易于管理和維護(hù)。

    總之,用軟件和微軟SQL Server 2005的一些新技術(shù),可以很輕松地實(shí)現(xiàn)負(fù)載均衡,這樣不但可以不用硬件來(lái)實(shí)現(xiàn),方便管理員的操控,更有利于DBA管理數(shù)據(jù)庫(kù),及時(shí)發(fā)現(xiàn)問(wèn)題。

【參考文獻(xiàn)】

1、大數(shù)據(jù)時(shí)代下的SQL Server第三方負(fù)載均衡方案----Moebius測(cè)試 http://www.cnblogs.com/gaizai/p/3644510.html

2、數(shù)據(jù)庫(kù)集群技術(shù)漫談 -http://www.cnblogs.com/CareySon/p/3627594.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿尔山市| 钟祥市| 乌拉特中旗| 迭部县| 疏附县| 松桃| 芜湖市| 沛县| 潞城市| 府谷县| 阳江市| 称多县| 房产| 邵阳县| 沅陵县| 潞西市| 开平市| 盘锦市| 英超| 惠安县| 吴堡县| 太和县| 洛浦县| 汽车| 富裕县| 太保市| 浏阳市| 皋兰县| 永昌县| 肥乡县| 浦城县| 廉江市| 泰兴市| 蓬溪县| 中超| 石楼县| 铜鼓县| 克什克腾旗| 东乌| 嘉峪关市| 巫山县|