# [26ai] ALERT_LOG_MAX_SIZE

*El artículo también se encuentra publicado en Ingles* [***English version***](https://dbaintheshadow.com/26ai-alert-log-max-size)*.*

El artículo veremos un nuevo parámetro introducido en 26ai para poder gestionar de manera fácil y eficiente el tamaño del **alert log**, es **alert\_log\_max\_size**.

El valor por defecto del nuevo parámetro es 1000Mb:

```sql
SQL>
SQL> show parameter alert_log_max_size

NAME               TYPE        VALUE
------------------ ----------- -------
alert_log_max_size big integer 1000M

SQL>
```

Oracle internamente gestiona el **alert log** en bloques de 50Mb, es decir, nunca vamos a ver un **alert log** con un tamaño de 1000M, sino que veremos **20** ficheros de 50Mb cada uno.

Este parámetro solo se puede modificar a nivel de **CDB$Root**,no a nivel de **PDB**:

```sql
SQL> ALTER SYSTEM SET ALERT_LOG_MAX_SIZE = 150M; 

ALTER SYSTEM SET ALERT_LOG_MAX_SIZE = 150M 
* 
ERROR at line 1: ORA-65040: Operation is not allowed from within a pluggable database.
```

Vamos añadir información en el **alert log** para ver cómo se comporta Oracle:

```sql
[oracle@~]cat save_inf.sql
begin 
declare 
 i number := 0; 
 begin 
  loop i := i + 1; 
  sys.dbms_system.ksdwrt(2, 'string(''L'',?)= ' || dbms_random.string('L',trunc(dbms_random.value(10,21)))); 
 exit when i >= 10000000; 
end loop; 
end; 
end; 
/
[oracle@~] 
 watch -n 10 "sqlplus -s / as sysdba @save_inf.sql"
[oracle@l23ai alert]$ ls -lash *xml 
51M -rw-r----- 1 oracle asmdba 51M Apr 2 18:11 log_1.xml 
51M -rw-r----- 1 oracle asmdba 51M Apr 2 18:11 log_2.xml 
46M -rw-r----- 1 oracle asmdba 46M Apr 2 18:11 log.xml
```

Como podemos observar el **alert log** se ha dividido en ficheros de 50Mb!.

Una pequeña puntualizacion del nuevo parámetro, si está seteado con valor 0, el **alert log** tendrá un crecimiento ilimitado del **alert log**.

Pero ¿Podemos cambiar el valor 50Mb a otro valor? La respuesta es sí. Con el parámetro oculto "**\_alert\_segment\_size**" podremos controlar el tamaño.

```sql
SQL> ALTER SYSTEM SET "_alert_segment_size" = 30;
System altered.

SQL> show parameter "_alert_segment_size"

NAME               TYPE        VALUE
------------------ ----------- -------
_alert_segment_size integer     30

[oracle@l23ai ~]$ 
 watch -n 10 "sqlplus -s / as sysdba @save_inf.sql"
[oracle@l23ai alert]$ ls -lash *xml 
51M -rw-r----- 1 oracle asmdba 51M Apr 2 18:11 log_1.xml 
51M -rw-r----- 1 oracle asmdba 51M Apr 2 18:11 log_2.xml 
46M -rw-r----- 1 oracle asmdba 46M Apr 2 22:10 log_3.xml 
31M -rw-r----- 1 oracle asmdba 31M Apr 3 09:11 log_4.xml 
31M -rw-r----- 1 oracle asmdba 31M Apr 3 09:11 log_5.xml 
4.9M -rw-r----- 1 oracle asmdba 4.9M Apr 3 09:11 log.xml
```

Espero que os guste. ¡Nos vemos en el próximo artículo!
