gc buffer busy: 等待(RAC):争用正在实例间传输的 cache fusion 块
Oracle含义
在 RAC 环境中,会话正在等待访问一个全局块,该块正通过 cache fusion 与另一实例相互传输,或被该实例占用。
原因
RAC 节点之间共享相同的热块(跨实例热块)、interconnect 延迟/瓶颈、顺序键索引上的跨节点争用,或工作负载分布不均衡。
解决方法
通过 v$segment_statistics 和 GV$ 视图找出受影响的段。检查 interconnect 的健康状况和延迟(私有、高速网络)。对热点索引使用反向键或哈希分区。按服务将工作负载分离到不同节点,减少对相同块的跨节点争用。
同一数据库的其他条目
- db file sequential read等待:单块物理读,通常为索引或表查找
- db file scattered read等待:多块物理读,通常为全表扫描或索引快速全扫描
- buffer busy waits等待:争用一个正被其他会话读取或修改的缓冲区
- library cache lock等待:library cache 对象句柄争用(解析/DDL 串行化)
- ORA-00604error occurred at recursive SQL level(递归 SQL 级别出错)
- ORA-01438value larger than specified precision allowed for this column(值大于此列允许的指定精度)
- ORA-01400cannot insert NULL into (column)(无法将 NULL 插入(列))