1. 程式人生 > >oracle 雙機熱備,oracle dataguard 和oracle rac的區別和聯絡

oracle 雙機熱備,oracle dataguard 和oracle rac的區別和聯絡

Data Guard 是Oracle的遠端複製技術,它有物理和邏輯之分,但是總的來說,它需要在異地有一套獨立的系統,這是兩套硬體配置可以不同的系統,但是這兩套系統的軟體結構保持一致,包括軟體的版本,目錄儲存結構,以及資料的同步(其實也不是實時同步的),這兩套系統之間只要網路是通的就可以了,是一種異地容災的解決方案。而對於RAC,則是本地的高可用叢集,每個節點用來分擔不用或相同的應用,以解決運算效率低下,單節點故障這樣的問題,它是幾臺硬體相同或不相同的伺服器,加一個SAN(共享的儲存區域)來構成的。

Data Guard由兩個多兩個以上的獨立的資料庫構成,他們各自有各自的儲存,Oracle負責他們之間的切換和資料同步
雙機熱備由兩臺計算機和一個共享儲存裝置構成,通過第三方軟體(HA Rose等)實現切換,不需要做資料同步

建議應用RAC+Dataguard ,RAC保證可用性,Dataguard在RAC組獨立磁碟上和另外一臺主機上,保證可靠性。

雙機就是人們所說的雙機熱備,資料庫放在共享裝置上,同一時刻只能有一臺主機接管,另一臺待用,這種方式只能保護例項,不能保護db,而且備機長期處於閒置,對資源是一種極大的浪費!

如果原本是雙機,建議轉換為RAC
規劃好應用,DML操作從一個節點跑,查詢操作從另一個節點跑,通常不需要太多調優就可以利用閒置的另外一臺機器了

RAC伺服器共用一套儲存,同時提供服務,沒有主備之分.宕一個其它的可以繼續服務.
雙機熱備,共用一套儲存,一個提供服務一個備份,主機宕了切換到備份伺服器提供服務.
data guard 完全兩套系統,儲存是單獨的,用日誌同步.

RAC: 例項層冗餘
DG :資料庫層冗餘
熱備:僅僅只是資料冗餘

個人理解:
RAC :例項冗餘,而且還可以做到資料庫的loadbalance。
DG :多份資料,所以能做到資料冗餘,但是隻有主節點提供服務。
熱備:與RAC最大的差異可能就是RAC有多個例項,一個數據庫。而熱備只是一個例項,一個數據庫。所以做不了併發和loadbalance。

Oracle RAC只是做Oracle的應用,rose,legato還可以做其它的

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 庫的使用已經拓展出了其他更多的用途,比如備份,跑報表等等。