Database OracleDB インフラ

[Oracle] SQLトレースログの取得方法・出力先・tkprof使い方・削除方法

投稿日:2018年8月18日 更新日:

こんにちは!シミダイ(@shimidai2100)です。

Oracle DatabaseのSQLトレースログの

  • 取得方法
  • 出力先
  • tkprofの使い方
  • 削除方法

を紹介したいと思います。

性能劣化時障害時の調査に大変役立つログであり、サポート問い合わせ時に利用します。


SQLトレースの取得方法

SQLトレースには2つの取得方法があります。

alter session」文と「DBMS_MONITOR」プロシージャになります。

トレースログは「<oracle_sid>_ora_<session_id>.trc」のファイルフォーマットで作成されます。

alter session

初期化パラメータ「SQL_TRACE」を「TRUE」にした状態で「alter session」でイベントを設定することでSQLトレースを取得できます。

SQLトレースを取得する際にはレベルを指定することで、取得する情報量を制御します。

  • Level 1SQLトレースだけ
  • Level 4 -> SQLトレースとバインド変数
  • Level 8 -> SQLトレースと待機イベント
  • Level 12 -> SQLトレースとバインド変数と待機イベント

DBMS_MONITOR

DBMS_MONITOR」でSQLトレースを取得するためには、シリアルIDシリアル番号が必要なります。

V$SESSION」ビューからシリアルIDシリアル番号を取得出来ます。

確認後に「DBMS_MONITOR.SESSION_TRACE_ENABLE」で

取得が終わったら必ずSQLトレースを無効化しましょう。

SQLトレースの出力先

SQLトレースの出力先は「DIAGNOSTIC_DEST」に指定されている

<diagnostic_dest>/diag/rdbms/<dbname>/<instname>/trace」ディレクトリに出力されます。

トレースログは「<oracle_sid>_ora_<session_id>.trc」のファイルフォーマットで作成されます。

以下の「alter system」文でパラメータを変更することができます。変更後に再起動を行う必要があります。

DIAGNOSTIC_DEST」が設定されていない場合は初期化パラメータの「USER_DUMP_DEST」で指定します。

以下の「alter system」文でパラメータを変更することができます。

なおトレースファイルの最大サイズを変更するパラメータ「MAX_DUMP_FILE_SIZE」です。

以下のSQLで変更することができます。

tkprofの使い方

tkprof」の使い方を紹介します。

まずは「tkprof」とは生のSQLトレースを見やすい形に成形してくれるユーティリティになります。

使用方法は以下になります。

トレースログは「<oracle_sid>_ora_<session_id>.trc」のファイルフォーマットで作成させています。

生SQLトレースログですが今回の記事では内容を割愛します。

SQLトレースの削除方法

SQLトレースログの削除方法ですが、OSコマンドで削除することが出来ます。

「ADRCI」コマンドでも削除することができますが、特にスケジュール機能が付いているわけではないので好みよいでしょう。

以下のように実行すること1日分を残して、過1日以前に生成されたログを削除します。

 

スポンサードリンク

関連記事

-Database, OracleDB, インフラ

Translate »

Copyright© shimidai2100 , 2018 All Rights Reserved.