在Oracle里使用RAID
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的主要职责在于只读的活动。