Oracle ASM

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
High performance
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)
     ADR files
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.

A simple guide to Oracle Database Architecture

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.

What is Oracle Exadata


Data appliance

  • Server with preinstalled and pre optimised database
  • Hardware designed to work with the database software specifically
  • Pre configured clustered database server
Exalogic is a preconfigured clustered application server
Exadata is a pre configured clustered database server
There are other products but they are targeted at OLAP specifically (read rather than write)
Exadata supports OLTP and OLAP
The first version of Exadata was created in 2008 in collaboration with HP.
Oracle enterprise linux was the operating system used.
In 2010, Oracle started using sun hardware (after oracle bought them)
Exadata is claimed to be fastest db server in the world.
You can use either solaris 11 express or OEL 5.5
What exactly is Exadata?
Actually a cluster of machines
2 kinds of servers – db server and storage server
Storage server can often return results from memory without touching the db.
Available in :
Full rack – 8 db servers – 14 storace servers
Half rack 4,db, 7 storage
Quarter rack – 2 db, 3 storage
The size is the same, just what is in it changes
You can chose specs of the actual servers.

Exadata Smart Scan

This is a pretty cheesy presentation but it gets some interesting points about exadata and smart scan over in only 3 minutes.


Exadata offloads work to its storage servers which reduces the data that needs to travel over the network to the database servers.

For example, the storage servers filter out rows that are irrelevant to the querry before returning data to the db server for processing.
Another feature is data compresson allowing exadata machines to achieve data transfer speeds of up to 500Gb/s between db and storage servers.

Perspectives on Exadata

This is a great discussion on and around Oracle Exadata by 2 performance tuning experts.




A very relaxed presentation on the ins and outs of Exadata from a performance tuning and optimization perspective.Skip to about 10 mins in to get past the introductions.Exadata isn’t a solution to all performance problems. You can still fill up the bigger more powerfull server and you have the same issues that you had when you filled up a smaller box.

There is always faster hardware.

Most apps do more than the business need requires. Giving more data to the user or carrying more data than is needed through the calulations

Filter earlier to reduce unwanted work.

Pushing that sort of work down to the hardware level makes things much faster.

Big pipe between the storage and the db buffer cache.

Difficult to predict how fast an exadata machine will perform a particular opperation because there are ahost of features that kick in at particular times.

Inconsistency in execution times can vary a lot especially before a system gets up to speed.

Documentation for exadata is not generally available to the public.
This makes learning etc difficult without buying a exadata box.
The machine had incredible performance but you need to set it up properly in order to get the most out of it.
Its much easier to optimize for the new machine at the time that you put the application on there.
Any box is likely to get filled up eventually so you should get the most out of it i.e. optimize each application.
Everything is pre-engineered by Oracle so you don’t have to configure lots of different components. In many ways like Apple where their products just work in the way that they are supposed to do.
Questions of engineered systems vs open systems and if it is a cyclical pattern.
Engineered system is low down on the list of benefits of Exadata.
The storage software is one of the biggest.
The project and knowledge required to set up your own system is often not viewed favorably within an organization where as Exadata is pre set up to give you exactly what you need to run an Oracle system.
Main changes that could be made is increased transparency because Exadata works very well but letting more people gain exposure to it and find out exactly how everything works would let them get the most out of it.
There are advantage’s to having a single vendor stack because support has to come from them and there can be no finger pointing.
Apps built to run on multiple dbs tend not to work very well anyway so you are locked in to an extent regardless.