Oracle ADR(自動診断リポジトリ)の初心者ガイド

  • URLをコピーしました!
Oracle AI Database

Oracle製品を運用していると、ORA-、TNS-、CRS-のインシデントの調査が行われると思います。

そこで、Oracle製品を使用する上でログを管理するADR(自動診断リポジトリ)の機能があり、運用・保守に必要になります。

本記事は、ADRの概要からディレクトリ構造(ADR_BASE/ADR_HOME)、そしてADRCIの基本操作と運用例まで、実際のコマンド実行例を交えて分かりやすくまとめています。

この記事でわかること
  • ADR(自動診断リポジトリ)の概要
  • ADR_BASE/ADR_HOMEの関係性とディレクトリ構造
  • ADRCIの基本操作と運用例
目次

ADR(自動診断リポジトリ)とは

ADR(Automatic Diagnostic Repository/自動診断リポジトリ)は、Oracle製品の診断データ(アラートログ、トレースファイル、ヘルスモニターのレポートなど)を格納するファイルベースのリポジトリです。

複数のOracle製品や複数のインスタンスの診断データが管理され、統一化されたディレクトリ構造で管理されています。

保守・運用担当者は、ADRのファイルを管理する際にADRCIのコマンドツールを使用します。

管理人

ADRは、Oracle Database(ここではわかりやすくデータベースでたとえます。)を起動・運用する上で発生したログ(診断データ)の保管庫のようなイメージです。

ADRのディレクトリ構造

ADRのディレクトリは、ADR_BASEから始まり、diag/<product_type>/<product_id>/<instance_id>のADR_HOMEで構成されます。

ADR_BASEの場所は、初期化パラメータDIAGNOSTIC_DESTにより設定されます。

SQL> show parameter diagnostic_dest

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest 		     string	 /u01/app/oracle

ADR_HOMEは、diag/<product_type>/<product_id>/<instance_id>のディレクトリ構成になります。

Oracle AI DatabaseやListener、Clusterware、ASMなど、使用するOracle製品ごとにADR_HOMEが割り当てられます。

ADR_BASEが1つに対して、使用中のOracle製品によってはADR_HOMEが複数あるイメージです。
※ADR_BASEが複数になる場合もありますが、本記事では割愛します。

下記はOracle AI DatabaseやListenerごとのADR_HOMEになります。

  • Oracle AI Database:diag/rdbms/orcl/orcl/
  • Listener:diag/tnslsnr/learnbytebybyte/listener
/u01/app/oracle ($ORACLE_BASE / $ADR_BASE)
└── diag
    ├── acfs
    ├── afdboot
    ├── apx
    ├── asm
<省略>
    ├── rdbms
    │   └── orcl
    │       └── orcl ($ADR_HOME)
    │           ├── alert
    │           ├── cdump
    │           ├── hm
    │           ├── incident
    │           ├── incpkg
    │           ├── ir
    │           ├── lck
    │           ├── log
    │           ├── metadata
    │           ├── metadata_dgif
    │           ├── metadata_pv
    │           ├── stage
    │           ├── sweep
    │           └── trace
    └── tnslsnr ($ADR_HOME)
        └── learnbytebybyte
            └── listener
                ├── alert
                ├── cdump
                ├── incident
                ├── incpkg
                ├── lck
                ├── log
                ├── metadata
                ├── metadata_dgif
                ├── metadata_pv
                ├── stage
                ├── sweep
                └── trace
管理人

ADR_BASEがマンションの住所、Oracle製品(入居者)がADR_HOME(部屋番号)に診断データ(家具や家電)を置くイメージです。

ADR_HOME配下のディレクトリ

ADR_HOMEの配下のディレクトリは、次のような情報が格納されています。

  • alert・・・XML形式のアラートログ・ファイル
  • cdump・・・テキスト形式のコアファイル
  • incident・・・重大エラーのインシデントファイル
  • incpkg・・・インシデントに関連するファイルをパッケージ化したファイル
  • lck・・・ADRが使用する内部ファイル
  • log・・・デバッグログ
  • metadata・・・ADRが使用する内部ファイル
  • metadata_dgif・・・ADRが使用する内部ファイル
  • metadata_pv・・・ADRが使用する内部ファイル
  • stage・・・ADRが使用する内部ファイル
  • sweep・・・ADRが使用する内部ファイル
  • trace・・・テキスト形式のアラートログ、トレースファイル、ADRが使用する内部ファイル

