株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

[12c R2] UNIFORM_LOG_TIMESTAMP_FORMATパラメータ

01.UNIFORM_LOG_TIMESTAMP_FORMATとはどのようなパラメータか?

Oracleインスタンスが出力するログファイル(アラートログ、トレースファイル)のログ出力において、日時情報の出力フォーマットをISO 8601形式で出力するパラメータです。 デフォルトのUNIFORM_LOG_TIMESTAMP_FORMAT=trueでは、日時情報をISO 8601形式で出力します。 UNIFORM_LOG_TIMESTAMP_FORMAT=falseでは、日時情報を従来と同様の形式で出力します。 このパラメータはOracle Database 12.2から導入されました。

02.実行結果:UNIFORM_LOG_TIMESTAMP_FORMAT設定とログファイルの日時情報出力

UNIFORM_LOG_TIMESTAMP_FORMAT=trueでは、日時情報はISO 8601形式(拡張形式)で出力されます。

YYYY-MM-DDThh:mm:ss.ffffff+TZH:TZM
例)
2017-03-24T17:49:39.327480+09:00

以下の例では、インスタンス起動中にデフォルトのUNIFORM_LOG_TIMESTAMP_FORMAT=trueから、
UNIFORM_LOG_TIMESTAMP_FORMAT=falseに変更したときの日時情報の出力内容を確認しています。

SQL> host grep 2017 /u01/app/oracle/diag/rdbms/c201cdb/c201cdb/trace/alert_c201cdb.log | tail
2017-03-24T17:49:33.510802+09:00
2017-03-24T17:49:34.211465+09:00
2017-03-24T17:49:34.638534+09:00
2017-03-24T17:49:35.268165+09:00
2017-03-24T17:49:36.660489+09:00
2017-03-24T17:49:36.695824+09:00
2017-03-24T17:49:39.327480+09:00
Fri Mar 24 18:06:17 2017
Fri Mar 24 18:08:48 2017
Fri Mar 24 18:09:34 2017
SQL> host grep 2017 /u01/app/oracle/diag/rdbms/c201cdb/c201cdb/trace/c201cdb_ora_9212.trc |tail
*** 2017-03-24T17:49:33.253184+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:33.293658+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:33.303461+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:33.304278+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:33.312097+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:33.428856+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:33.952263+09:00 (CDB$ROOT(1))
*** 2017-03-24T17:49:35.930010+09:00 (PDB$SEED(2))
*** 2017-03-24 18:08:56.261 (CDB$ROOT(1))
*** 2017-03-24 18:58:09.837 (CDB$ROOT(1))

03.注意点

※日時情報の出力フォーマットが、デフォルトで旧バージョンと異なります。このため、ログ監視など、ログファイルの日時情報にパターンマッチするような処理がある場合は、注意が必要です。 ※マニュアルにはUNIFORM_LOG_TIMESTAMP_FORMAT=trueにおける日時情報の出力フォーマットが、YYYY-MM-DD hh:mm:ss.fffであると記載されていますが、誤記と思われます。(2017年03月時点のマニュアル記載) ※マニュアルにはUNIFORM_LOG_TIMESTAMP_FORMATの適用対象はトレースファイルとの記載がありますが、実際にはアラートログにも適用されるようです。

04.従来機能との関連性

Oracle Database 12.1以前では、UNIFORM_LOG_TIMESTAMP_FORMAT=false相当の動作でした。 Oracle Databaseのログファイルの日時情報出力は、ログファイルの種類により出力フォーマットが異なり、とても扱いにくいものでした。 UNIFORM_LOG_TIMESTAMP_FORMATは、ISO標準に準拠させる形で出力フォーマットを統一したものと考えられます。

05.参考情報

※UNIFORM_LOG_TIMESTAMP_FORMAT – OracleR Databaseリファレンス 12cリリース2 (12.2) E72905-02 [http://docs.oracle.com/cd/E82638_01/REFRN/UNIFORM_LOG_TIMESTAMP_FORMAT.htm]
※ISO 8601 – Wikipedia [https://ja.wikipedia.org/wiki/ISO_8601]