Problema
Al momento de validar el alert log de mi base de datos, evidenciamos el siguiente mensaje
Active Session History (ASH) performed an emergency flush. This may mean that ASH is undersized. If emergency flushes are a recurring issue, you may consider increasing ASH size by setting the value of _ASH_SIZE to a sufficiently large value. Currently, ASH size is 16777216 bytes. Both ASH size and the total number of emergency flushes since instance startup can be monitored by running the following query:
select total_size,awr_flush_emergency_count from v$ash_info;
Solucion
El tamano actual de ASH se muestra en el mensaje del alert.log o tambien lo podemos encontrar utilizando el siguiente query
select total_size from v$ash_info;
Posterior, realizar el aumento al valor de _ash_size, el valor recomendado a aumentar es un 50% mas de lo que esta asignado actualmente. Por ejemplo, si total_size = 16MB, entonces aumentando el 50% mas seria (16MB + (16MB * 50%)) = 24MB.
sqlplus / as sysdba
alter system set "_ash_size"=25165824;
Puede verificar el cambio usando la siguiente selección
select total_size from v$ash_info;
NOTA: La configuración máxima para ‘_ash_size’ es 254 Mb, es decir, 127 fragmentos de 2 Mb de tamaño de fragmento (sin embargo, para 12c _ash_size se puede establecer en un valor superior a 254 Mb).
Puede enviar un valor mayor pero internamente se ajusta a 254Mb. Una vez que se ha llegado a 254 e intenta establecer un tamaño más alto, se produce un error.
ORA-2097 será objeto de dumping
1. alter system set "_ash_size"=100m; verified it was set to 100 MB
2. alter system set "_ash_size"=300m; verified it was set to 250 MB
3. alter system set "_ash_size"=400m;
ORA-2097: parameter cannot be modified because specified value is invalid
Anexos parametro _ASH_SIZE
Bajo la nota de Oracle (Doc ID 1385872.1) de la cual tambien podremos obtener información.
Te invito a seguir consultando más errores relacionados a Oracle dando clic aquí.