TRC ファイル形式とは?
.trc ファイルは、Oracle Database ソフトウェアによって作成されるトレースまたはデバッグファイルです。このトレースファイルには、SQLの解析(parse)、実行(execute)、フェッチ(fetch)操作、待機イベント、バインド変数の値、エラースタックなど、サーバーによって実行されたデータベースイベントの詳細な記録が含まれており、データベーストランザクション中に発生したパフォーマンスの問題やエラーの分析・デバッグに使用されます。
Oracleは、バックグラウンドプロセスを通じて自動的に、あるいは ALTER SESSION SET SQL_TRACE = TRUE、DBMS_MONITOR パッケージ、または診断イベント 10046 を介してSQLトレースが有効化されたときに .trc ファイルを生成します。Oracle Database 11g以降、トレースファイルは自動診断リポジトリ(ADR)の trace/ ディレクトリ配下に格納され、各 .trc は通常、ADRツールがインデックス作成に使用するコンパニオンファイル .trm トレースマップファイルとペアになっています。
生のSQLトレースは、通常 tkprof または trcsess コマンドラインユーティリティで処理され、人間が読める形式のパフォーマンスレポートが作成されます。ただし、.trc ファイルはプレーンテキスト形式で保存されているため、ほとんどのテキストエディタで開くことも可能です。ファイルサイズは、ワークロードの強度やトレース期間に応じて、数キロバイトから数百メガバイトに及びます。
.trc ファイルには、SQLステートメント、バインド変数の値、セッションの詳細などの機密データが含まれる可能性があるため、機密情報として扱う必要があります。
セキュリティと安全性
リスク: LOW.trc は受動的なテキストであり、実行することはできないため、開いても安全です。本当の懸念はマルウェアではなく「機密性」です。SQLトレースには、データベースを通過したリテラルSQLステートメントやバインド変数の値(個人データや秘密データが含まれる可能性があります)が含まれる場合があるため、外部に共有する前に秘匿化してください。運用面では、.trc/.trm ファイルはADRトレースディレクトリに蓄積され、ディスクを圧迫する可能性があります。インスタンスの実行中に無作為に削除するのではなく、ADRCIまたはデータベースの自動保持ポリシーを使用して削除してください。
形式の詳細
概要- PTC Creo / Pro/ENGINEER トレイル(トレース)ファイル - 再生やデバッグのために Pro/E でのユーザーのUI操作を記録する .trc トレイルファイル。Oracleとは無関係です。
- 汎用アプリケーション トレース/デバッグログ - 多くのプログラム(ネットワークスニッファ、ミドルウェア、カスタムアプリ)がプレーンテキストの .trc デバッグログを書き出します。テキストエディタで開いてください。
TRC ファイルを開くプログラム
技術的詳細
詳細仕様| フォーマットタイプ | プレーンテキスト診断ログ (ASCII / UTF-8); まれにデータベースの文字セットに依存 |
| MIMEタイプ | text/plain (特殊なトレースのバイナリダンプ領域では application/octet-stream) |
| ファイルシグネチャ | 固定のマジックバイトなし。ファイルは、トレースファイルのパス、Oracleのバージョン、インスタンス名、OSのプロセスIDを含む説明的なプレーンテキストヘッダーで始まります |
| 生成元 | Oracle Database サーバーおよびバックグラウンドプロセス (PMON, SMON, DBWn, LGWR など)、または明示的なユーザーセッションのSQLトレース |
| SQLトレースの有効化 | ALTER SESSION SET SQL_TRACE = TRUE; DBMS_MONITOR.SESSION_TRACE_ENABLE; レベル1, 4, 8, または12の診断イベント 10046 |
| トレースの内容 | SQLの解析/実行/フェッチのタイミング、待機イベント、バインド変数のダンプ、再帰的SQL、ORA-エラースタック、およびカーソル統計 |
| コンパニオンファイル | Oracle Database 11g以降、各 .trc は .trm トレースマップファイル (ADRインデックス/メタデータ) とペアになります |
| ADR格納パス | $ORACLE_BASE/diag/rdbms/<db_name>/<instance>/trace/ - Oracle 11gで導入された自動診断リポジトリによって管理されます |
| 処理ユーティリティ | tkprof は生の10046トレースをランク付けされたSQLレポートに整形します。trcsess は複数のセッションからのトレースを1つのファイルにマージします |
| SQL*Net / Net バリアント | Oracle Net (旧 SQL*Net / Net8) も、クライアント側またはサーバー側のネットワーク層診断用に .trc ファイルを書き出します。トレースレベルは sqlnet.ora の TRACE_LEVEL_CLIENT / TRACE_LEVEL_SERVER で設定します |
| 一般的なファイルサイズ | 短いセッションの数KBから、イベント10046レベル12(バインド値 + 待機)でトレースされたビジーなセッションの数百MBまで |
| 圧縮 | 非圧縮。ファイルはプレーンテキストであり、内部圧縮は適用されません |
| 機密性 | SQLステートメント、バインド変数の値、スキーマオブジェクト名、およびOracle内部の診断情報が公開される可能性があるため、機密情報として扱う必要があります |
| 関連するオペレーティングシステム | Linux, Windows Server, Solaris, AIX, HP-UX - Oracle Database をホストするすべてのプラットフォーム |
| 関連するファイルタイプ | .trm (ADRトレースマップ), [.log](/format/log) (Oracleアラートログ), [.dmp](/format/dmp) (Oracleダンプ), .ora (Oracle初期化/ネットワーク設定) |
| リリース日 | 1980s-1990s (Oracle RDBMS diagnostics; SQL*Net/Net8 tracing) |
| 最新バージョン | N/A (evolves with each Oracle Database release; ADR-based since 11g, 2007) |
| 仕様書 | docs.oracle.com |
TRC の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。TRC ファイルについて最初の質問をしてみましょう。
よくある質問
.TRCファイルを開くにはどうすればよいですか?
tkprofとは何ですか?必要ですか?
.trc を読むために厳密に必須ではありませんが、これがないと生のトレースを解釈するのは非常に困難です。Oracleの .trc および .trm ファイルは削除できますか?
.trc の隣にある .trm ファイルは何ですか?
.trc のインデックスを作成するADRトレースマップメタデータファイルです。Oracleの診断ツールがこれを使用します。直接読み取るためのものではありません。.trc ファイルに機密データは含まれていますか?
Oracleでトレースファイルを生成するにはどうすればよいですか?
.trc は、DIAGNOSTIC_DEST/USER_DUMP_DEST 設定で示されるADRトレースディレクトリに出現します。