달력

09

« 2017/09 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

오라클 성능테스트 중에 해당 메세지가 ALERT LOG 에 찍혔다.

<msg time='2013-09-27T11:17:47.865+09:00' org_id='oracle' comp_id='rdbms'

 client_id='' type='UNKNOWN' level='16'

 host_id='호스트' host_addr='아이피' module=''

 pid='76246'>

 <txt>Thread 1 cannot allocate new log, sequence 1264

 </txt>

</msg>

<msg time='2013-09-27T11:17:47.870+09:00' org_id='oracle' comp_id='rdbms'

 client_id='' type='UNKNOWN' level='16'

 host_id='호스트' host_addr='아이피' module=''

 pid='76246'>

 <txt>Private strand flush not complete

 </txt>

</msg>

<msg time='2013-09-27T11:17:47.873+09:00' org_id='oracle' comp_id='rdbms'

 client_id='' type='UNKNOWN' level='16'

 host_id='호스트' host_addr='아이피' module=''

 pid='76246'>

 <txt>  Current log# 3 seq# 1263 mem# 0: /oradata/oracle/oradata/redo/redo03a.log

 </txt>

</msg>


저 메세지의 정체를 확인하고자 함.

내기억에 oracle 공부할때 redo strand라는 이름이 머릿속에 있다.

인터넷 구글링중 : 

LGWR이벤트에서 DBWR작업 완료대기중에 IMU FLUSH 중에 발생하는 메세지라고 하는것같다~(해석의 한계)

관련 메타링크라고하는데 메타링크 못들어가므로 일단 No.만 기록 : Oracle Metalink note 372557.1


신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

Alert Log에 아래와 같은 메세지가 찍혔다.

<msg time='2013-09-27T09:49:43.403+09:00' org_id='oracle' comp_id='rdbms'

 msg_id='kewa_eflush_cb:4334:2772171331' client_id='' type='NOTIFICATION'

 group='ash' level='16' host_id='호스트아이디'

 host_addr='호스트아이피' module='MMON_SLAVE' pid='21117'>

 <txt>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 167772160 bytes. Both ASH size and the total number of emergency flushes sin

ce instance startup can be monitored by running the following query:

 select total_size,awr_flush_emergency_count from v$ash_info;

 </txt>


ASH BUFFER에 담긴 데이터가 이~멀전씨하게 플러시가 되어서 메세지를 남긴것 같은데~ 관련 사항을 조사함.

1. 위 메세지대로 v$ASH_INFO 의 TOTAL_SIZE 확인

SELECT TOTAL_SIZE FROM V$ASH_INFO;


2. 어찌하였든 버퍼니까 어딘가 메모리에 올릴것이다 어디에 올릴까 SGA일것인데 그래서 SGASTAT 뒤져보다.

SELECT *FROM V$SGASTAT WHERE BYTES = (SELECT TOTAL_SIZE FROM V$ASH_INFO);


SQL> SELECT *FROM V$SGASTAT WHERE BYTES = (SELECT TOTAL_SIZE FROM V$ASH_INFO);

POOL         NAME                            BYTES

------------ -------------------------- ----------

shared pool  ASH buffers                 167772160

SQL>


3. SGA 중에 SHARED POOL 을 씀을 확인후 설정한값을 고려하여 사이즈를 적절히 늘려줬다.

- 설정된 사이즈중에 저놈만 일치했고 관련 용어가 저놈임을 확실하다라고 판단!

SQL> alter system set "_ash_size"=251658240 scope=both;

System altered.

SQL> select total_size,awr_flush_emergency_count from v$ash_info;

TOTAL_SIZE AWR_FLUSH_EMERGENCY_COUNT

---------- -------------------------

 251658240                         9

SQL> SELECT *FROM V$SGASTAT WHERE BYTES = (SELECT TOTAL_SIZE FROM V$ASH_INFO);

POOL         NAME                            BYTES

------------ -------------------------- ----------

shared pool  ASH buffers                 251658240

SQL> 


4. 완료.

현재 DB서버의 여러가지 성능테스트중이어서 짧은시간에 쌓이는 정보들이 많아서 또한 최대 성능을 테스트하기위해서 세션들이
우르르 붙어서 작업을 하다보니 데이터가 많아지나보다 버퍼에 다 못올렸겠지라고 생각되며 오라클이 
아~~~ 절라 이멀전씨하다~ 플러시! 
이래서 플러시 되느라 메세지가 찍혀진것같다.



신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설