gc buffer busy: Wait (RAC): contention for a cache-fusion block being transferred between instances
OracleWhat does it mean?
In a RAC environment, a session is waiting to access a global block that is being transferred via cache fusion to/from another instance or is held busy by that instance.
Why does it happen?
The same hot blocks shared between RAC nodes (cross-instance hot block), interconnect latency/bottleneck, cross-node contention on indexes with sequential keys, or unbalanced workload distribution.
How to fix it
Find the affected segments with v$segment_statistics and GV$ views. Check interconnect health and latency (private, fast network). Use reverse key or hash partitioning for hot indexes. Reduce cross-node contention on the same blocks by separating the workload across nodes by service.
More from this engine
- db file sequential readWait: single-block physical read, typically an index or table lookup
- db file scattered readWait: multi-block physical read, typically a full table or index fast full scan
- buffer busy waitsWait: contention for a buffer already being read or modified by another session
- library cache lockWait: contention on a library cache object handle (parse/DDL serialization)
- ORA-00604error occurred at recursive SQL level
- ORA-01438value larger than specified precision allowed for this column
- ORA-01400cannot insert NULL into (column)