gc buffer busy: 待機 (RAC): インスタンス間で転送中のキャッシュフュージョンブロックをめぐる競合
Oracle意味
RAC 環境で、セッションが、キャッシュフュージョンにより他インスタンスとの間で転送中、またはそのインスタンスが使用中として保持しているグローバルブロックへのアクセスを待っている。
原因
RAC ノード間で共有される同じホットブロック (インスタンス間ホットブロック)、インターコネクトの遅延/ボトルネック、連番キーを持つインデックスでのノード間競合、または偏ったワークロード分散。
対処方法
v$segment_statistics と GV$ ビューで影響を受けているセグメントを特定する。インターコネクトの健全性と遅延を確認する (専用の高速ネットワーク)。ホットなインデックスには逆キーまたはハッシュパーティション化を使う。サービス単位でワークロードをノードに分離し、同じブロックをめぐるノード間競合を減らす。
同じデータベースの他の項目
- db file sequential read待機: 単一ブロックの物理読み取り。通常はインデックスまたはテーブルの参照
- db file scattered read待機: マルチブロックの物理読み取り。通常は全表スキャンまたはインデックス高速全スキャン
- buffer busy waits待機: 別セッションが読み取り中または変更中のバッファをめぐる競合
- library cache lock待機: ライブラリキャッシュのオブジェクトハンドルをめぐる競合 (解析/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 は挿入できない)