大型系統(tǒng)在進(jìn)行數(shù)據(jù)庫部署時(shí),常常會(huì)分為主數(shù)據(jù)應(yīng)用中心和應(yīng)急數(shù)據(jù)中心。通常情況下應(yīng)用系統(tǒng)訪問的是主數(shù)據(jù)中心,只有主數(shù)據(jù)中心出現(xiàn)故障的時(shí)候才會(huì)切換至應(yīng)急數(shù)據(jù)中心,主數(shù)據(jù)中心與應(yīng)急數(shù)據(jù)中心數(shù)據(jù)保持增量備份。如下圖。

傳統(tǒng)應(yīng)急流程是當(dāng)主數(shù)據(jù)庫出現(xiàn)故障時(shí),手工修改應(yīng)用服務(wù)的設(shè)置,將應(yīng)用切換至應(yīng)急數(shù)據(jù)庫進(jìn)行訪問,以確保能夠正常提供應(yīng)用。這種做法存在較大的弊端,需要人工干預(yù),并且需要重啟應(yīng)用,費(fèi)時(shí)較長,對(duì)客戶端有較明顯的感知。
為了解決該問題,WebLogic10.3新增了一個(gè)多數(shù)據(jù)源配置功能(Multi Data Sources)配置的功能;通過該功能,可以靈活地解決人工干預(yù)切換應(yīng)急數(shù)據(jù)庫的問題,并且對(duì)客戶端無任何影響,平滑從主數(shù)據(jù)庫切換至備份數(shù)據(jù)庫,客戶無感知,就像從沒發(fā)生過一樣。主數(shù)據(jù)中心恢復(fù)后,系統(tǒng)會(huì)自動(dòng)回切。
WebLogic的Multi Data Sources有兩種模式:FailOver(災(zāi)備模式)與Load-Balancing(負(fù)載均衡模式)下文將詳細(xì)介紹基于WebLogic的Multi Data Sources的兩種模式的配置。
第一步,services—>JDBC—>Data Sources建立兩個(gè)數(shù)據(jù)源分別指向主數(shù)據(jù)庫和備份數(shù)據(jù)庫。

第二步,services—>JDBC—>Multi Data Sources 建立多數(shù)據(jù)源:

第三,點(diǎn)擊“NEXT”,選中servers,如果是集群請(qǐng)選中集群的servers:

最后,繼續(xù)點(diǎn)擊“NEXT”,選擇之前建立的數(shù)據(jù)源即可;

應(yīng)用服務(wù)器連接數(shù)據(jù)庫,只需使用JDBC/TEST即可完成對(duì)數(shù)據(jù)庫的訪問;通常情況下數(shù)據(jù)庫訪問都會(huì)集中在test這個(gè)數(shù)據(jù)源,當(dāng)test數(shù)據(jù)源連接的數(shù)據(jù)庫出現(xiàn)故障時(shí),weblogic服務(wù)器會(huì)自動(dòng)將數(shù)據(jù)庫訪問切換至test_callout數(shù)據(jù)源,無縫完成災(zāi)備,應(yīng)用使用者不會(huì)對(duì)數(shù)據(jù)庫切換有任何感覺,當(dāng)主數(shù)據(jù)庫恢復(fù)時(shí),weblogic會(huì)自動(dòng)切回。
擴(kuò)展Load-Balancing(負(fù)載均衡模式),可以實(shí)現(xiàn)對(duì)多個(gè)RAC數(shù)據(jù)庫實(shí)例進(jìn)行管理,實(shí)現(xiàn)數(shù)據(jù)庫云,采取這種模式時(shí),應(yīng)用系統(tǒng)會(huì)交替訪問該Multi Data Sources所關(guān)聯(lián)的數(shù)據(jù)源,做到負(fù)載均衡,當(dāng)RAC中某一個(gè)端點(diǎn)出現(xiàn)問題時(shí),weblogic服務(wù)器會(huì)檢測(cè)到該問題數(shù)據(jù)源直至該節(jié)點(diǎn)恢復(fù),在應(yīng)用使用者使用應(yīng)用系統(tǒng)的過程中不會(huì)對(duì)某一個(gè)數(shù)據(jù)庫節(jié)點(diǎn)的故障產(chǎn)生任何感覺。
兩種模式的差別,:FailOver(災(zāi)備模式)中,只有排序在第一位的數(shù)據(jù)源是活動(dòng)的,當(dāng)主數(shù)據(jù)源故障時(shí)才會(huì)切換至備份數(shù)據(jù)源(第二個(gè)),備份數(shù)據(jù)源在常態(tài)下是空閑的;Load-Balancing(負(fù)載均衡模式)中所有關(guān)聯(lián)的數(shù)據(jù)源都參與應(yīng)用的訪問,任何一個(gè)節(jié)點(diǎn)故障,weblogic會(huì)放棄該節(jié)點(diǎn)直至該節(jié)點(diǎn)恢復(fù)并重新加入負(fù)載均衡隊(duì)列。
總結(jié),在應(yīng)用開發(fā)部署中,WebLogic的Multi Data Sources對(duì)數(shù)據(jù)庫的災(zāi)備和負(fù)載均衡提供了完美的支持,支持在多數(shù)據(jù)庫實(shí)例的情況下做到無縫的切換和回切。