Active Session History (ASH) Performed An Emergency Flush Messages In The Alert Log

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 19922944 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; 

So actually this is not an alert. it warn us that ASH size is filled. ASH are is used for session info for historical views. some db’s are creates more ASH info, because they have more session and transactions. 

We can increase ASH area.

sqlplus / as sysdba
alter system set "_ash_size"=25165824;

You can verify the change using the following select:

select total_size from v$ash_info;

NOTE: The max setting for "_ash_size" is 254Mb, i.e. 127 chunks of 2 Mb chunksize (however, for 12c _ash_size can be set to a value greater than 254Mb).
You can submit a higher value but internally it is adjusted to 254Mb. Once 254 has been reached, and you try to set higher size, error
ORA-2097 will be dumped:

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

If you like please follow and comment