내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
다운로드
trending_flat
OS환경 : AIX 5.3(64bit)
DB 환경 : Oracle Database 10.2.0.4
에러 : cursor: pin S wait on X
active sesion 이 평소엔 30정도를 유지하다가
250까지 치솟아서 확인해보니 cursor: pin S wait on X wait event가 올라와 있었음
해결 방법 :
아래 쿼리로 SID 조회
1 2 3 4 5 6 7 | SQL> select p2raw,to_number(substr(to_char(rawtohex(p2raw)),1,8),'XXXXXXXX') sid from v$session where event = 'cursor: pin S wait on X'; P2RAW SID ---------------- --- 0000001F00000000 31 |
31은 첫 8자리 0000001F 값의 10진수 값임
즉 현재 Holder가 31번 세션이라는 의미
Maxgauge와 같이 Active Session 목록과 대기 이벤트 목록을 저장하는 모니터링 툴에서는 Holder 세션을 위와 같이 손쉽게 찾아낼 수가 있음
찾은 SID로 serial#, sql_id 등 찾기
1 2 | SQL> select sid,serial#,SQL_ID,BLOCKING_SESSION,BLOCKING_SESSION_STATUS,EVENT from v$session where SID=31; |
11g이상에서는 아래 sql을 사용하여 바로 찾을 수 있음
1 2 | SQL> select sid,serial#,SQL_ID,BLOCKING_SESSION,BLOCKING_SESSION_STATUS,EVENT from v$session where event ='cursor: pin S wait on X'; |
해당 세션을 찾은뒤 추후 원인 분석 및 필요시 유저 kill
나의 경우 10여분이 흐른뒤 자동으로 해소됨
원인 : library cache pin 경합 및 뮤텍스 경합
해당 시간대 alert log 확인 결과
다량의 log switch 가 발견됨(약 5분간 24번)
대량 data를 처리하는 dml을 실행 시켰을 가능성이 높아보임
(평소 하루에 log switch가 5번 정도 일어남)
참조 :
How to Determine the Blocking Session for Event: 'cursor: pin S wait on X' (문서 ID 786507.1)
Troubleshooting 'cursor: pin S wait on X' waits. (문서 ID 1349387.1)
'ORACLE > Performance Tuning ' 카테고리의 다른 글
실행계획이 변경된 SQL 확인 및 이유 확인 (0) | 2019.01.08 |
---|---|
ASH를 이용한 wait event 및 session 찾기 (0) | 2019.01.03 |
오라클 실행계획 확인 및 트레이스 방법 (4) | 2019.01.03 |
STATSPACK 테이블로 특정 시간대 SQL_ID별 실행횟수 확인 (0) | 2018.12.28 |
오라클 무료 모니터링 툴 myora 사용법 (2) | 2018.12.28 |