私たち人間がインシデント調査を行う上で活用するフォルダは、主にtraceフォルダになります。

ADRの機能一覧

ADRの主な機能は以下の3点になります。

  • 診断データの一元管理
  • ログ閲覧・インシデント調査・パッケージ化
  • 診断データは保持ポリシーに基づいて自動削除

診断データの一元管理

ADRは、複数のOracle製品に関するアラートログやトレースファイル等の診断データ(ログ)を格納し、管理しています。

そのため、ADRCIコマンドで診断ログを一覧表示することが可能です。

adrci> show tracefile
     diag/rdbms/orcl/orcl/trace/orcl_w00a_15057.trc
     diag/rdbms/orcl/orcl/trace/orcl_w009_15054.trc
     diag/rdbms/orcl/orcl/trace/orcl_w005_9341.trc
     diag/rdbms/orcl/orcl/trace/orcl_w004_14668.trc
     diag/rdbms/orcl/orcl/trace/orcl_w003_9355.trc
     diag/rdbms/orcl/orcl/trace/orcl_w003_15036.trc
     diag/rdbms/orcl/orcl/trace/orcl_w002_7805.trc
     diag/rdbms/orcl/orcl/trace/orcl_w002_14665.trc
<省略>

ログ閲覧・インシデント調査・パッケージ化

ADRCIで、診断データを閲覧/調査/収集(パッケージ化)するため、保守・運用に役立ちます。

  • アラートログの確認:show alert
  • インシデントの確認:show incident
  • 問題の確認:show problem
  • インシデント関連情報をパッケージ化:ips create package ...

診断データは保持ポリシーに基づいて自動削除

ADRの診断データはライフサイクルがあり、Oracle製品ごとの保持ポリシーに基づいて診断データが自動削除(パージ)されます。

SHORTP_POLICYやLONGP_POLICYの保持ポリシーは時間単位を指定して、診断データの更新日の何時間後に自動削除対象になります。

adrci> show control

ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
*************************************************************************
ADRID                SHORTP_POLICY        LONGP_POLICY         LAST_MOD_TIME                            LAST_AUTOPRG_TIME                        LAST_MANUPRG_TIME                        ADRDIR_VERSION       ADRSCHM_VERSION      ADRSCHMV_SUMMARY     ADRALERT_VERSION     CREATE_TIME                              SIZEP_POLICY         PURGE_PERIOD         FLAGS                PURGE_THRESHOLD      
-------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- ---------------------------------------- -------------------- -------------------- -------------------- -------------------- 
1335663986           504                  504                 2026-02-14 16:00:24.251680 +09:00                                                 2026-02-11 21:06:49.258360 +09:00        1                    2                    116                  1                    2026-02-01 01:46:03.767133 +09:00        18446744073709551615 0                    0                    95                  
1 row fetched

Oracle AI Databse 26ai以降は、SHORTP_POLICYとLONGP_POLICYが504時間になりました。以前は、SHORTP_POLICYが720時間(30日)、LONGP_POLICYが8760時間(365日)でした。

また、他にSIZEP_POLICYとPURGE_THRESHOLDの保持ポリシーの項目があります。

  • SIZEP_POLICYは、ADR_HOMEのサイズ上限を指定します。
  • PURGE_THRESHOLDは、SIZEP_POLICYより低い値を指定して、自動削除のトリガーサイズを指定します。

ADRCI(ADR Command Interpreter)とは

ADRCI(ADR Command Interpreter)は、ADRに格納された診断データを操作するためのコマンドツールです。

ADRCIを使用することで、アラートログやトレースファイルの確認、インシデントの調査、不要になった診断データの手動削除等が実行できます。

下記は、実際の実行ログをもとに、よく使う操作をまとめます。

  • ADRCIの起動・設定
  • インシデントと問題の確認
  • インシデントのパッケージ化
  • 診断ログの手動削除

ADRCIの起動・設定

最初にADRCIを起動し、操作対象のADR_HOME(診断データの保存場所)を選択します。

