數據庫雙機可以有兩種不同的方式:雙機熱備份、雙機集群。
雙機熱備份方式的集群完全通過操作系統的cluster軟件來實現,在同一個時刻,只有一台機器對數據庫作操作,當這台機器發生故障以后,由操作系統cluster將所有資源切換到兩外一個節點,防止單節點數據庫故障。
雙機集群方式(RAC),在10g以后,通過ORACLE自身提供的CRS來實現集群的功能。在同一個時刻,所有的機器都對數據庫作操作,當某台機器發生故障后,其他機器接管該機器的工作。這種方式不但能夠防止單節點數據庫故障,還能夠實現負載均衡。因為兩個機器對同一個數據庫操作,因此數據庫文件一般無法使用傳統的文件系統方式存儲。
下表列出了兩種方式的區別:
|
雙機熱備方式 |
RAC方式 |
是否需要共享的磁盤陣列 |
必須 |
必須 |
是否需要操作系統CLUSTER軟件 |
必須 |
不需要 (見注一) |
是否需要額外購買ORACLE RAC選件 |
不需要 |
必須 |
同一個時刻幾台機器工作 |
一台 |
所有機器 |
是否可以防止單點故障 |
可以 |
可以 |
是否實現負載均衡 |
不可以 |
可以 |
數據文件可以選擇的存儲方式 |
所有方式 |
根據選件不同有所區別 |
注一:對於rac方式,在10G以下的版本必須要操作系統cluster的支持+oracle rac選件才能夠實現,在10G以后,oracle提供了自身的cluster軟件——crs,因此可以在沒有操作系統cluster的情況實現RAC方式,但對於文件的存儲方式有所限制,下表列出了在rac方式下可以選擇的存儲方式
RAC方式下的存儲方式 |
需要的前提條件 |
普通文件系統 |
不支持 |
裸設備 |
必須安裝操作系統CLUSTER支持 |
ASM |
由oracle自身提供,不需要額外的軟硬件支持 |
共享文件系統GPFS |
必須安裝操作系統HACMP以及GPFS選件(僅針對AIX)平台 |
Ocfs(oracle cluster file system) |
僅支持windows,linux平台;其他平台目前暫未提供該方式 |
數據庫雙機熱備方案的原理及實現
以下簡單說明了雙機熱備的原理及實現。
n 方案原理
|
|
|
|
|
|
|
|
|
|
Server A 主節點 |
|
|
|
|
|
|
|
|
Server B 備節點 |
|
|
|
|
|
|
|
|
|
|
Database |
雙機熱備系統又稱為Cold Failover,它是oracle數據庫高可用方式的一種。
主要工作方式為主機節點運行,備用節點處於等待狀態,當主機節點發生失敗的時候,數據庫以及虛擬IP自動漂移到備用節點,完成用戶應用透明切換。切換操作基於操作系統Cluster控制軟件,操作系統負責監控系統的運行狀況。操作系統實現數據庫的關閉、切換和啟動。
n 方案評價
雙機熱備系統是單實例數據庫系統,它的工作方式是一種Shared Nothing方式,也就是同一時間段,只有一台節點對共享盤陣有操作權。在發生節點失敗時,完成切換。應用切換對前端用戶透明,主機節點失敗后用戶自動轉接入預先定以的備用節點。此種方式概念以及平台搭建相對簡單,易於管理。但是其主機工作,備機等待的工作方式,造成了此種工作方式對系統資源的一定浪費。同時該方式不支持用戶操作的連續性。
n 方案具體實現
雙機熱備系統幾乎支持現階段所用供應商。例如:Microsoft , Sun , HP , IBM , Compaq , Intel , Linux….。完成此種方式對硬件,操作系統及各廠家HA軟件有一定要求。硬件要求:至少兩台服務器、一個共享盤陣,每台服務器需要兩塊網卡。一塊用於兩台主機之間的連接,兩台主機通過此連接定期向對方發送檢測信號,判斷對方工作狀態(如下圖紅線標注)。另外一塊網卡用於和外網的連接。
NodeB (備用節點) |
NodeA (主機節點)
|
心跳線 |
HA軟件方面要求:
必須操作系統HA軟件支持,根據操作系統平台不同如:Microsoft Cluster Server(MSCS) 、HP MC/ServiceGuard 、AIX HACMP 、SUN Sun Cluster
磁盤陣列要求:
必須和各節點保持物理連接。
實現方式:
Windows平台:在兩台節點上分別安裝數據庫軟件,在磁盤陣列上創建數據庫。主節點對磁盤陣列有控制權,同時虛擬IP工作在主節點上。用戶通過主節點訪問磁盤陣列上的數據庫。當主節點發生失敗時,MSCS服務將磁盤陣列的控制權以及虛擬IP漂移到備用節點上,並重新啟動數據庫,用戶在等待很短的時間后,可以重新訪問數據庫。
UNIX平台:在兩台節點上分別安裝數據庫軟件,在磁盤陣列上創建數據庫。磁盤陣列MOUNT在主節點上,虛擬IP也工作在主節點。用戶通過主節點訪問磁盤陣列上的數據庫。當主節點發生失敗時。HA軟件將磁盤陣列從主節點上UMOUNT下來,並將磁盤陣列MOUNT到備用節點上,同時完成虛擬IP的漂移。並重新啟動數據庫,用戶在等待很短的時間后,可以重新訪問數據庫
數據庫群集方案的原理及實現
以下簡單說明集群方式的原理及實現:
n 方案原理
|
|
|
|
|
|
|
|
|
|
Server A 主節點 |
|
|
|
|
|
|
|
|
Server B 備節點 |
|
|
|
|
|
|
|
|
|
|
Database |
ORACLE REAL APPLICATION CLUSTE高可用方式又稱為Hot FailOver。Real Application Cluster(9i版本以前稱作Oracle Parallel Server,OPS)用來在群機環境下實現多機共享數據庫,以保證應用的高可用性。同時可以自動實現並行處理及均分負載,還能實現數據庫在故障時的容錯和無斷點恢復。Real Application Cluster為大多數高要求數據庫環境提供了極高的性能和完美的糾錯功能。Real Application Cluster允許群集系統或大型並行系統中的多個節點共享同一物理數據庫。Real Application Cluster可以自動進行負載平衡、故障修復和規划停機時間,以支持高可用性應用程序。它還顯著提高了大型數據倉庫和決策支持系統的性能。與並行查詢選件結合,它還提供了節點間並行性和節點的並行性,以得到更高的性能。
n 方案評價
Oracle Real Application Clusters是多實例數據庫系統,它的工作方式是Shared Disk方式。由多個節點上的多個實例(每台節點一個)同時操作數據庫,也就是同一時間段,群集內的所有節點對共享盤陣都有操作權。在一台節點發生節點失敗時,完成切換。應用切換對前端用戶透明。Oracle Real Application Clusters可以使所有的應用程序不經修改便能獲得集群數據庫的高可用性、可伸縮性和高性能。應用程序可以將Oracle Real Application Clusters當成一個單一的系統使用,而不必再進行修改或分區,以獲取類似集群數據庫的可伸縮性。這允許用戶隨着應用及需求的不斷增長,橫向地伸縮數據庫的級數,而不必對應用程序進行修改。而且,Oracle Real Application Clusters是自適應的,能夠根據數據庫負載情況的變化進行自我調節——動態地在集群服務器上移動數據庫資源,以獲取最佳性能。
n 方案具體實現
Oracle Real Application Cluster系統幾乎支持現階段所用供應商。例如:Microsoft , Sun , HP , IBM , Compaq , Intel , Linux….。在10G以前的版本完成此種方式對硬件,操作系統及各廠家HA軟件有一定要求。在10G以后的版本oracle公司自身提供了cluster軟件——crs,可以在沒有操作系統cluster軟件支持的情況下實現RAC,但在文件存儲上有一定的限制。如果不使用操作系統的cluster軟件,oracle無法使用傳統的裸設備來存儲數據庫文件。
硬件要求:
至少兩台服務器、一個共享盤陣,每台服務器在不考慮冗余的情況下最少需要兩塊高速網卡。一塊用於各節點之間的高速通道連接,節點通過此連接發送內部通訊信息。另外一塊網卡用於和外網的連接。
軟件要求:
操作系統:RAC支持各種主流操作系統。Windows、IBM AIX、HP HP-UX、Sun Solaris、Tru64 UNIX 、linux
實現方式:
操作系統底層CLUSTER搭建好后(可選),首先安裝配置oracle crs軟件。然后在一台節點上安裝ORACLE軟件,安裝程序在這一節點安裝完成后會自動將軟件拷貝到群集中的所有節點上,然后在共享磁盤陣列上創建數據庫。安裝完成后各節點上的實例都可以訪問磁盤陣列上的數據庫。