前言:
本方案書,是為了提供高可用的Oracle DB服務。達到在異常故障時,數據庫還可以對外提供服務。比較了RAC和DataGuard。
Oracle RAC
一、架構
解說:用戶發起請求到Application Server, Application Server(這裡可以理解為Bserver)。Application Server 會將數據庫連接請求發送至上圖兩個oracle db server。兩個Oracle Db Server背後共享同一份數據,這兩個db server同時對外提供服務,任意一個db server down機。原連接會轉發至另一存活的db server。數據通過光纖交換機,儲存到儲存介質。
數據庫可簡單理解為內存和儲存的組合,內存在db server中,數據在儲存介質中,如上圖ASM。如數據庫出現問題,基本也是內存或儲存問題。(這裡不考慮網絡故障)。如db主機故障,rac有多個實例,可以保證db服務不中斷。另一種顧慮,儲存出現故障,可以冗餘的儲存保證數據不丟失,如oracle的ASM,OCFS2,Raw devices等。
注意: RAC並不是1+1=2. 即Rac性能,並不是隨著db server 數量成正比增加,如設置不當,性能比單實例還低的情況也很常見。
Oracle DataGuard
Oracle DataGuard屬於Oracle自帶的資料同步功能,基本原理是將日誌從Primary資料庫傳輸到Standby資料庫,然後在Standby資料庫上應用這些日誌,從而使Standby資料庫與Primary資料庫保持同步。
一、架構
二、Standby資料庫類型
Standby資料庫通常分兩類:邏輯standby和物理standby。
邏輯standby是通過接收primary資料庫的redo log並轉換成sql語句,然後在standby資料庫上執行SQL語句實現同步。
物理standby是通過接收並應用primary資料庫的redo log以介質恢復的方式實現同步,不僅文件的物理結構相同,連塊在磁片上的存儲位置都是一模一樣的。
三、保護模式
1.最大保護 (簡言之:Standby DB收到redo log,Primary DB才可提交,保證資料完全不丟失。不常用)
這種模式是預設的資料保護模式,在不影響來源資料庫性能的條件下提供盡可能高的數據保護等級。在該種模式下,一旦日誌資料寫到來源資料庫的連線日誌檔,事務即可提交,不必等待日誌寫到目標資料庫,如果網路頻寬充足,該種模式可提供類似於最大可用模式的資料保護等級。
2.最大可用性 (簡言之:默認是最大保護,異常時可自動切換最大性能模式。)
這種模式和"最大保護"基本上差不多。正常情況下,主備庫之間是同步的。當網路或者備庫出現問題時,不會影響到主庫的當機,主庫會自動轉換庫"最大性能"模式,等待備庫可用時,將歸檔傳輸到備庫做恢復。
3.最大性能
這種模式保證主庫性能最大化,主備庫之間資料是非同步傳輸的。即,主備日誌歸檔以後才會傳輸到備用庫,在備庫上使用歸檔日誌檔做恢復操作。
四、安裝條件
運行DataGuard需要具備以下幾個條件:
1、 在主庫和從庫的所有機器上必須安裝同一個版本的Oracle企業版。
2、 主庫必須運行在歸檔模式下。
3、 主庫和從庫的作業系統必須一樣(允許版本不同),從庫可以使用與主庫不同的目錄結構。
兩者比較:
Advantage of RAC:
High availability. One DB instance down, the other DB instance still can provide DB service.
Can maintain one DB server while the other is still work.
High scalability. Can add or delete DB instance online.
Disadvantage of RAC:
If the disk array damage, DB service is not available.(舉例:如整個磁盤陣列損壞,或HBA卡損壞)
Db performance may not better or even worse then single DB instance;
Complex management.
Advantage of DG:
High availability. The primary DB and standby DB can switch any time for DB crash or maintaince.
The standby DB backup the primary DB anytime.
Distribute work load , statistic, analyzing and report job can be done in standby DB.
Easy management.
Disadvantage of DG:
No obviously disadvantage.
Unable to improve performance
Even Standby DB can take over control from Primary DB automatic, However, Application still need to change connect IP and reload configuration.