Understanding ALERT_LOG_MAX_SIZE in Oracle Database 26ai (RU 23.9)

Starting with Oracle AI Database 26ai, Release Update 23.9, Oracle introduced a new initialization parameter called ALERT_LOG_MAX_SIZE. This parameter gives DBAs more control over the size and management of the alert log - one of the most important diagnostic files in an Oracle environment.

In this post, we’ll break down what the parameter does, how it behaves, and what you need to know before setting it in your database.

What Is ALERT_LOG_MAX_SIZE?

ALERT_LOG_MAX_SIZE specifies the maximum size of the XML alert log, expressed in bytes. It helps prevent the alert log from growing indefinitely and consuming unnecessary disk space.

Property

Description

Parameter Type

Big integer

Syntax

ALERT_LOG_MAX_SIZE = integer [K,M,G]

Default Value

1000M

Modifiable

Yes (via ALTER SYSTEM)

Modifiable in PDB

No

Range

0, and 50 MB up to OS-dependent maximum

Basic Parameter

No

Oracle RAC

Each instance may have its own value


How Oracle Allocates Alert Log Space

Oracle allocates the alert log in segments of 50 MB each.
This design is important because:

  • The default value of 1000 MB becomes 20 segments × 50 MB.
  • If you set a value not divisible by 50 MB, Oracle rounds up to the next 50 MB segment boundary.

Example

If you set:

ALTER SYSTEM SET ALERT_LOG_MAX_SIZE = 130M;

You might expect a 130 MB limit, but Oracle allocates:

  • 130 MB → rounded up to 150 MB
  • Effective size = 3 segments of 50 MB

This behaviour is automatic and by design.

Special Case: Setting the Parameter to 0

When you set:

ALTER SYSTEM SET ALERT_LOG_MAX_SIZE = 0;

It means:

  • The XML alert log can grow to an unlimited number of 50 MB segments.
  • The text alert log becomes a single unlimited segment.

Use this setting only when you want no restriction on alert log size — typically in environments where storage is tightly monitored or logs are managed by external tools.

Invalid Values

Oracle enforces constraints for safety:

  • Any value less than 50 MB, except 0, throws an error.
  • This ensures the segment-based architecture remains consistent.

When Should You Modify ALERT_LOG_MAX_SIZE?

You may want to adjust this parameter when:

Your alert log grows rapidly

High-volume environments with lots of diagnostics (e.g., RAC, DG, heavy PL/SQL logging).

You want to restrict disk usage

To prevent unexpected partition growth.

You want more predictable log rotation

Especially when integrating with monitoring/logging tools.

Each RAC instance requires different limits

The parameter is instance-specific in RAC.

Example: Setting the Parameter

·      To modify the maximum alert log size:

ALTER SYSTEM SET ALERT_LOG_MAX_SIZE = 2G;

This would allocate:

  • 2 GB → automatically rounded to the nearest multiple of 50 MB
  • Effective size = 40 × 50 MB segments = 2000 MB

Key Takeaways

  • Introduced in Oracle 26ai RU 23.9.
  • Controls the maximum size of the XML alert log.
  • Allocation occurs in 50 MB segments.
  • Oracle rounds the size up to the next multiple of 50 MB.
  • Setting it to 0 means unlimited growth.
  • Not modifiable inside a PDB.
  • RAC allows different values per instance.

Comments

Popular posts from this blog

ORA-65139: Mismatch between XML metadata file and data file

Useful OEM Queries to get Target details from OEM Repository

TFA-00002 : Oracle Trace File Analyzer (TFA) is not running