A brief discussion on Oracle ASM and some of its advantages over other file systems.
Database centric file system
only used for managing database files
Requires a certain amount of tuning
Not suitable for all applications
Current recommendation is to allow ASM handle raid mirroring rather than let hardware handle it
Probably shouldn’t actually replace hardware raid with it.
ASM is now a mature technology with 11g and 12c
Unofficial benchmarks suggest that ASM is lightning fast, especially once tuned.
Requires very little actual interaction for the dbas.
There is practically no difference at all from within the rdbms
ASM replaces the physical storage level for ‘database files’
datafiles, tempfiles, online logfiles, controlfile
Recovery related files and the FRA
spfile and passwordfile (12c)
Non database files (conventional storage)
The problem with o/s managed filesystems tends to be wasted IO
ASM reduces fragmentation and allows you to optimize allocation units thereby reducing IO wastage.
If you are having trouble getting your head around the basics of Oracles Architecture, this video does a good job of simplifying things and making it easy to remember by breaking it down and describing it via everyday examples. You can skip to around 2:30 for the real start of the video.
Datafiles – on disk
read to memory
data – buffer cache
sql goes to shared pool – library cache
executed sql goes to redo log buffer
Operations on the data always happen in memory. (database buffer)
Queries gets stored in the shared library
Subsequent queries (repeats) can be retrieved directly from the shared library and the buffer cache.
On entering data, process has to wait until data is written to datafile. This is inefficient as writing data out is slow.
Faster way is to use a scrap of paper to quickly jot it down then when have time write it to the ledger
So data goes to memory then the redo buffer then on a checkpoint, gets written to disk.
Once it is in the redo log, it is considered finished.
Before modifying data, the old values are recorded in the rollback segment
When a transaction is canceled, it is rolled back by retrieving the old values from the rollback segment and putting them back.