This problem has troubled me a lot, and I tried lot of places without a satisfactory answer. When we configure
an Oracle database on raw volumes, our aim is to avoid data loss that might happen in case of file-system buffering. But all the same, aren't there chances of data loss in a database that has been created on raw volumes and also configured with async I/O? Secondly, do the various Oracle parameters like size of data block and DB_FILE_MULTIBLOCK_READ_COUNT, etc. have any importance in case of raw partitions? If yes, how?
I don't believe there is any chance of data loss when using raw devices due to asyncronous I/O. Your reasons for using raw devices shouldn't be based on worries over data loss, rather, the raw devices will give you some performance gain. In a very write intensive environment, raw devices should buy you some performance gains. I have an issue with whether there is a performance gain when using a disk array with a large cache(ex. XP256 or EMC), but I have never found anyone at HP or EMC that would give me a definitive answer. I like to take a look at the bigger picture and look at the extra costs of administration in regards to database management (it's easy to overlook the fact that a raw device is being used). Turning on autoextend on a datafile when using a cooked filesystem can sure save you some headaches.
As for the parameters to use with the raw device, the only issue should be with the size of the data "chunk" at the disk level. For example, the XP deals with data in 512K chunks, therefore DB_BLOCK_SIZE * DB_MULTIBLOCK_READ_COUNT < 512K and DB_BLOCK_SIZE * HASH_MULTIBLOCK_IO_COUNT < 512K.
Dig deeper on Oracle DBA jobs, training and certification
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.