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

    【Oracle】一般ユーザーにシステムビューへのアクセス権を付与する方法

    Oracle Databaseで、作成した一般ユーザーからシステムビュ…

  2. Oracle

    Oracle:impdpでexcludeを使ってテーブルを除外する

    Oracle DBの impdp コマンドで、excludeオプション…

  3. Oracle

    【SQL*Plus】SYSDBA権限でリモートサーバに簡易接続ネーミングで接続する方法

    リモートのOracleサーバにSQL*Plusで接続する際に、SYSD…

  4. Oracle

    expdpが「すでに使用されているオブジェクト名です」と失敗する時の対処方法

    expdp実行時に、下記のエラーで処理が失敗してしまう時の対処方法のメ…

  5. Oracle

    (解決策)テーブルを作成しようとしたらORA-01950エラーで権限が無いと怒られたとき

    dba権限が無いユーザーでOracleデータベースにテーブルを作成しよ…

コメント

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

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

最近の記事

  1. PHP PhantomJSでFatal error: Unc…
  2. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  3. CentOS7のPHP5.6にPhpSpreadsheetを…
  4. Azure仮想マシン(CentOS 7)のStandardデ…
  5. 【CentOS 7】特定ユーザーのクォータ設定を削除(無制限…
PAGE TOP