Oracle

  (最終更新日:2014.08.25)

gc cr failure が発生した際にどのオブジェクトで発生しているのかを調査する手順

Oracle RAC構成をしていると、gc cr failure による待機イベントに泣かされることが多々ある日々です。 原因は不明ですがいつまでたっても gc cr failure が終了せずに長時間セッションとなってしまいます。

そんな gc cr failure による長時間処理が発生した場合には、まず長時間動き続けているセッションを確認する必要があります。 次のSQLで該当セッションのセッションIDを確認します。

SELECT
    last_call_et,
    sid,
    serial#,
    state,
    event,
    username,
    machine,
    status,
    q.sql_id
FROM
    v$session s
    left join v$sqltext q on(s.sql_id = q.sql_id)
WHERE
    type = 'USER' AND
    STATUS = 'ACTIVE'
group by
    last_call_et,
    sid,
    serial#,
    state,
    event,
    username,
    machine,
    status,
    q.sql_id
ORDER BY
    last_call_et desc

結果は下記のような感じ。

2014-08-25_13h04_26

これで長時間動き続けているSQLのセッションが確認できましたので、今度はこのSIDを参考に gc cr request を繰り返しているオブジェクトを特定します。

まずはイベント gc cr request が発生している待機セッションの fileblock を確認します。 次のSQLを実行して該当のセッションが存在してるかを確認します。P1値が file で、P2値が block を指します。

select
  SID,
  p1,
  P2
from
  v$session_wait
where
  EVENT = 'gc cr request'

結果は下記のような感じ。

2014-08-25_13h05_15

最後に取得したP1とP2の値で該当のオブジェクトを確認します。

SELECT
    segment_name,
    segment_type,
    owner,
    tablespace_name
FROM
    dba_extents
WHERE
    file_id = 5
    AND
    120916351 between block_id
    AND
    block_id + blocks - 1

結果が下記。

2014-08-25_13h05_34

これでどのオブジェクトが原因で gc cr failure が発生し続けているかを特定できました。

スポンサーリンク
スポンサーリンク

関連記事

  1. Oracle

    Linux版Oracle Database 11gの起動手順と停止手順

    すごく基礎的なことなんですが、Linux版のOracle Da…

  2. Oracle

    impdpでインデックスのみを作成する方法

    impdpを利用してインデックスのみを作成したかったのでメモ的に。…

  3. Oracle

    SQLチューニングアドバイザを使用するために必要な権限

    OracleでSQLチューニングアドバイザ(EEライセンス)を利用する…

  4. Oracle

    Statspackレポートを定期的(1日1回)に自動で作成する方法

    OracleのStatspackレポートを、自動で1日1回、1時間間隔…

  5. Oracle

    Oracleのプロファイルを参照作成(コピー)するなら類似作成が便利

    Oracleでパスワードの有効期限などを独自に設定したプロファイルを作…

  6. Oracle

    【Oracle】テーブル指定で統計情報をバックアップ、インポートする方法とポイント

    Oracle Databaseで、テーブルを指定して統計情報をバックア…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. さくらのVPSにCentOS 5をインストールする方法
  2. PHP PhantomJSでFatal error: Unc…
  3. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  4. CentOS7のPHP5.6にPhpSpreadsheetを…
  5. Azure仮想マシン(CentOS 7)のStandardデ…
PAGE TOP