기술 정보
home
채널 소개
home

sys.log 에러 유발 SQL 확인 방법

문서 유형
기술 정보
분야
App개발
키워드
memlog
sys.log
tbsql
적용 제품 버전
6F

개요

SQL 수행 중 sys.log에 에러가 발생한 로그들에 대해 에러를 유발한 SQL을 확인할 수 있는 방법을 예시와 함께 안내합니다.

방법

적용 예시

사용 환경

client tool: tbsql
DBMS: Tibero6

에러 발생 상황

SQL> desc tibero.test COLUMN_NAME TYPE CONSTRAINT ---------------------------------------- ------------------ -------------------- ID NUMBER NAME VARCHAR(20) ADDRESS VARCHAR(50) SQL> insert into tibero.test values (1,'aaaaaaaaaaaaaaaaaaaaaaaaa','bbb'); TBR-11048: "TIBERO"."TEST"."NAME" The value is too large for the column. (Actual value: 25, Maximum value: 20)
SQL
복사

1. memlog path 확인

SQL> show parameter mem_log_dest NAME TYPE VALUE ---------------------------- -------- ---------------------------------------- MEM_LOG_DEST DIRNAME /home/tibero_single/tibero6/instance/tibero_sing1/log/memlog/
SQL
복사

2. sys.log에서 에러 확인

vi sys.log ... [05-17T10:41:00.472773] [FRM-63] [I] THROW. ec=ERROR_EXP_NOT_FIT_LEN(-11048) [ "TIBERO"."TEST"."NAME" The value is too large for the column. (Actual value: 25, Maximum value: 20)] (csr_id:19) [dt.h:675:dtv_pad_space_or_check_fit_into] ...
SQL
복사

3. memlog dump 수행

sys user로 로그인 후 memlog dump를 수행합니다.
SQL> alter system dump memlog 63;> 위에서 확인한 세션id 입력 System altered.
SQL
복사

4. memlog dumpfile 확인

CSR_ID:19 을 기준으로 검색 시 관련 SQL을 확인할 수 있습니다.
[tibero_single@test02 memlog]$ ls -al 합계 8 drwxr-xr-x. 2 tibero_single dba 34 517 10:42 . drwxr-xr-x. 8 tibero_single dba 123 517 10:42 .. -rw-r--r--. 1 tibero_single dba 7112 5월 17 10:42 sql_memlog.2358.63.0> 파일명은 sql_memlog.xxxx.63.x 으로 위에서 확인한 세션id가 포함되어있습니다. 따라서 세션id 및 file 생성시간등을 참고하여 file을 확인합니다. $ vi sql_memlog.2358.63.0 ##파일에서 CSR_ID:19 찾기 ... WHERE HH.OBJ_ID = ? AND HH.COL_NO = ? AND HH.HIST_HEAD_ID = H.HIST_HEAD_ID(+) ORDER BY BUCKET 05/17 10:41:00.471870 CSR_ID:19 insert into tibero.test values (1,'aaaaaaaaaaaaaaaaaaaaaaaaa','bbb') 05/17 10:41:00.472359 CSR_ID:20 SELECT /*+ default_stat index(HH _DD_HIST_HEAD_IDX1) use_nl_with_index(H _DD_HISTOGRAM_IDX1) ordered */ ...
SQL
복사
주의
dump 대상 세션에서 다수의 SQL 사용 혹은 매우 긴 SQL 수행과 같은 상황 발생 시, 이전 SQL은 밀려나 조회되지 않을 수 있습니다.