개요
sys.log에 반복적으로 특정 오류가 기록되지만 해당 쿼리 정보가 남아 있지 않은 경우, callstack dump를 통해 오류를 발생시킨 query를 추출하는 방법을 안내합니다.
방법
[2025-05-30T16:43:00.929537] [FRM-88] [I] THROW. ec=ERROR_NUMBER_INVALID_NUMBER(-5074) [ Given string does not represent a number in proper format.] (csr_id:70) [number.c:980:number_from_str_ctx]
SQL
복사
sys.log 에 위와 같은 에러가 주기적으로 발생하였을 때, 해당 에러를 유발하는 쿼리를 확인하는 방법은 다음과 같습니다.
문법 예시
alter system dump callstack on error -에러번호 on;
SQL
복사
적용 예시
SQL> alter system dump callstack on error -5074 on;
System altered.
SQL
복사
이후 dump 파일 내에서 수행 쿼리 확인 가능합니다.
dump 파일 생성 경로 확인 방법
•
default 경로 : $TB_HOME/instance/$TB_SID/dump/tracedump/
•
tip 파일에 명시된 파라미터 확인 (파라미터 명: TRACE_DUMP_DEST)
•
tbsql에서 dump 파일 경로 찾기SQL> show param TRACE_DUMP_DESTTRACE_DUMP_DEST /home/tibero/tibero7/instance/hwtibero/dump/tracedump/
주의
※ 자주 발생하는 에러에 대해서 과도하게 dump가 될 수 있으니 원하는 dump 획득 후 아래 쿼리 사용 하여 off합니다.
SQL> alter system dump callstack on error -15114 off;
System altered.
SQL
복사
참고
한 번에 하나의 에러 번호만 지정할 수 있으며, 여러 명령어를 실행해도 마지막으로 적용된 에러에 대해서만 dump가 수행되므로, 각 에러마다 별도로 dump를 수행해야 합니다.
SQL> alter system dump callstack on error -15114 on;
System altered.
SQL> alter system dump callstack on error -5074 on;
System altered.
SQL
복사
System altered. 되었지만 가장 마지막에 수행 된 5074 에러에 대해서만 dump 된 것을 확인할 수 있습니다.