大型系統在進行數據庫部署時,常常會分為主數據應用中心和應急數據中心。通常情況下應用系統訪問的是主數據中心,只有主數據中心出現故障的時候才會切換至應急數據中心,主數據中心與應急數據中心數據保持增量備份。如下圖。

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

第二步,services—>JDBC—>Multi Data Sources 建立多數據源:

第三,點擊“NEXT”,選中servers,如果是集群請選中集群的servers:

最后,繼續點擊“NEXT”,選擇之前建立的數據源即可;

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