複数のOracle製品を使用している環境ではADR_HOMEが複数存在するため、調査したい対象(例:Oracle AI DatabaseのADR_HOME)に切り替えるのが大切です。

[oracle@learnbytebybyte ~]$ adrci

ADRCI: Release 23.0.0.0.0 - Production on 土 2月 14 14:56:14 2026

Copyright (c) 1982, 2026, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/u01/app/oracle"
adrci> show home
ADR Homes: 
diag/rdbms/orcl/orcl
diag/tnslsnr/learnbytebybyte/listener
diag/diagtool/user_oracle/adrci_3193297974_116
diag/asmtool/user_oracle/host_3193297974_116
diag/orapwd/learnbytebybyte/kuzr

adrci> set home diag/rdbms/orcl/orcl

インシデントと問題の確認

ADRCIは、インシデントと問題の発生を把握することができます。

障害調査では、「どんな重大エラーが、いつ発生したか」を把握することが重要です。

adrci> show incident

ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME                              
-------------------- ----------------------------------------------------------- ---------------------------------------- 
117761               ORA-00600                                                   2026-02-14 14:36:27.153214 +09:00       
1 row fetched

adrci> show problem

ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl:
*************************************************************************
PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME                             
-------------------- ----------------------------------------------------------- -------------------- ---------------------------------------- 
1                    ORA-00600                                                   117761               2026-02-14 14:36:27.153214 +09:00       
1 row fetched

問題とインシデントの違いは、事象と原因になります。

インシデントのパッケージ化

重大エラーの調査では、インシデント関連情報をまとめて収集し、サポート連携や社内共有に備えることがあります

ADRCIのIPS機能を使うと、指定したインシデントに紐づく情報を「収集パッケージ」としてまとめられます。

作成したパッケージは、ADR_HOME配下のincpkgに出力されます。

adrci> ips create package incident 117761
Created package 1 based on incident id 117761, correlation level typical
[oracle@learnbytebybyte orcl]$ ls -la incpkg/
合計 4
drwxr-x---.  3 oracle oinstall   19  2月 14 15:03 .
drwxr-x---. 16 oracle oinstall 4096  2月  1 01:46 ..
drwxr-x---.  3 oracle oinstall   19  2月 14 15:03 pkg_1
[oracle@learnbytebybyte orcl]$ ls -la incident/
合計 4
drwxr-x---.  3 oracle oinstall   27  2月 14 14:36 .
drwxr-x---. 16 oracle oinstall 4096  2月  1 01:46 ..
drwxr-x---.  2 oracle oinstall    6  2月 14 14:36 incdir_117761

診断ログの手動削除

ADRの診断データは保持ポリシーにより自動削除されますが、検証や時間帯によって診断データが増加した際に手動でパージすることもあります。

ADRCIのpurgeコマンドを使うと、指定した条件に合う診断データを削除できます。

[oracle@learnbytebybyte ~]$ cd /u01/app/oracle/diag/rdbms/orcl/orcl/
[oracle@learnbytebybyte orcl]$ ls -la trace/
合計 8232
drwxr-x---.  6 oracle oinstall   98304  2月 14 15:34 .
drwxr-x---. 16 oracle oinstall    4096  2月  1 01:46 ..
-rw-r-----.  1 oracle oinstall  465169  2月 14 15:34 alert_orcl.log
-rw-r-----.  1 oracle oinstall   22278  2月 14 14:27 attention_orcl.log
drwxr-x---.  2 oracle oinstall      72  2月 14 14:27 cdmp_20260214142710
drwxr-x---.  2 oracle oinstall      72  2月 14 15:32 cdmp_20260214153221
drwxr-x---.  2 oracle oinstall      72  2月 14 15:32 cdmp_20260214153222
drwxr-x---.  2 oracle oinstall      72  2月 14 15:34 cdmp_20260214153425
-rw-r-----.  1 oracle oinstall    1501  2月 11 22:31 orcl_aqpc_2519.trc
-rw-r-----.  1 oracle oinstall    1245  2月 11 22:31 orcl_aqpc_2519.trm
-rw-r-----.  1 oracle oinstall    1502  2月 12 23:46 orcl_aqpc_2700.trc
-rw-r-----.  1 oracle oinstall    1245  2月 12 23:46 orcl_aqpc_2700.trm
-rw-r-----.  1 oracle oinstall    1551  2月 11 22:31 orcl_arc0_2470.trc
<省略>
-rw-r-----.  1 oracle oinstall    1245  2月 12 23:46 orcl_w003_9355.trm
-rw-r-----.  1 oracle oinstall    1821  2月 11 22:07 orcl_w004_14668.trc
-rw-r-----.  1 oracle oinstall    1335  2月 11 22:07 orcl_w004_14668.trm
-rw-r-----.  1 oracle oinstall    1518  2月 12 23:46 orcl_w005_9341.trc
-rw-r-----.  1 oracle oinstall    1245  2月 12 23:46 orcl_w005_9341.trm
-rw-r-----.  1 oracle oinstall    1520  2月 11 22:30 orcl_w009_15054.trc
-rw-r-----.  1 oracle oinstall    1246  2月 11 22:30 orcl_w009_15054.trm
-rw-r-----.  1 oracle oinstall    1518  2月 11 22:30 orcl_w00a_15057.trc
-rw-r-----.  1 oracle oinstall    1246  2月 11 22:30 orcl_w00a_15057.trm
[oracle@learnbytebybyte orcl]$ date
2026年  2月 14日 土曜日 16:09:52 JST
[oracle@learnbytebybyte orcl]$ adrci

