Gc Buffer Busy Nightmare
Last week i was facing some irregular contentions issues in one of the RAC cluster that i manage, the problem is very common for DBAs that administer Oracle RAC. The wait “gc buffer busy“ is one of the things that you really want to avoid is RAC because it could lead you a total cluster HANG when sessions including oracle internals, are waiting for this.
When a session request changes to blocks that are used by another session either in the local or remote instance, that session stays in a loop waiting for the LMS process to release the lock. If multiple sessions also tries the update the same block, that block will be transfered across the instances and this may lead to what i call in spanish “Un tranque“.
There are a couple of reasons that may increase these waits in a RAC environment and they are very well documented so you can review them if you are experiencing this situation. My problem was caused by highly used sequences that had the default cache size. Setting a higher value for those sequences resolve the issue.
Here are good articles that may help you really understand this:
http://orainternals.wordpress.com/2010/09/27/gc-buffer-busy-waits/
http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1860222500346889715
Regards
Emmanuel