- Oracle Database
もう迷わない!SYSAUX表領域の肥大化の原因と対処法を徹底解説!
本記事では、SYSAUX表領域の肥大化の主な原因と、現場DBAの方がいますぐ実践できる原因特定・対処・予防のステップを、具体的なSQL例とともに整理して解説します。
|
|
Oracle Databaseの障害調査を行う際の情報取得ツールとして、Oracle Trace File Analyzer(以降、TFA)というツールをご存じでしょうか?
TFAを使うことで情報取得をより簡単に、よりスムーズに進められるようになる便利なツールであるにも関わらず、まだ活用されていない方も多くいらっしゃいます。
今回はTFA活用のメリットや導入方法などをご紹介します。
Index
TFAとは、オラクル社が提供するコマンドライン・インタフェースの資料採取ツールです。
Oracle Database環境で調査をする際に必要な各種ログファイル(アラート・ログ・ファイルやトレース・ファイル、OSログ等)の収集を簡素化することができます。
TFAの基本的な情報については、以下の記事でご紹介しています。
本記事では、TFAを導入することで得られるメリットを、具体的な事例を交えて解説します。
TFAを使用するメリットについて、上記の記事では次の3点を挙げています。
1. 複数の情報を1コマンドで取得可能
2. 情報取得する時間帯を指定可能
3. 網羅的で一貫性の取れた情報を取得可能
この3つのポイントが現場の障害対応でどのように役立つのかを、実際のログ取得事例を交えながら詳しく見ていきます。
TFAを用いてログ収集を行うことで、アラート・ログ・ファイルやリスナー・ログ・ファイルなど、様々なログを1コマンドで一括取得できます。TFAを使わない場合は各ディレクトリに移動して個別にファイルを集める必要がありますが、TFAを使えば各ディレクトリに移動する必要がなく、ログ収集をより簡単かつ確実に行えます。
一例として、Oracle Real Application Clusters(以降、RAC)環境では、障害発生時の調査に必要な下記の情報を取得することが可能です。
<取得できる主な情報>
| 関連機能 | 収集可能な情報 | 情報取得元 |
|---|---|---|
| database | DBアラート・ログ・ファイル DBトレース・ファイル DBインシデント・ファイル |
$ADR_BASE/diag/rdbms/<DB名>/<SID名>/trace |
| リスナー・ログ・ファイル | $ADR_BASE/diag/tnslsnr/<ホスト名>/<リスナー名>/trace | |
| OPatch情報 | - | |
| asm | ASMアラート・ログ・ファイル ASMトレース・ファイル |
$ADR_BASE/diag/asm/+asm/<SID名>/trace |
| SCANリスナー・ログ・ファイル | $ADR_BASE/diag/tnslsnr/<ホスト名>/<リスナー名>/trace | |
| crs | CRSアラート・ログ・ファイル CRSトレース・ファイル |
$ADR_BASE/diag/crs/<ホスト名>/crs/trace |
| OPatch情報 | - | |
| CRSリソース状況 | crsctl status res -tの結果 | |
| os | OS関連ログ | /var/log/messages等(Linux) |
当社では、サポートセンターからログ提供を依頼する際、障害発生前後に出力されているログの提供を依頼することが多いです(例:障害発生前後4時間に出力されているファイル)。
しかし、$ADR_BASE~配下には以下のように非常に多くのファイルが格納されていることがあります。
トレースファイルの中には、障害発生の有無に関わらず出力されるものもあり、どれが障害に関連するログファイルなのかを見分けるのが困難なこともあります。
<確認例>
$ ls -l /u01/app/oracle/diag/rdbms/orcl/orcl1/trace 合計 69612 -rw-r-----. 1 oracle oinstall 1933034 11月 28 17:28 alert_orcl1.log drwxr-x---. 2 oracle oinstall 6 11月 15 13:04 cdmp_20251115130416 drwxr-x---. 2 oracle oinstall 80 11月 16 18:05 cdmp_20251116180537 drwxr-x---. 2 oracle oinstall 76 11月 17 19:44 cdmp_20251117194411 drwxr-x---. 2 oracle oinstall 12288 11月 20 22:26 cdmp_20251120222600 -rw-r-----. 1 oracle asmadmin 101528 11月 28 16:15 drcorcl1.log -rw-r-----. 1 oracle oinstall 1262 10月 31 19:57 orcl1_acms_397263.trc -rw-r-----. 1 oracle oinstall 916 10月 31 19:57 orcl1_acms_397263.trm -rw-r-----. 1 oracle oinstall 1262 10月 31 19:57 orcl1_aqpc_398886.trc -rw-r-----. 1 oracle oinstall 916 10月 31 19:57 orcl1_aqpc_398886.trm -rw-r-----. 1 oracle oinstall 149638 11月 16 05:48 orcl1_arc0_1783918.trc -rw-r-----. 1 oracle oinstall 1037 11月 16 05:48 orcl1_arc0_1783918.trm -rw-r-----. 1 oracle oinstall 51410 11月 18 11:36 orcl1_arc0_21245.trc -rw-r-----. 1 oracle oinstall 935 11月 18 11:36 orcl1_arc0_21245.trm -rw-r-----. 1 oracle oinstall 48499 11月 21 19:04 orcl1_arc0_2881773.trc -rw-r-----. 1 oracle oinstall 936 11月 21 19:04 orcl1_arc0_2881773.trm -rw-r-----. 1 oracle oinstall 101039 11月 21 18:28 orcl1_arc0_307379.trc -rw-r-----. 1 oracle oinstall 991 11月 21 18:28 orcl1_arc0_307379.trm -rw-r-----. 1 oracle oinstall 48492 11月 27 18:12 orcl1_arc0_49995.trc ・・・
そのため障害発生前後のファイルを絞り込み、該当ファイルのみを取得するのは少々手間がかかります。
しかしTFAを使用することで、特定時間に出力されているファイルを自動で判別し、zipファイル形式で保存することが可能です。
ログファイルの格納位置は、環境設定やDB名等により異なります。
そのため、具体的なログの配置場所をサポートセンターからお伝えすることが難しく、当社からログファイルの提供を依頼する場合、下記のように依頼することが多いです。
<依頼例>
■ファイル提供について
リスナーの状態確認のため、リスナーログファイルのご提供をお願いします。
- listener.logファイル
$ADR_BASE/diag/tnslsnr/<ホスト名>/<リスナー名>/trace/listener.log
この依頼を受けて、TFAを使用していない場合は、上記の情報からお客様自身でログファイルの配置場所を特定する必要があります。
TFAを使用している場合は、前述のとおり定型コマンドで情報取得が可能なため、該当ログを探していただく必要はありません。
これまでの内容を踏まえた具体例として、ORA-600というエラーが発生した場合の情報取得フローを見ていきましょう。
ORA-600とはOracle Databaseの内部的な問題を検知した場合に発生する汎用的なエラーであり、詳細な原因調査にはログファイル等からの調査が必要です。
具体的には、初動では一般的に以下の情報提供をお願いしています。
・アラート・ログ・ファイル
・トレース・ファイル
・インシデント・ファイル
実際の情報取得方法について、TFAを使用する/使用しない場合をそれぞれ解説します。
TFAを使用しない場合、下記のような形でファイル提供を依頼することが一般的です。
<依頼例>
■ファイル提供について
下記ファイルのご提供をお願いいたします。
- アラート・ログ・ファイル
$ADR_BASE/diag/rdbms/<db_unique_name>/<sid>/trace/alert_<sid>.log
また事象発生時間の前後に下記ファイルが出力されている場合は、併せてご提供をお願いいたします。
- トレース・ファイル(*.trc)
$ADR_BASE/diag/rdbms/<db_unique_name>/<sid>/trace/ *配下
- インシデント・ファイル(*.trc)
$ADR_BASE/diag/rdbms/<db_unique_name>/<sid>/incident/incdir_<incident_number>/ *配下
例として、障害発生時刻が12/1 10:00の場合、前述のディレクトリ配下に移動して、12/1 10:00前後に情報が出力されているファイルを確認し、情報を取得する必要があります。
Oracle Databaseの操作に慣れている方でも情報取得に手間取るケースがあります。普段からOracle Databaseのログ調査を行っている当社サポートセンター担当者でも、対象ファイルを選別してzip形式で保存するまでに約10分ほど時間を要していました(※テスト環境での実測値)。
上記は事象発生時刻がピンポイントで分かっており、また環境もSingle構成と比較的簡単なテストケースにおける実測値です。
そのため、Oracle Databaseの操作に慣れていない方がログを取得する場合や、RAC環境など構成が複雑な場合、より多くの時間がかかってしまうことが考えられます。
一方TFAを使用する場合は、下記のようなコマンドを実行することで情報取得が可能です。またアラート・ログ・ファイル以外にも、リスナー・ログ・ファイルやOS関連ログなど、様々な情報を一括で取得することができます。
<実行例>
# tfactl diagcollect -all -from "2025-12-01 07:00:00" -to "2025-12-01 13:00:00" -noclassify
TFAを使用しない場合と比較して、ログの配置場所や出力時間などを意識する必要がなく、コマンド1つ実行するだけで、簡単に調査に必要なログファイルを収集できるようになります。
ここまで様々なメリットがあるTFAですが、冒頭にも記載したとおり、まだ活用されていない環境も多い印象です。
なかなか利用が進まない要因として、Single構成ではデフォルトで導入されず、別途導入が必要である点が考えられます。
Grid Infrastructure(GI)が導入されている環境は、基本的にデフォルトでTFA が導入されますが(*1)、GIを導入しないSingle環境では別途TFAをインストールする作業が必要です。
| 構成 | TFAがデフォルトで導入されるか(*2) |
|---|---|
| Single環境 | × |
| Oracle Restart環境 | × |
| Oracle Real Application Clusters(RAC)環境 | 〇 |
| Oracle Database Appliance(ODA)環境 | 〇 |
| Oracle Exadata環境 | 〇 |
*1 Oracle Restart環境は除く
*2 2025年12月時点の情報。バージョンは19cが前提。
一度TFAを導入すれば、後はコマンドを実行するだけで簡単に情報収集ができるようになります。
TFAは、次の手順で導入が可能です。
なお、以下はLinux環境を前提として記載していますが、Windows環境でも基本的に同様の手順で導入が可能です。
1. 以下のドキュメントから 最新版のAHFをダウンロードします。
Patch 30166242: PLACEHOLDER - DOWNLOAD LATEST AHF (TFA and ORACHK/EXACHK)
https://support.oracle.com/support/?patchId=30166242(オラクル社のサイトに移動します))
※リンク先の閲覧にはMy Oracle Supportへのログインが必要です。
※プラットフォームがお客様環境に合致することをご確認ください。異なっている場合は、左側の一覧より、合致するものを選択してください。
2. ダウンロードしたzipファイルをインストール先へ配置後、解凍します。
※以下は/tmpに配置した場合の実行例です。ファイル名は読み替えてください。
<実行例>
# cd /tmp
# unzip -q AHF-LINUX_v25.10.0.zip
3. インストーラーを起動します。
起動後は画面の表示に従ってインストールを進めてください。
※以下はあくまでインストール例です。パス等は必要に応じて修正してください。
<実行例>
# ./ahf_setup ・・・ Default AHF Location : /opt/oracle.ahf Do you want to install AHF at [/opt/oracle.ahf] ? [Y]|N :Y AHF Location : /opt/oracle.ahf AHF Data Directory stores diagnostic collections and metadata. AHF Data Directory requires at least 5GB (Recommended 10GB) of free space. Please Enter AHF Data Directory : /opt/oracle.ahf AHF Data Directory : /opt/oracle.ahf/data Do you want to add AHF Notification Email IDs ? [Y]|N : N Extracting AHF to /opt/oracle.ahf ・・・ AHF binaries are available in /opt/oracle.ahf/bin AHF is successfully Installed Do you want AHF to store your My Oracle Support Credentials for Automatic Upload ? Y|[N] : N
4. 正常にTFAが起動している(Status of TFAがRUNNINGになっている)ことを確認してください。
<実行例>
# tfactl status .--------------------------------------------------------------------------------------------------. | Host | Status of TFA | PID | Port | Version | Build ID | Inventory Status | +---------+---------------+-------+-------+-------------+-----------------------+------------------+ | node1 | RUNNING | 12588 | 22007 | 25.10.0.0.0 | 251000020251104131322 | RUNNING | '---------+---------------+-------+-------+-------------+-----------------------+------------------'
TFAを導入することで、Oracle Databaseの様々なログを、コマンド一つで簡単に、取得漏れがなく収集することができます。
障害発生時にスムーズに情報収集を行い問い合わせができるように、ぜひ貴社環境でもTFAの導入をご検討ください。
|
|
田中 直樹
|
■本記事の内容について
本記事に記載されている製品およびサービス、定義及び条件は、特段の記載のない限り本記事執筆時点のものであり、予告なく変更になる可能性があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
本記事では、SYSAUX表領域の肥大化の主な原因と、現場DBAの方がいますぐ実践できる原因特定・対処・予防のステップを、具体的なSQL例とともに整理して解説します。
ランサムウェアの脅威からデータベースを守る!OCIのフルマネージドバックアップサービスZRCVは、3-2-1-1-0ルールに対応し、データ損失ゼロに近い復旧を実現します。本記事では堅牢な保護機能と、GUIで完結するわずか5ステップのシンプルな設定方法を解説します。
本記事では、お客様の自己解決率向上のために注力したFAQ作成、および、そのFAQ作成をエンジニア育成に活用した当社ならではの取り組みをご紹介します。