Oracle Database中的文件可以分成多种:包括数据文件、联机日志文件、归档日志文件、临时文件及控制文件等。而这些文件在数据库运行时的I/O表现上也存在着巨大的差异:譬如控制文件的IO特点是随机读写多、日志文件和归档日志文件是顺序写、SYSTEM系统表空间总是有大量的随机读写IO、临时表空间和回滚表空间也会有大量随机读写IO。
那么针对以上不同文件的IO特征,我该如何选择合适的Raid Level呢?
著名的Cary Millsap为我们提供了以下图表可作参考:
以上1代表最佳,5代表最差
在OLTP环境中Raid 10比Raid 5更为合适,因为Raid 5的每次写出都会引发2次读取操作加上一次实际写出操作,而这2次读取操作可能与其他读取发生冲突。同时大多数情况下Raid 5会配置较小的条带化大小(stripe size),如32k或者64k,因而多块读操作可能需要跨越多个磁盘,这就增长了并行读取争用现象出现的概率。
以下为Oracle中常见IO等待事件的属性列表:
Wait Event | R/W | SIO/AIO | Single/Multi | Elapsed (with 1000+ waits per hour) |
---|---|---|---|---|
control file parallel write | W | AIO | Multi | < 15ms |
control file sequential read | R | SIO | Single | < 20 ms |
db file parallel read | R | AIO | Multi | < 20 ms |
db file scattered read | R | SIO | Multi | < 20 ms |
db file sequential read | R | SIO | Single | < 20 ms |
direct path read | R | AIO | Multi | < 20 ms |
direct path read temp | R | AIO | Multi | < 20 ms |
direct path write | W | AIO | Multi | < 15 ms |
direct path write temp | W | AIO | Multi | < 15 ms |
log file parallel write | W | AIO | Multi | < 15 ms |
Exadata Related | ||||
cell smart table scan | R | AIO | Multi | < 1 ms |
cell single block physical read | R | SIO | Single | < 1 ms |
cell multiblock physical read | R | SIO | Multi | < 6 ms |
Leave a Reply