What`s the Best Raid Level for ORACLE??


实际上硬件背景与需求很简单: 

硬件环境:一台DELL R710     2×4核cpu     24g 内存      6×146g硬盘(4块做RAID5,2块分别做2个RAID0),无磁盘柜
软件环境:centos5.7 x64   ,o racle11r2
我的考虑的几个问题
    1.首先保证online redo 性能,control file 性能
    2.由于是单实例,无data guard,则 必须保证RMAN备份的完整与可用,避免因disk failure 导致的备份丢失
    3.OS所在分区具有一定的冗余能力
    4.datafile具有较好的吞吐性能,最好具备一定冗余能力
    5.暂不考虑使用裸设备。
    6.为避免checkpoint not complete提供更好的硬件条件 (将单独总结)
 
 
我的思路
4 disks     RAID 5     438G       OS、datafile、RMAN backup .......
1 disk       RAID 0     146G       online redo 1,2,3 、 control1
1 disk       RAID 0     146G       online redo 1,2,3 、 control1

我的问题
 在目前硬盘数量(6块)的前提下,我的RAID部署如何还能优化? What`s the Best Raid Level for ORACLE??
看似是一个资源紧缺前提下的规划方案,但实际上是一个 单实例部署的最低配置规范


找到的相关理论依据:
        Oracle Database中的文件可以分成多种:包括数据文件、联机日志文件、归档日志文件、临时文件及控制文件等。而这些文件在数据库运行时的I/O表现上也存在着巨大的差异:譬如控制文件的IO特点是随机读写多、日志文件和归档日志文件是顺序写、SYSTEM系统表空间总是有大量的随机读写IO、临时表空间和回滚表空间也会有大量随机读写IO。
首先著名的 Cary Millsap为我们提供了以下图表可作参考:

 

 

以上1代表最佳,5代表最差

在OLTP环境中Raid 10比Raid 5更为合适,因为Raid 5的每次写出都会引发2次读取操作加上一次实际写出操作,而这2次读取操作可能与其他读取发生冲突。同时大多数情况下Raid 5会配置较小的条带化大小(stripe size),如32k或者64k,因而多块读操作可能需要跨越多个磁盘,这就增长了并行读取争用现象出现的概率。

以下为Oracle中常见IO等待事件的属性列表:
Wait EventR/WSIO/AIOSingle/MultiElapsed (with 1000+ waits per hour)
control file parallel writeWAIOMulti< 15ms
control file sequential readRSIOSingle< 20 ms
db file parallel readRAIOMulti< 20 ms
db file scattered readRSIOMulti< 20 ms
db file sequential readRSIOSingle< 20 ms
direct path readRAIOMulti< 20 ms
direct path read tempRAIOMulti< 20 ms
direct path writeWAIOMulti< 15 ms
direct path write tempWAIOMulti< 15 ms
log file parallel writeWAIOMulti< 15 ms
     
Exadata Related    
     
cell smart table scanRAIOMulti< 1 ms
cell single block physical readRSIOSingle< 1 ms
cell multiblock physical readRSIOMulti< 6 ms

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

    

     

注:
RAID 10 和 RAID 01 的区别 
RAID10 和 RAID01 是将磁盘按照两种不同的方式进行的逻辑组合。
 我们都以四块硬盘做RIAD 来细说他们的区别:
         RAID10 是先将四块硬盘在纵向上分别两两做镜像,镜像后再在横向上做条带。简而言之:RAID10 是先做镜像后做条带。在这种情况下,如果只是坏掉其中的一个硬盘,对RAID组的影响都不是非常大,只要不是同时坏掉其中的一个硬盘和他的镜像盘,RAID组都不会崩溃。
        RAID01 是先将四块硬盘中横向上两两做条带,然后再纵向上做镜像。简而言之:先条带后镜像。这种情况下如果两个条带上有任意两块硬盘坏掉了,则整个RAID组都将崩溃了。不管 发生介质损坏的两块硬盘是否是镜像
盘。
      RAID10 和 RAID01 在读和写的性能上没有太大的差别,从发生故障的概率上看,RAID01 是远大于RAID10 的。一般情况下选择RAID10的情况会多些。

 

本次结论:

4 disks     RAID 10   292G       OS、datafile、RMAN backup .......
1 disk       RAID 0     146G       online redo 1,2,3 、 control1
1 disk       RAID 0     146G       online redo 1,2,3 、 control1
 
相比之前的方案,具备冗余能力的分区,减少了146G,但是(在当前磁盘数量前提下)具有更好的吞吐能力。是个可行方案。
 
当我们想同时保证冗余性,与吞吐能力时,就必须按照各个数据库部件放在合适的RAID上。在此方案中, RMAN备份集与归档日志,在线日志应该是核心被保护对象。在具备一定冗余能力的前提下,如果再进行定期的备份集迁移,或者借助dataguard能起到不错的容灾能力。
当然,这一切方案的设计与实施的前提,仍然取决于我们对ORACLE特点的理解与驾驭能力!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值