Alert ファイルとは?
Alert ファイルはデータベース上で発生した様々な情報(主にエラー情報)を記録するファイルです。Alert ファイルの通常 Automatic Diagnostic Repository (ADR) が保存先になります。保存フォーマットとしてテキスト形式の Alert ファイル(ADR_BASE/diag/rdbms/{DB}/{INSTANCE}/trace/alert_{SID}.ora)と、XML 形式の ALert ファイル(ADR_BASE/diag/rdbms/{DB}/{INSTANCE}/alert/log_{#}.xml)に同じ内容が記録されます。
Oracle AI Database の Alert ログ
これまでのバージョンでは XML 形式の Alert ファイルは、一定サイズでファイルが分割され、各ファイルには通し番号が付与されていました。しかしテキスト形式の Alert ファイルには自動ローテーション機能が存在せず1つの巨大なファイルになっていました。
Oracle AI Database 26ai の初期化パラメーター
Oracle AI Database 26ai には初期化パラメーター alert_log_max_size が追加され、テキスト形式の Alert ファイルも分割されるようになりました。マニュアル に記載された初期化パラメーター alert_log_max_size の属性は以下の通りです。
| 属性 | 説明 | 備考 |
|---|---|---|
| パラメーター名 | alert_log_max_size | |
| 概要 | Alert ログの最大サイズ | |
| データ型 | Big integer | |
| デフォルト値 | 1000M | |
| 変更可否 | ALTER SYSTEM | |
| PDB で変更 | 不可 | |
| 値の範囲 | 0, 50MB(OS依存) | Linux では 50MB |
| 基本 | NO | |
| RAC 対応 | インスタンス間で異なっても良い |
この初期化パラメーターにゼロ(0)を指定するとローテーション機能が無効になります。
検証
Alert ファイルのローテーション機能を検証しました。
最小値
Oracle Linux 環境で最小値を検証したところ、50MB 以下には設定できませんでした。
SQL> ALTER SYSTEM SET alert_log_max_size=40M;
ALTER SYSTEM SET alert_log_max_size=40M
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-49901: Invalid value 40M for parameter ALERT_LOG_MAX_SIZE
Help: https://docs.oracle.com/error-help/db/ora-32017/
自動ローテーションの仕様
Oracle AI Database 26ai では XML 形式の Alert ファイルが 50MB になると新しいファイルが生成されてローテーションが行われます。同時にテキスト形式の Alert ファイルも同じ番号のファイル(alert_{SID}_{番号}.log)が生成されます。残されるファイルの個数は 「alert_log_max_size / 50MB + 1」になります。下記は、初期化パラメーター alert_log_max_size に 100M を指定した場合の例です。ファイル名に数字が付いたファイルが 2 つ作成されています。
$ ls -l alert*.log
-rw-r-----. 1 oracle oinstall 4814667 Oct 21 15:58 alert_FREE_170.log
-rw-r-----. 1 oracle oinstall 4814667 Oct 21 15:58 alert_FREE_171.log
-rw-r-----. 1 oracle oinstall 2037550 Oct 21 16:02 alert_FREE.log
i-node の検証
ローテーションが行われた場合にファイルが新規作成されるかを確認しました。下記の通り、既存のファイルを使いまわし、ファイル名を変更していることがわかります。
$ ls -i1 alert*.log
102337200 alert_FREE_170.log
102337204 alert_FREE_171.log
102337202 alert_FREE.log
$ ls -i1 alert*.log
102337204 alert_FREE_171.log
102337202 alert_FREE_172.log
102339397 alert_FREE.log
$ ls -i1 alert*.log
102339397 alert_FREE_213.log
102337200 alert_FREE_214.log
102337202 alert_FREE.log
$
ファイルの内容
テキスト形式の全 Alert ファイルの先頭には新規ファイルが作成された時刻と、非デフォルト値の初期化パラメーター値の一覧が出力されます。
2025-10-21T16:50:06.078033+09:00
Creating new log segment:
Oracle AI Database 26ai Free Release 23.26.0.0.0 - Develop, Learn, and Run for Free
Version 23.26.0.0.0.
ORACLE_HOME: /opt/oracle/product/26ai/dbhomeFree
System name: Linux
Node name: ol96-1
Release: 6.12.0-1.23.3.2.el9uek.x86_64
Version: #1 SMP PREEMPT_DYNAMIC Tue May 13 17:24:00 PDT 2025
Machine: x86_64
Using parameter settings in client-side pfile
System parameters with non-default values:
processes = 200
nls_language = "AMERICAN"
nls_territory = "AMERICA"
sga_target = 1040M
control_files = "/opt/oracle/oradata/FREE/control01.ctl"
control_files = "/opt/oracle/oradata/FREE/control02.ctl"
db_block_size = 8192
compatible = "23.6.0"
_instance_recovery_bloom_filter_size= 1048576
undo_tablespace = "UNDOTBS1"
fast_start_parallel_rollback= "FALSE"
remote_login_passwordfile= "EXCLUSIVE"
dispatchers = "(PROTOCOL=TCP) (SERVICE=FREEXDB)"
local_listener = "LISTENER_FREE"
db_name = "FREE"
open_cursors = 300
pga_aggregate_target = 346M
diagnostic_dest = "/opt/oracle"
enable_pluggable_database= TRUE
===========================================================
Dumping current patch information
===========================================================
No patches have been applied
===========================================================
Author: Noriyoshi Shinoda / Date: October 21, 2025