[Oracle] RAC 之 - 負(fù)載均衡深入解析
Oracle RAC提供兩種方式實(shí)現(xiàn)負(fù)載均衡,第一種是純技術(shù)手段,即在用戶連接時(shí),根據(jù)系統(tǒng)當(dāng)前的負(fù)載情況決定由哪個(gè)節(jié)點(diǎn)處理用戶請(qǐng)求;第二種是面向業(yè)務(wù),人為的把應(yīng)用切分成很多service,通過某個(gè)service過來的連接請(qǐng)求都由某個(gè)節(jié)點(diǎn)處理。下面來具體看看這兩種手段:
純技術(shù)手段 (面向連接的負(fù)載均衡)
1. 客戶端負(fù)載均衡
配置方法是在客戶端tnsnames.ora文件中設(shè)置LOAD_BALANCE=YES,當(dāng)客戶端發(fā)起連接時(shí),會(huì)從地址列表中隨機(jī)選取一個(gè),把連接請(qǐng)求隨機(jī)分散給各個(gè)實(shí)例。
這個(gè)技術(shù)的最大缺點(diǎn)在于不能根據(jù)各個(gè)實(shí)例的真實(shí)負(fù)載情況來分散請(qǐng)求,太過粗糙,因此很少使用。
2. 服務(wù)器端負(fù)載均衡
服務(wù)器端負(fù)載均衡依賴于Listener收集的負(fù)載信息,在數(shù)據(jù)庫運(yùn)行過程中,pmon進(jìn)程會(huì)收集系統(tǒng)的負(fù)載信息,定期更新至Listener中。如果你配置了Remote_listener參數(shù),pmon進(jìn)程不但能把負(fù)載信息注冊(cè)到本地Listener,也可以注冊(cè)到其它實(shí)例的Listener。這樣有了pmon自動(dòng)注冊(cè)機(jī)制后,集群的每個(gè)節(jié)點(diǎn)的Listener都掌握了所有節(jié)點(diǎn)的負(fù)載信息,當(dāng)收到客戶端請(qǐng)求時(shí),會(huì)把連接分配給負(fù)載最小的實(shí)例。
面向業(yè)務(wù)手段 (利用Service負(fù)載均衡)
上面介紹了純技術(shù)手段進(jìn)行的負(fù)載均衡,看起來很美好,但在實(shí)際使用中,可能會(huì)帶來非常大的性能問題。大家都知道,RAC由于其share-disk的架構(gòu),它的性能很大程度上依賴于內(nèi)存融合(Cache Fusion),純技術(shù)手段無法知道業(yè)務(wù)的具體情況,因此它可能把同一個(gè)業(yè)務(wù)的連接分散到各個(gè)實(shí)例中,導(dǎo)致大量的內(nèi)存融合,性能急劇下降。
如果我們換一種思路,把同一種應(yīng)用程序的連接分到同一個(gè)實(shí)例上,比如A應(yīng)用程序的連接都連在A實(shí)例,B應(yīng)用程序的連接都連在B實(shí)例上,這樣就能夠有效地減少內(nèi)存融合。
對(duì)應(yīng)用的劃分可以通過service實(shí)現(xiàn),這需要DBA和開放人員合作,在了解業(yè)務(wù)特點(diǎn)的情況下配置service
相關(guān)文章
解決maven不能下載oracle jdbc驅(qū)動(dòng)的問題
這篇文章主要介紹了解決maven不能下載oracle jdbc驅(qū)動(dòng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
11g Oracle導(dǎo)出表不導(dǎo)出數(shù)據(jù)默認(rèn)為空表的解決方法
11g Oracle導(dǎo)出表 默認(rèn)不導(dǎo)出數(shù)據(jù)為空的表解決2014-07-07
oracle 聲明游標(biāo)(不具備字段)規(guī)則應(yīng)用
在開發(fā)過程中可能會(huì)聲明一個(gè)含有某張表不具備字段的游標(biāo),來解決特殊問題,本文將詳細(xì)介紹這類問題,需要了解更多的朋友可以參考下2012-11-11
Oracle數(shù)據(jù)庫如何創(chuàng)建第一張表
這篇文章主要介紹了Oracle數(shù)據(jù)庫如何創(chuàng)建第一張表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
Oracle?CDB管理實(shí)現(xiàn)多租戶管理功能
這篇文章主要介紹了Oracle?CDB管理實(shí)現(xiàn)多租戶管理功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2022-12-12
Oracle通過遞歸查詢父子兄弟節(jié)點(diǎn)方法示例
這篇文章主要給大家介紹了關(guān)于Oracle如何通過遞歸查詢父子兄弟節(jié)點(diǎn)的相關(guān)資料,遞歸查詢對(duì)各位程序員來說應(yīng)該都不陌生,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
Oracle中TIMESTAMP的幾種類型介紹與實(shí)例
我們都知道date和timestamp都是對(duì)日期和時(shí)間的表示,只是兩種類型的精確度不同,前者精確到秒,后者精確到小數(shù)秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。這篇文章主要介紹了Oralce中TIMESTAMP的幾種類型。有需要的朋友們可以參考借鑒。2016-12-12

