不合适的数据库存储方案对性能影响蛮大的,方案很重要。业界的常见方案没得说选择RAID 5或6的估计最多,因为它性能和容错方面相对比较平衡。不过 如果充份考虑到Oracle数据库各个文件的特性,可以看看我提的 更为理想化的方案。
数据文件
|
方案
|
重做日志(REDO)
|
RAID 0
|
系统表空间,临时表空间,UNDO表空间
|
RAID 1 或RAID 10
|
控制文件
|
RAID 10(即0+1)
|
其它表空间数据文件
|
RAID 5或6
|
理由:
REDO
非常忙碌,对I/O要求高,加上它本身就分REDO组,就是说有冗余. 所以选择RAID 0这种性能最高的方案。
系统表空间,临时表空间,UNDO表空间 :
这几个也非常忙碌,对I/O要求也高,但数据库并没有给它们分组,因此需要在保住它们的性能外,能有一个备份最好,
所以RAID 1或RAID 10最合适。
控制文件
它的地位对数据库太重要了,别看它个头不大,管得可多,I/O实际上很高的,这就是为什么很多书上会说,
最好把控制文件及副本分散在不同副本上的原因。 它本身有冗余,似于RAID 0 比较合适。
但考虑到它的重要性,还是多做一份镜像吧, 所以RAID 10( 即RAID0 +RAID 1)的方案最能保障性能和安全,因为它
在一块硬盘受损时,不会受影响,但比较耗空间。
其它数据文件
就丢给 RAID 5或6吧,这两种平衡性比较好。
是不是有点麻烦,对 OLTP应用的话,个人认为算是一个比较理想化的方案,其实大部份情况是SA已经把硬件和系统都弄好,
DBA只要去负责安装数据库就行了。 哈哈。
附上 RAID 说明:
RAID 10是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。
RAID 01则是跟RAID 10的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。
当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。
MAIL:
[email protected]
Blog:http://blog.csdn.net/xcl168
作者:xcltapestry 发表于2013-12-8 15:56:39
原文链接