之前,一直對rac one node、Single Instance HA(SIHA)、Oracle Restart的概念沒搞清楚,今天和 和聊了之後,才明白了其中的概念:SIHA = Oracle Restart = Oracle Grid Infrastructure 安裝選項中的 Install and Configure Grid Infrastructure for a Standalone Server
因此,我們在10g中用的SIHA,在11gR2中已經重新命名成Oracle Restart,並且是包含在Grid Infrastructure中。
而rac one node則是另外的一個概念了,是11gR2才出現的。它是oracle提供的一種類似虛擬化技術,將各個物理機器的資源整合起來,成一個大的cluster。概括的說,它能整合你的伺服器,提高failover能力,提供load balance能力,另外它能實現資料庫儲存的虛擬化,資料庫環境的標準化和避免升級的downtime。
以下是一個rac one node 的架構圖:
從圖上我們看出,rac one node,有3個物理主機,Server A、Server B、Server C,這3個物理主機組成一個single cluster,在3個主機上,可以有5個不同的single instance的database,DB1和DB2 host在Server A上,DB3 host在Server B上,DB 4和DB 5 host在Server C上。各個資料庫使用共享儲存(common share storage)。
對於single cluster上的各個資料庫,rac one node能提供以下優勢:
1.為同一個主機上的各個資料庫Caging不同比例的CPU(見下圖)。我的理解是這個和單個資料庫上的資源管理器中的resource limit功能類似,限定資料庫使用的cpu資源。不過原來的那個是使用者分不同的資源組,這個,是按照資料庫分不同的資源組了:
2.提供failover,注意這個是提供了伺服器級別和資料庫級別——雙重級別的failover。而不是像一般的虛擬機器,只是在伺服器級別提供failover,如果僅是資料庫down了,不會提供failover。
這功能透過oracle clusterware來實現。
3.load banlance。oracle提供一種叫做Omotion的特性,來實現在業務忙時,從忙的主機將資料庫透明的轉移到不忙的主機。
在上圖中,DB 2原來跑在Server A上,此時Server A負載較重,Omotion能實現在Server A和Server B同步的功能,在Server A和Server B上同時存在DB 2的例項,但是是一個database。(2個instance,一個database,且能負載均衡,這個就類似與rac了。只不過,rac是instance A和instance B,這個是2個一樣的instance。我想,這就是rac one node的來由吧,是個rac,但是同一個instance,即一個node。)注意,在此時,Server A上DB 2和Server B上的DB 2,能實現類似rac 的cache fusion——memory mirroring;同時,由於Server A負載重,原來在Server A上的事務,也會遷移到Server B上,直到所以的連線完成遷移後,Server A上的 DB 2的instance會關閉。——instance遷移的時間不會太長,即出現2個instance B的時間,不會太長。
不過,我很懷疑,這個遷移的依據是什麼,如果僅僅是根據rac的load banlance原理,資料庫在2個伺服器間遷移來遷移去,不是很方便管理。如果我的Server之間的配置不同,一個超大的記憶體,忙;一個超小的記憶體,閒——這個時候instance是怎麼遷移的呢?
4.保證系統和資料庫的線上率。當主機硬體升級,或者打os patch,可以利用Omotion進行遷移。
5. 其他優勢。由於rac one node使用的共享儲存是ASM,因此ASM有的一些優勢它也具有。
總結:從上面的幾點優勢來看,rac one node確實比較吸引人,能提供較高的高可用保護,另外,新的Omotion的特性,可以用於load banlance和遷移。——這個,我目前還找不到可以替代的方案來實現資料庫的memory mirroring。