ADRCI: Release 23.0.0.0.0 - Production on 土 2月 14 16:09:58 2026

Copyright (c) 1982, 2026, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/u01/app/oracle"
adrci> set home diag/rdbms/orcl/orcl
adrci> #今回は10分以上の診断データは削除します。
adrci> purge -age 10
adrci> exit
[oracle@learnbytebybyte orcl]$ ls -la trace/
合計 580
drwxr-x---.  2 oracle oinstall  98304  2月 14 16:10 .
drwxr-x---. 16 oracle oinstall   4096  2月  1 01:46 ..
-rw-r-----.  1 oracle oinstall 465169  2月 14 15:34 alert_orcl.log
-rw-r-----.  1 oracle oinstall  22278  2月 14 14:27 attention_orcl.log
-rw-r-----.  1 oracle oinstall  11010  2月 14 16:09 orcl_dbrm_4666.trc
-rw-r-----.  1 oracle oinstall   5289  2月 14 16:09 orcl_dbrm_4666.trm
-rw-r-----.  1 oracle oinstall   3119  2月 14 16:10 orcl_dia0_4674_base_1.trc
-rw-r-----.  1 oracle oinstall   1580  2月 14 16:10 orcl_dia0_4674_base_1.trm
-rw-r-----.  1 oracle oinstall  33685  2月 14 16:09 orcl_mmon_4704.trc
-rw-r-----.  1 oracle oinstall  10284  2月 14 16:09 orcl_mmon_4704.trm

alert_<oracle_sid>.logとattention_<oracle_sid>.logのようなテキスト形式のログファイル(拡張子.log)は、削除対象に含まれないです。

もし、テキスト形式のログファイル(拡張子.log)も削除したい場合は、OSコマンドで削除する必要があります。

まとめ

ADR(Automatic Diagnostic Repository/自動診断リポジトリ)は、Oracle製品の診断データ(アラートログ、トレースファイル、ヘルスモニターのレポートなど)を格納するファイルベースのリポジトリです。

ADRのディレクトリは、ADR_BASEから始まり、diag/<product_type>/<product_id>/<instance_id>のADR_HOMEで構成されます。

ADRの主な機能は以下の3点になります。

  • 診断データの一元管理
  • ログ閲覧・インシデント調査・パッケージ化
  • 診断データは保持ポリシーに基づいて自動削除

ADRCIを使用することで、アラートログやトレースファイルの確認、インシデントの調査、不要になった診断データの手動削除等が実行できます。

Oracle製品の運用・保守では、障害対応やサポート連携のために診断データを適切に扱う必要があります。

ADRとADRCIの基本を押さえておくことで、調査や情報収集をスムーズに進められるようになります。

最後までご愛読ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

情報系Fラン大学出身・新卒未経験からデータベースエンジニアに転身。
使用技術:Oracle|TypeScript
資格取得:情報処理安全確保支援士試験|応用情報技術者試験|OracleMaster Gold DBA|OCI Architect Associate

目次