alert日誌中出現ash size的警告

jeanron100發表於2014-03-17
今天檢視資料庫的alert日誌總出現瞭如下的警告。
Archived Log entry 202 added for thread 1 sequence 202 ID 0x1ed7a02c dest 1:
Sat Mar 15 01:37:30 2014
Completed checkpoint up to RBA [0xca.2.10], SCN: 267711453
Sat Mar 15 01:44:58 2014
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 67108864 bytes. Both ASH size and the total number of emergency flushe
s since instance startup can be monitored by running the following query:
 select total_size,awr_flush_emergency_count from v$ash_info;
Sat Mar 15 01:45:00 2014
Beginning log switch checkpoint up to RBA [0xcc.2.10], SCN: 270149004
Thread 1 advanced to log sequence 204 (LGWR switch)
  Current log# 4 seq# 204 mem# 0: /TEST1/db03/oradata/PRDTEST1/redo_g4_m1.dbf
  Current log# 4 seq# 204 mem# 1: /TEST1/db04/oradata/PRDTEST1/redo_g4_m2.dbf
Sat Mar 15 01:45:11 2014

ash的size大小設定是隱含引數_ash_size中設定的。檢視metalink(文件 ID 1385872.1)

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;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1123071/,如需轉載,請註明出處,否則將追究法律責任。

相關文章