我们在部署服务器时通常都免不了RAID阵列级别的选择,RAID技术发展到今天已经有数十种之多了,但我们在生产系统上常用的也就只有几种,如0,1,5,0+1。读者朋友可能对各个级别的RAID原理已经非常熟悉了,甚至能背诵出来,但面临真正在生产系统中选择最适合应用系统的RAID级别时,可能没多少心理有底,本文就oracle数据库服务器在选择RAID阵列级别时做一个介绍,希望对还心存疑虑的人们吃一粒定心丸。
首先,还是来看看常用的几个RAID级别之间的优缺点。
RAID级 |
优缺点描述 |
不用RAID |
任何RAID都有一定的管理开销,如果你最需要的是数据写入速度,且不需要为保护数据,那么你就可以选择不使用RAID,如果你有3块硬盘,那可以将其中一块用于安装操作系统和数据库软件,第二块用作存储数据文件,第三块用作存储日志文件,这样系统整体性能会非常好,但任何一块硬盘坏掉,系统维护时间都比较长,当然,如果你还有更多的硬盘,那可以将每块硬盘承担的工作进一步细化,如专门拿一块存储控制文件和参数文件,而且还可以将多个数据文件分开,每个文件一块硬盘,这样性能只能说是大大的好。 |
RAID0 |
熟悉RAID 0的人都知道,它的读写速度是最高的,因为数据是分成小块后,跨多块硬盘同步写入多块硬盘的,这样写入速度就非常快了,如果你不信,可以将三块硬盘组成RAID 0,然后安装操作系统,你会发现安装时间减少了好多。当然,读取数据的速度相对单块硬盘也会大幅提升,不过这种RAID用的人不多,因为一旦其中一块硬盘坏掉,数据恢复可能就得请专业的恢复公司了。RAID 0非常适合那些作为代理服务器的缓存使用,要的就是速度。 |
RAID1 |
RAID 1设计的目的就是为了保证数据的安全,通常我们称之为镜像,即如果你将两块硬盘组成RAID 1,这时你在操作系统中看到的硬盘大小其实只有一块的大小,另一块都做镜像了,所以这种情况下,一份数据保存了两份,允许坏掉其中一块而不影响操作系统和应用程序的正常使用,但它的缺点是写入速度都较单块硬盘有所下降,毕竟写操作时要写两次,肯定会消耗一定量的CPU时间片的。这种RAID适合那些看重数据安全的应用,如单位财务软件用机。 |
RAID0+1 |
从其名字就可以看出来,这是RAID 0和RAID 1技术的结合产物,它同时利用了RAID 0的高速特性和RAID 1的镜像功能,满足了对速度和数据安全同样重视的用户的需求。要实现这种RAID,最少要4块硬盘,允许其中一块硬盘坏掉而不影响操作系统和应用程序。特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融等 |
RAID 5 |
RAID 5可以理解为RAID 0和RAID 1的折中方案,RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。要实现这种RAID,最少要3块硬盘,允许其中一块硬盘坏掉而不影响操作系统和应用程序。 |
在准备安装Oracle的服务器上,究竟选择哪种RAID合适呢,我要告诉你的是,没有定论,要想使你的Oracle服务器最终性能比较理想,下面是我总结的一个可行的办法。
先规划一下哪些磁盘存放什么文件,然后再看这些文件的读写性能要求,按照性能要求再做对应的RAID级别阵列。下面是Oracle中涉及到的文件类型及我们推荐使用的RAID级别,并阐述了推荐的理由:
文件类型 |
推荐RAID级别 |
推荐理由 |
控制文件 |
不用RAID RAID 0 RAID 0+1 |
我推荐了3种RAID级别来存储控制文件。 |
在线重做 |
不用RAID RAID 0 RAID 0+1 |
与控制文件类似,在线重做日志文件更新也非常频繁,必须考虑 使用速度快的RAID级别。需要注意的是建议使用多个在线重做日志文件。 |
临时数据 |
不用RAID RAID 0 |
临时文件注重的是快速访问,不关心它的可靠性如何,如果数据文件丢失了也可以原地快速重建的。所以这里我推荐使用RAID 0或不使用RAID。 |
归档日志 |
不用RAID RAID 0 RAID 0+1 |
归档日志时,归档进程可能会消耗很多系统资源,所以速度越快越好,如果使用RAID 0或不使用RAID,建议多做几份拷贝,如果使用RAID 0+1,那你就高枕无忧了。 |
回滚/撤销 |
RAID 0+1 |
这些文件需要恒定不变的I/O,并且数据需要保护,因为Oracle不能对其提供多份拷贝,如控制文件那样,所要采取硬件的形式提供多一份保护,故我推荐的是RAID 0+1 |
数据文件 |
RAID 5 RAID 0+1 |
数据文件的大部分I/O操作都是在缓存中进行的,物理写入操作是在后台进行的,因此RAID 5既可以减少成本,又不影响性能,推荐它,如果是I/O操作非常频繁,RAID 5已经感觉速度较慢,那就采取RAID 0+1吧。 |
可能有的人看到这里会有疑问了,按照这样设计,那得用多少硬盘呀,是的,要想减少维护时间,增强数据安全性,保证应用性能,的确需要很多硬盘组成不同形式的RAID。如果你还有疑问,下面是在空间规划时可以考虑的一些原则,可以参考:
◆如果你的预算充足,可以为所有Oracle文件采用RAID 0+1分开存储的方式。
◆为了减少成本,可以将数据文件放在RAID 5阵列上。
◆如果还想再减少一点成本,可以将所有的数据文件都放在RAID 5阵列上。
◆如果都还不行,那可以将归档日志文件和回滚/重做表空间放在RAID 5阵列上。
◆最后,只能将所有的文件都使用RAID 5来存放了。