1. 程式人生 > >HA RAC Dataguard的區別

HA RAC Dataguard的區別

HA 是High Availability 的首字母組合,翻譯過來,可以叫做高可用,或高可用性,高可用(環境)。我覺得應該說HA是一個觀念而不是一項或一系列具體技術,就象網格一樣。作過系統方案就知道了,評價系統的效能當中就有一項高可用。廣義的高可用涉及到系統的各個方面,簡單來說,讓系統不會中斷執行,就是高可用。包括軟體的高可用,硬體的高可用,網路的高可用等等。具體實現的方案包括作業系統的叢集,資料庫的叢集,硬體的冗餘,網路的冗餘等等。做HA方面的軟體,有IBM的HACMP(很多常用AIX的人,常說的HA就指HACMP,亂啊)、SUN的Sun Cluster、HP的MC/SG等。

在2000年以前,大家談HA,大部分時候說的是作業系統一級的雙機熱備,主流產品當時有IBM HACMP4.1,HP的MC/SG啥版本忘了,sun的系統很多人不用VCS,用的是一個叫dataware的東西。現在很多人眼中的HA也還是這樣。時至今日,HA包括的東西可就多了,先不說其他方面,單就資料庫,單就Oracle,與HA相關的產品先後有:高階複製(AdvanceRepication)、OPS/RAC(Real Application Cluster)、資料衛士(Data Guard)、oracle流(Oracle Streams)、分割槽(Oracle Partition)這樣數款產品。照這麼說,RAC只是HA這個概念下的一個具體產品而已!目前為止,只有RAC和分割槽是Oracle要收取 licence的,其他的,只要給經驗豐富的第三方實施方付一定的規劃/設計及部署費用就可以了;當然,也可以自己照著文件依葫蘆畫瓢,但是這樣弄出的環境是否能達到高可用就難說了。事實上,大部分人所說的HA,還是狹義上的HA,也就是OS一級的雙機熱備。

RAC
 是real application cluster的簡稱,它是在多個主機上執行一個數據庫的技術,即是一個db多個instance。它的好處是可以由多個性能較差的機器構建出一個整體效能很好的叢集,並且實現了負載均衡,那麼當一個節點出現故障時,其上的服務會自動轉到另外的節點去執行,使用者甚至感覺不到什麼。

雙機熱備(HA)和RAC有啥區別呢?

1、對於硬體來說,基本上一樣,共享儲存、光纖線(也有還用SCSI線的)、多臺小型機(可以做多節點的相互熱備,也可以做多節點的RAC)、光纖交換機(如果是用光纖卡的話);但做RAC,在主機之間,最好使用高頻寬網路交換機(雖然不用也可以做成);因此硬體成本相差不大。
2、軟體呢,差別可不小。如果是雙機熱備,必須買作業系統級的雙機管理軟體;如果是RAC,目前還是建議購買雙機管理軟體(儘管10g的crs+asm可以擺脫雙機軟體了,但ASM目前實在太難伺候了),當然還得買RAC license。
3、日常維護。RAC要求的技術含量更高,也應該更勤快。最關鍵的是得買oracle服務,否則遇到有些問題(bug),你就比單機還不高可用了。
4、優缺點。這個,看看RAC的官方論述吧。如果能用好,確實是很有好處的。目前我們的40多個客戶的使用情況來看,RAC確實大大降低了他們的downtime,另一方面可以說就是提高了生產力咯。

Dataguard
 一般是出於容災的目的。是主資料庫的備用庫(standby 庫)通過自動傳送和接受archivelog,並且在dataguard庫自動apply 這些log,從而達到和主資料庫同步的目的,可能dataguard 庫是建立的異地的,當主庫所在的區域出現了致命性的災難時(火災、地震等),主庫沒法修復時,這時可以切換dataguard 為主庫的模式,對外提供服務,而它的資料基本是當前最新的。目前可能大家對於 dataguard 庫的使用已經拓展出了其他更多的用途,比如備份,跑報表等等