본문 바로가기

IT관련

오라클 에러 정보 (ORA-00600) - Internal Error Exception

ORA-00600 에러는 Internal Error Code 로 ORA-07445 와 함께 대표적인 오라클 DBMS 예외 Exception 입니다.
다른 에러들은 사용자의 실수 또는 DB 사용환경상의 이슈로 자주 발생할 수 있고, 그걸 오라클이 잘 알기때문에
따로 정리하고 에러코드를 부여합니다. 예) ORA-01017 : 유저명이나 패스워드 잘못 입력한 경우

하지만, 이렇게 잘 알려진 경우가 아닌 버그성으로 특수한 경우에 발생하는 케이스가 있을 수 있습니다.
이런 경우 오라클은 ORA-00600 에러를 Alert Log 에 다음과 같은 포맷으로 찍습니다.

ORA-00600: internal error code, arguments: [qeaeDecompress: kgcddo], [12], [7495], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/dataware/AAA1/incident/incdir_247721/AAA1_ora_343_i247721.trc

DB서버의 Character Set 환경에 따라 영어로 찍는 경우가 있고, 한글로 찍는 경우가 있습니다.

ORA-00600: 내부 오류 코드, 인수: [qkagby.noexec], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/BBB1/incident/incdir_304270/BBB1_ora_27749_i404270.trc

 

ORA-00600 에러의 경우, 잘 알려지지 않은, 우리 사이트에서만 특이하게 발생하는 버그성일 확률이 높기 때문에 검색을 해서 찾을 수 없는 경우가 대부분입니다.

가장 확실한 방법은 오라클 ACS 엔지니어의 도움을 받거나, 오라클 MOS(My Oracle Support) 사이트에서 검색해보는 것입니다. (MOS는 과거 메타링크라고 알려져있는 오라클 지식공유사이트..)
검색할 때는 ORA-00600 키워드만 입력하면 안되고, 뒤에 [ ], [ ] 에 나오는 값을 같이 넣어서 검색해야 합니다.

다행히 운좋게 이미 등록된 에러인 경우 Workaround(회피방법)나 Patch(패치)를 찾을 수 있습니다.
만약, 검색해도 나오는게 없다면 신규 상황일 가능성이 있고, 이때는 MOS 사이트에서 SR(Service Request)를 생성해서
오라클 엔지니어의 도움을 받아야 합니다.

ORA-00600 에러가 발생할 때, 위 샘플에서처럼 트레이스 파일(*.trc)을 같이 생성하는데, 이 파일을 열어서 확인해보면
좀 더 자세한 정보를 확인할 수 있습니다. (하지만, 실제로는 봐도 잘 모릅니다 ㅎㅎ)

오라클 MOS 사이트에서 ORA-00600 에러 검색시 [ ], [ ] 에 들어있는 값들을 같이 키워드로 넣어서 검색하고,
나오지 않을 때는 맨 뒤에 있는 값부터 없애면서 검색키워드를 줄여가면서 검색해보는 것도 팁이 될 수 있습니다.
같은 에러라도 뒤에 값이 조금씩 다른 경우가 있기 때문입니다.

 

ORA-00600 에러는 발생한다고 해서 당장 DB에 문제가 생기는 것은 아닌 경우가 많기 때문에 DBA가 주기적으로 모니터링하다가 ORA-00600 에러를 보게되면 버그와 관련은 없는지 확인해보는 습관을 가지는 것이 좋습니다.

*** 아래는 샘플...

* ORA-600[2252]
  -- 11.1.0.7 이하버전에서 DB Link를 사용시 SCN의 비정상적인 증가로 인해 DB가 비정상 종료되는 경우가 있음.
  -- 2012년버전 Patchset 적용했다면 패치되었음.
  -- 클라이언트상에서 ORA-19706 발생

 

*** 아래는 Oerr 출력 output

$ oerr ora 600
00600, 00000, "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]"
// *Cause: This is the generic internal error number for Oracle program
//         exceptions. It indicates that a process has encountered a low-level,
//         unexpected condition. The first argument is the internal message
//         number. This argument and the database version number are critical in
//         identifying the root cause and the potential impact to your system.
//
// *Action: Visit My Oracle Support to access the ORA-00600 Lookup tool
//          (reference Note 600.1) for more information regarding the specific
//          ORA-00600 error encountered.
//
//          An Incident has been created for this error in the Automatic
//          Diagnostic Repository (ADR). When logging a service request, use
//          the Incident Packaging Service (IPS) from the Support Workbench
//          or the ADR Command Interpreter (ADRCI) to automatically package the
//          relevant trace information (reference My Oracle Support Note 411.1).
//
//          The following information should also be gathered to help determine
//          the root cause:
//             - changes leading up to the error
//             - events or unusual circumstances leading up to the error
//             - operations attempted prior to the error
//             - conditions of the operating system and databases at the time
//               of the error
//
//          Note: The cause of this message may manifest itself as different
//          errors at different times. Be aware of the history of errors that
//          occurred before this internal error.

 

 

이것도 참고요 => 오라클 Alertlog 파일 분석 프로그램 다운로드

이것도 참고요 => ORA-600, ORA-7445 등 Internal 에러 분석할때 필요한 정보수집 TFA툴 소개