RAID,即廉價磁盤冗余陣列,是一種將相同的數據放在多個硬盤上不同位置的方法。RAID有很多不同的類型(叫做RAID“級”),每種類型都有其相對的優勢和劣勢。
對於Oracle9i的數據庫而言,很多RAID方案都不具備Oracle數據庫所要求的高性能。大多數Oracle的專家都會選擇一種結合了鏡像(mirroring)和數據塊分段(block-level striping)的RAID方案。
要注意的是,使用RAID並不能防止磁盤災難性的故障,這一點極其重要。Oracle專門推薦將所有的付諸使用的數據庫都運行在ARCHIVELOG模式下,而不去考慮RAID的架構。Oracle還建議定期進行Oracle的備份。
要記住,I/O子系統由很多組件組成——包括控制器、通道、磁盤適配器,以及SCSI適配器——這些組件中的任何一者發生崩潰都會導致你數據庫無法挽回的磁盤錯誤。現在讓我們來看看Oracle數據庫最常用的RAID架構吧。
RAID 0
RAID 0通常指的是數據塊的分段技術,它是在磁盤設備上實現Oracle數據庫負載平衡的卓越方法,但是由於它沒有提供數據的備份,因而完全無法提供高可用性。和手動的數據文件分段(你要手動將Oracle的表格空間分割放進小的數據文件裡)不一樣,Oracle會利用RAID 0自動地將一個數據塊進行分段並一次放進所有的磁盤設備裡。在這種方式下,每個數據文件在每個磁盤上都存有其一部分內容,這樣磁盤I/O的負載會變得非常平衡。
RAID 1
RAID 1也叫做磁盤鏡像。由於磁盤都是被相互復制,所以RAID 1可以做成雙重或者三重鏡像。根據RAID 1架構的設計,如果一個磁盤發生錯誤,那麼I/O子系統就會自動切換到各個復制磁盤中的一個上,而不需要中斷服務。Oracle的專家會在要求高可用性的時候使用RAID 1。對於三重鏡像而言,Oracle數據庫的平均無故障時間(mean time to failure,MTTF)可以長達數十年。
RAID 0+1(RAID 10)
RAID 0+1是數據塊分段和磁盤鏡像的組合。RAID 0+1一出現就淘汰了Oracle這一層的分段技術,因為RAID 0+1的分段是在數據塊這一層的,它分配表格塊的方式是:每個磁盤上一個數據塊,跨越每個磁盤設備。
RAID 0+1也是一個遠比(單純的)分段技術好得多的替代方案,因為它將負載平均地分配到所有的磁盤設備上,也就是說負載的上升和降低都被平均地分配到了所有的磁盤上。這就減輕了Oracle系統管理員在各個磁盤上手動地進行Oracle表格分段的負擔。
RAID 5
有些更新的基於硬件的RAID 5存儲方案極其適合於作為數據倉庫。RAID 5是打造Oracle數據倉庫的好方法,因為在這裡負載的速度不是很重要,而且系統I/O的主要職責在於只讀的活動。