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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Active Session History (ASH) Performed An Emergency Flush Messages In The Alert Log相关的知识,希望对你有一定的参考价值。

  技术分享

技术分享

In this Document

  Symptoms
  Cause
  Solution

 

This document is being delivered to you via Oracle Support‘s Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.1.0.6 and later
Information in this document applies to any platform.

SYMPTOMS

Periodically see the following message 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 <some value> 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;

CAUSE

Typically some activity on system causes more active sessions, therefore filling the ASH buffers faster than usual causing this message to be displayed. It is not a problem per se, just indicates the buffers might need to be increased to support peak activity on the database.

SOLUTION

The current ASH size is displayed in the message in the alert log, or can be found using the following SQL statement.

select total_size from v$ash_info;

Then increase the value for _ash_size by some value, like 50% more than what is currently allocated.  For example if total_size = 16MB, then an increase of 50% more would be (16MB + (16MB * 50%)) = 24MB. 

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;
 
 
 
示例:
 
      生产环境告警日志:

   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;

 
查询及处理: 
 
SQL> select total_size/1024/1024,awr_flush_emergency_count from v$ash_info;

TOTAL_SIZE/1024/1024  AWR_FLUSH_EMERGENCY_COUNT
--------------------                   -------------------------
        16                                                1

SQL> alter system set _ash_size"=25165824;

System altered.

 

SQL> select total_size/1024/1024,awr_flush_emergency_count from v$ash_info;

TOTAL_SIZE/1024/1024 AWR_FLUSH_EMERGENCY_COUNT
--------------------              -------------------------
           24                                     2

 

以上是关于Active Session History (ASH) Performed An Emergency Flush Messages In The Alert Log的主要内容,如果未能解决你的问题,请参考以下文章

Oracle v$session视图显示客户端IP地址

查看历史会话等待事件对应的session信息

Thinkphp5.1 报错 ini_set(): A session is active解决方案

Thinkphp5.1 报错 ini_set(): A session is active解决方案

Thinkphp5.1 报错 ini_set(): A session is active解决方案

Thinkphp5.1 报错 ini_set(): A session is active解决方案