Oracle數據庫在各類應用系統中負責存儲平臺所有的用戶數據,數據庫的可靠性及安全性直接影響平臺的安全運行,目前比較流行的幾種數據庫高可用性的架構:Oracle RAC、Oracle 主機HA、異地容災等;
高可用(HA)性在廣義環境中是指整個系統的高可用性,在狹義方面一般指主機、服務的冗余,如主機HA、應用程序的HA等,無論那種情況,高可用性都可以包含如下一些方面:
● 系統失敗或崩潰
● 應用層或者中間層錯誤
● 網絡失敗
● 介質失?。褐敢恍┐娣艛祿拿襟w介質故障
● 人為錯誤
● 系統的容災備份
● 計劃內的維護或者重啟
可見,高可用性不僅包含了系統本身故障、應用層的故障、網絡故障、認為操作的錯誤等,還包含數據的冗余、容災及計劃的維護時間等,也就是說一個真正的高可用環境,不僅能避免系統本身的問題,還應該能防止天災、人禍,并且有一個可靠的系統升級及計劃維護操作。
1、Oracle RAC架構
RAC通過不同的節點(node)使用一個(一般是一個)或者多個Oracle實例(Instance)與一個數據庫(Database)連接,該數據庫存放于多個節點的公用存儲(Share Storage)上,通過高速緩存合并技術使得集群中的每個節點可以通過高速集群互聯高效的同步其內存高速緩存,從而最大限度地減低磁盤IO,并且自動并行處理及均勻分布負載,當其中一個節點發生故障時可以自動容錯和恢復能力來實現節點的故障切換(Failover),從而保證數據庫7X24小時的高可用性;

Oracle RAC優勢:
1) 單一的Cluster環境
2) 實現Oracle的持續服務和負載均衡
3) 在線補丁升級
4) 需要與其他容災組件配合完成存儲的備份
2、Oracle Data Guard架構
Data Guard是另一種高可用性數據庫方案,在主要和備用節點之間通過日志同步來保證數據同步,備用節點作為主節點的備份,可以實現快速的切換與災難性恢復。Data Guard一般包括兩套數據庫環境,一臺主要數據庫,一臺備用數據庫,與RAC不同的是,以一般情況下只有一個節點處于活動狀態,所有應用都連接到主服務器上,只有當主服務器發送故障時才考慮切換到備用服務器。備用服務器一般不提供讀寫的操作,只有當需要時才提供只讀的操作,或者當主站點出現故障時經過切換操作才變為主數據庫,提供正常的讀寫操作,由于存在Active/Standby兩套主機、存儲環境,所以較RAC多了數據保護盒容災的功能;

Data Guard優勢:
1) 可以實現數據庫主機及存儲的完全冗余保護,該冗余甚至可以跨地域做成容災保護,是Oracle的容災產品。在Standby中主用數據庫必須運行在歸檔模式下,以保證備用節點的數據一致性,因此該特性并不適合數據倉庫。
2) Standby主節點對OS的環境要求較高,一般要必須是相同或者相近的OS環境,并且對數據庫版本也有特定的要求,不能實現跨數據庫版本的備份。
3) 不能自動的故障切換,如果主站點損壞要切換到備用站點,則需要在切換前完全同步主站點當前的聯機日志,否則會發生切換后數據丟失的現象。