ORA-03137: TTC protocol internal error : [12333] [4] [195] [2] [] [] [] []

ORA-03137: TTC protocol internal error : [12333] [4] [195] [2] [] [] [] []


_optim_peek_user_binds Parameter 변경

1. 에러현상

▶ Forms 화면 쿼리 시 Ora-03114 not connected to oracle 에러 발생.

 

2. 체크사항

2.1 DB 서버 alert 파일 확인

▶ 파일

alert.log

▶ 에러

 ORA-03137: TTC protocol internal error

2.2 DB 서버 trace 파일 확인

▶ora_9896_i184522.trc

▶ 내용 생략.

2.3  메타링크

     ▶ 오라클 메타링크에서 ORA-03137를 검색하니 다음과 같은 버그가 알려져 있음.

Bug 9703463  ORA-3137 [12333] or ORA-600 [kpobav-1] When Using Bind Peeking

This note gives a brief overview of bug 9703463.
The content was last updated on: 17-SEP-2011
Click here for details of each of the sections below.

Affects:
Product (Component)
   
Oracle Server (Rdbms)
Range of versions believed to be affected
   
Versions >= 11.1 but BELOW 12.1
Versions confirmed as being affected

    11.2.0.1
    11.1.0.7

Platforms affected
   

Generic (all / most platforms affected)

Fixed:

This issue is fixed in
   

    12.1 (Future Release)
    11.2.0.2 (Server Patch Set)
    11.2.0.1 Bundle Patch 12 for Exadata Database
    11.1.0.7.8 Patch Set Update
    11.2.0.1 Patch 8 on Windows Platforms
    11.1.0.7 Patch 37 on Windows Platforms

Symptoms:
·         
·         Error May Occur
·         Internal Error May Occur (ORA-600)
·         ORA-3137
·         ORA-600 [kpobav-1]
·         Stack is likely to include kxsPeekBind

Description
               Frequent errors like ORA-3137 [12333] are raised. If the patch for bug:9243912
               has been applied, you will see ORA-600 [kpobav-1] errors.
 
               Rediscovery Notes:
              Optimizer bind peeking in use
              The call stack includes "kpobav opibvg kxsPeekBinds kkscsCompareBinds"

              See note:1243836.1 for a detailed description of the diagnostics

     Workaround

              Disable bind peeking by setting:
              SQL> alter system set "_optim_peek_user_binds"=false;

3. 조치사항

11.2.0.2 (Server Patch Set) 또는 11.2.0.1 Patch 6 on Windows Platforms 버전으로
패치를 해야 하나 할 수 없는 상황이므로 권고한 바 대로 옵티마이저 히든 파라매터 변경 함.
ALTER SYSTEM SET _optim_peek_user_binds=FALSE

4. 조치이후
  현재까지 alert파일에 에러가 기록되지 않았으며, forms 조회시에도 에러 없음.

5. 참고사항 
http://wiki.ex-em.com/index.php/OPTIM_PEEK_USER_BINDS
파라매터명 : _OPTIM_PEEK_USER_BINDS
기본값    :  TRUE
출시버전  :  9.0.1
Scope    :  Instance/Session

Bind Variable Peeking (이하 BVP. 바인드 변수 엿보기) 기능을 활성화할지의 여부를 결정한다.
BVP란 Bind 변수를 포함한 SQL 문장에 대한 최적화 작업을 수행할 때, Bind 변수가 가리키는 값을
참조하는 것을 의미한다.
Oracle은 BVP를 통해 SQL 문장이 실행될 당시의 Bind 값을 이용하기 때문에 최적의 실행 계획을
수립할 수 있다.
BVP를 사용할 경우 Explain Plan 명령문을 통해서 확인한 실행 계획(Execution Plan)이 실제 운영
환경에서는 적용되지 않을 수 있다. Explain Plan 명령문에서는 BVP가 적용되지 않기 때문에 BVP가
적용된 런타임의 실행 계획과는 다른 실행 계획을 보고할 가능성이 있다.

만일 테스트 환경에서 성공적으로 수행된 SQL 문장이 런타임에 느린 성공을 보인다면 일차적으로
BVP에 의한 사이드 이펙트가 아닌지 검증해보아야 한다. 런타임의 실행 계획은 V$SQL_PLAN 뷰를 통해 확인 가능하다.



티스토리 툴바