トレースファイルの種類(バックグラウンド/サーバープロセス)難易度 標準無料
Oracleが生成する診断用トレースファイルに関する記述として正しいものを選べ。
- Aバックグラウンドプロセスのトレースとサーバープロセスのトレース(SQLトレース含む)は別々のファイルとして出力される
- BSQL_TRACEを有効化しなくても、全セッションの全SQL文が常にトレースファイルへ自動記録される
- Cトレースファイルは1インスタンスにつき1ファイルのみで、全プロセスの情報が1つに集約される
- Dtkprofはトレースファイルを生成するコマンドであり、生成後の解析には別ツールが必要
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
トレースファイルは大きく2種類に分けられる。
各誤答が違う理由- バックグラウンドプロセスのトレース:
PMON・SMON・DBWn・LGWRなどのバックグラウンドプロセスが、 自身が検知した問題や処理内容を記録する。異常終了時に多くの情報を残す。 - サーバープロセスのトレース:ユーザーセッションに対応するサーバープロセスが、
SQL_TRACE(またはDBMS_MONITOR/DBMS_SESSION.SET_SQL_TRACE)を有効にした際に、 そのセッションが実行したSQL文の解析・実行・フェッチの統計情報を記録する。パフォーマンス調査(tkprofでの整形が定番)に使う。
いずれもADRの trace/ ディレクトリに、${ORACLE_SID}_${プロセス種別}_${プロセスID}.trc のような命名規則で出力される。
- BSQLトレースはDBMS_MONITOR等で明示的に有効化しない限り出力されない。常時全SQL文が自動記録されるわけではない。
- Cトレースファイルはプロセス(PMON・SMON・各サーバープロセス等)ごとに個別のファイルとして生成される。1ファイルへの集約ではない。
- D逆で、tkprofは既に生成されたSQLトレースファイル(.trc)を人間が読みやすい形式に整形・解析するツールである。生成そのものはSQL_TRACE等の有効化によって行われる。
ひっかけ: 「トレースファイル=1種類の汎用ログ」と考えがちだが、実際はプロセス(バックグラウンド/サーバー)ごとに個別のトレースファイルが生成される。SQLトレースはセッション単位で有効化しない限り出力されず、常時全SQL文が記録されているわけではない。
コマンド例と想定される挙動(未実行)
$ADR_HOME/trace/ の例: orcl_pmon_12345.trc (バックグラウンドプロセスPMONのトレース) orcl_ora_23456.trc (SQL_TRACE有効化中のサーバープロセスのトレース。tkprof orcl_ora_23456.trc output.txt で整形可能)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)