技术相关:Oracle系统的RAID选择

技术相关:Oracle系统的RAID选择
--王珏原创

    有很多“Oracle砖家”建议用户使用RAID 5。我非常不赞成。我在去年就已经针对这个噩梦写过一篇文章(参见: Oracle:Oracle数据搬出RAID 5 )。

    Oracle的推荐的IO做法是:SAME (Stripe and Mirror Everywhere,在任何地方都是用“条带+镜像”,当然就是 RAID 1+0 ) ,而作为硬件供应商又总是顽固的坚持RAID 5可以用在OLTP类型的Oracle中。其实这是“商业利益”在作怪,作为Oracle当然不用理会你买什么硬件,关键是别把性能问题归结到 Oracle软件本身才好;而硬件厂商当然要炫耀其硬件性能如何了得,技术如何先进。
     Oracle似乎也发现大家都不爱用RAID1+0(容量缩减一般,成本太高),因此在10g中引入了ASM“自动存储管理”(Automatic Storage Management,参见:Automated Storage Management ASM configuration ),而 Oracle ASM背后的基础就是RAID1+0,Oracle在 大力推荐ASM的背后目的其实就是为了利用RAID1+0来“维持”Oracle系统的I/O性能。
    Oracle关于RAID的推荐如下:RAID Recommendations (From Metalink NOTE: 45635.1)
RAIDRaid类型Control FileDatabase FileRedo Log FileArchive Log File
0条带
避免可以避免避免
1镜像
最佳可以最佳最佳
1+0条带+镜像可以最佳避免避免
3条带+静态奇偶校验可以可以避免避免
5条带+轮转的奇偶校验可以 如果RAID1+0不可用也可以避免避免
    为什么RAID 5不建议使用在有大量更新的Oracle系统中呢?这要从RAID 5的原理说起(参见:RAID 5术语解释)。
RAID 5 是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
    简单来说,就是RAID 5在写入的时候需要计算数据的“奇偶校验信息”一并写入到RAID 5的其他磁盘上,由于这个计算过程,写性能会大大降低;而在读取的时候并不需要 计算这个过程,因此“读”的时候可以多个磁盘同时读,性能当然较单个磁盘要好很多,读性能差不多和RAID 0一样

    其实,由于一些新技术的出现,目前已经支持RAID 5使用在存在大量更新操作的Oracle中了,参见:
    RAID5 now acceptable for Oracle --RAID5已经被Oracle接受。
    databases Using RAID5 with Oracle?    --Oracle可以使用RAID 5吗?
    Why Modern RAID 5 is Ideal for Oracle Databases--为什么现代RAID 5是Oracle数据库的理想存储?

    但要知道,这都是些“新技术”。其实简单来说,就是如何规避“ 计算数据的奇偶校验信息一并写入到RAID 5的其他磁盘上”的 写性能损失。比如: Hitachi TagmaStore RAID5 "Universal Storage Platform"使用256G内存作为RAID 5的cache,来规避上述的 写性能损失。
    

    作为普通用户的我们,你买得起那么昂贵的存储设备吗?你有那么大的Cache吗?(如果为了使用RAID5 要买如此昂贵的设备,还不如直接使用RAID 1+0,除非你的Oracle有“N多T”或者“N多P”)。
    因此也就诞生了 BAARF “Battle Against Any Raid Five”--向任何形式的RAID 5开战,这么个奇怪的组织。

    因此关于Oracle的RAID选择,我的建议就是采用RAID1+0;

    因此关于Oracle 存储设计的正确做法是:( I/O Configuration and Design
  1. 一般情况,把你所有的盘做成一个RAID10,然后把所有文件都放置上面就ok了。
    • RAID最小stripe depth设定原则
    1. 随机读写频繁:db_block_size*2
    2. 顺序读频繁:DB_FILE_MULTIBLOCK_READ_COUNT*db_block_size
  2. 如果,LVM不支持动态扩展,或者如果你只就几块单盘,不够条件组成RAID。
    1. 数据文件和索引没有必要分开,因为他们是顺序读取的。
    2. Redo log文件单独放到一个盘上,且千万不可放置到RAID5上。
参考文献:
Oracle: Oracle数据搬出RAID 5









Link URL: http://blog.sina.com.cn/s/blog_592060b50100d0le.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/91771/viewspace-609562/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/91771/viewspace-609562/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值