Archive for June, 2009

RAC, parallel query and udpsnoop

I presented about various performance myths in my 'battle of the nodes' presentation. One of the myth was that how spawning parallel query slaves across multiple RAC instances can cause major bottleneck in the interconnect. In fact, that myth was direct result of a lessons learnt presentation from a client engagement. Client was suffering from performance issues with enormous global cache waits running in to 30+ms average response time for global cache CR traffic and ...

Resolving corruption issue with file_hdrs dump

June 18, 2009  |   Blog,corruption,Oracle database internals,recovery   |     |   6 Comments

One of our client had an interesting and bizarre corruption issue. Intermittently their database is corrupted. ORA-01171: datafile 178 going offline due to error advancing checkpoint ORA-01122: database file 178 failed verification check ORA-01110: data file 178: '/app/u04/oradata/somedb/some_data_01.dbf' ORA-01251: Unknown File Header Version read for file number 178 Error message printed above indicates that file header is corrupted. This is not a one time issue and recurring many times in the past 45 days or so. Database become unusable and ...

Library cache lock and library cache pin waits

June 02, 2009  |   Blog,Oracle database internals,Performance tuning   |     |   18 Comments

I encountered few customer issues centered around library cache lock and library cache pin waits. Library cache lock and pin waits can hang instance, and in few cases, whole clusters of RAC instances can be hung due to library cache lock and pin waits. Why Library cache locks are needed? Library cache locks aka parse locks are needed to maintain dependency mechanism between objects and their dependent objects like SQL etc. For example, if an ...