There is no "one size fits all" when talking about configurations for any database. But I'll give you an overview of each of the RAID levels, what they do, and how they fit into the picture. Then you can decide what is best for your database.
RAID 0 - This is where datafiles are striped across mutliple disk volumes. But this is not true "RAID" since it offers no redundancy. If you lose a disk volume, you lose the data on that disk. RAID 0 does offer some nice increases in disk performance since multiple disk volumes are in use.
RAID 1 - This is where data on one disk volume is completely mirrored on another disk volume. If you lose a disk volume, then no problem. The system just gets the data from the other volume. The downside to RAID 1 is that you need twice as much disk. This isn't a terrible problem if your database is only 5 GB in size. But it can be very costly if you are building a multi-terabyte database.
RAID 0+1 (Sometimes called RAID 10) - This combines the best of the two above. Your datafiles are striped across multiple volumes and those volumes are all mirrored. You get very nice disk throughput and very good redudancy. Like RAID 1, you will need twice as much disk. If you can afford it, then RAID 0+1 is probably the "best" solution. Databases are typically write-intensive creatures. This configuration works well for database systems.
RAID 3 - This stripes data across multiple volumes. One volume is devoted to "parity bits". This bits are used to reconstruct data should you lose a data volume. Computing parity bits on write operations can slow those write operations down a bit. So database performance isn't nearly as good as RAID 0+1. But you don't need twice the disk either.
RAID 5 - This is similar to RAID 3, where parity bits are computed and used to reconstruct lost data. The difference is that the parity bits are not stored on a separate disk, they are striped across all disk, interspersed with the data. RAID 5's biggest advantage is that it uses the least amount of disk space for recovering lost data. So you don't have to buy as much disk. Unfortunately, RAID 5 has the worst write performance of all of these RAID levels. Write operations can be twice as slow compared to a normal file system. No write intensive files should be placed on RAID 5 volumes otherwise you database peroformance can really slow to a crawl. People like RAID 5 because it is the cheapest solution. But the write penalties make this RAID level unacceptable for most Oracle databases, in my opinion. That being said, I do have one multi-terabyte database that uses RAID 5 for most operations. This database gets updated once every two months. So the database writes are kept to a minimum. The database is "read-mostly". But any write intensive database files for this database (online redo logs, control files, etc.) are placed on RAID 0+1 volumes.
Hopefully, you now have an idea of what each RAID level does and a brief synopsis of their strengths and weaknesses. This should let you choose the RAID level that is best for you.
For More Information
- Dozens more answers to tough Oracle questions from Brian Peasland are available.
This was first published in August 2002