Tibero Single DB 운용에 관한 Log를 안내합니다.
4. Tibero Log 확인
4.1. Tibero Log 위치 및 용도
4.1.1. $TB_HOME/instance/$TB_SID/log/
out 파일이 생성되는 경로로, 이 경로에 tbsvr.out.xxx 패턴의 파일이 생성됩니다.
tbsvr.out.xxx 패턴의(xxx는 모니터프로세스의 PID) 파일에는 에러발생시 Callstack Dump를 유발시킨 SQL문장, Callstack Dump 파일이 생성된 일시와 세션아이디, 프로세스pid, 스레드번호가 기록되어 있습니다.
파일 생성 경로는 LOG_DEFAULT_DEST 파라미터로 확인 가능합니다.
(default 경로: $TB_HOME/instance/$TB_SID/log)
$ ls -l $TB_HOME/instance/$TB_SID/log/tbsvr.out.11994
-rw------- 1 tibero dba 412 Mar 27 09:50 /tibero/tibero7/instance/tibero/log/tbsvr.out.11994
$ cat $TB_HOME/instance/$TB_SID/log/tbsvr.out.11994
[90] *** Callstack Dump by Executing DDL(ALTER SYSTEM KILL SESSION (89, 2232) mode=0) ***
[22] *** 2023/03/27 09:35:25.599 ***
[22] callstack dump from tbsvr_AGNT for [WTHR, 89, 12146/11998]
[22] SEE DUMP tbsvr.callstack.11998 (lwpid 12146) BY PSTACK
[22] *** 2023/03/27 09:50:19.269 ***
[22] callstack dump from tbsvr_AGNT for [WTHR, 89, 12146/11998]
[22] SEE DUMP tbsvr.callstack.11998 (lwpid 12146) BY PSTACK
4.1.2. $TB_HOME/instance/$TB_SID/log/callstack/
에러 발생 시 callstack file 이 생성되는 곳 입니다.
callstack file은 tbsvr.callstack.프로세스번호 패턴의 이름을 갖습니다. (예: tbsvr.callstack.11998 )
파일 생성 경로는 CALLSTACK_DUMP_DEST 파라미터로 확인 가능합니다.
(default 경로 : $TB_HOME/instance/$TB_SID/log/callstack)
$ ls -l $TB_HOME/instance/$TB_SID/log/callstack/tbsvr.callstack.11998
-rw------- 1 tibero dba 31387 Mar 27 09:50 tbsvr.callstack.11998
$ cat $TB_HOME/instance/$TB_SID/log/callstack/tbsvr.callstack.11998 | head -n10
[22] *** 2023/03/27 09:35:25.599 ***
CALL STACK DUMP BY PSTACK (from 89:12146)
Thread 11 (Thread 0x7f5be769f700 (LWP 12146)):
#0 0x00007f5c2adb9a9b in recv () from /lib64/libpthread.so.0
#1 0x00000000006df2df in tbsvr_read_msg_buf_by_wthr (timed_out=<synthetic pointer>, no_free=<optimized out>, timeout=0, cl_conn=0x7f5c2e5852c8) at /home/chef/workspace/Build_centos_7/tibero7/src/tbsvr/common/tbsvr_msg.c:944
#2 tbsvr_read_msg_internal (cl_conn=cl_conn@entry=0x7f5c2e5852c8, timeout=0, no_free=no_free@entry=0 '00') at /home/chef/workspace/Build_centos_7/tibero7/src/tbsvr/common/tbsvr_msg.c:146
4.1.3. $TB_HOME/instance/$TB_SID/log/tracedump/
디버깅을 위한 tracedump file이 생성되는 곳 입니다.
ALTER SYSTEM DUMP CALLSTACK ON ERROR 에러코드 ON/OFF; 구문을 실행해 먼저 에러코드를 설정하면, 해당 에러발생 시 tracedump 디렉토리에 디버깅 정보가 기록됩니다.
디버깅을 위한 정보 중에 SQL 에러 발생시 sql, psm 구문은 “tb_dump_프로세스아이디_세션아이디_세션시리얼번호” 형식의 이름을 갖는 파일에 기록됩니다.
SQL> ALTER SYSTEM DUMP CALLSTACK ON ERROR -7071 ON;
System altered.
SQL> DROP TABLE TIBERO.HELLO;
TBR-7071: Schema object 'TIBERO.HELLO' was not found or is invalid.
SQL> ALTER SYSTEM DUMP CALLSTACK ON ERROR -7071 OFF;
System altered.
$ cat $TB_HOME/instance/$TB_SID/log/tracedump/tb_dump_11998_91_40995.trc
PRINT CALLSTACK on error (TBR-7071)
While executing sql : [DROP TABLE TIBERO.HELLO]
이외에도 DDL dump 명령을 통해 이 디렉토리에 덤프파일이 생성됩니다.
파일 생성 경로는 TRACE_DUMP_DEST 파라미터로 확인 가능합니다.
(default 경로 : $TB_HOME/instance/$TB_SID/log/tracedump/)
SQL> ALTER SYSTEM DUMP CONTROLFILE;
System altered.
$ ls -l $TB_HOME/instance/$TB_SID/log/tracedump
-rw-r--r-- 1 tibero dba 20021 Mar 27 08:25 tb_dump_11998_89_2232.trc
$ cat $TB_HOME/instance/$TB_SID/log/tracedump/tb_dump_11998_89_2232.trc | head -n9
**Dump start at 2023-03-27 08:25:11
Control file dump
* checkpoint progress sections
(blkno = 0x1, pblkno = 0x1, blkcnt = 8
size = 16364, max = 8, used = 1, last_recid = 0)
inst #0, flags=1, dirty=0, low=0000.00012718 2023-03-27 08:25:10
LOG 13.2718/0000.00012754 2023-03-27 08:25:10
4.2. System log 확인
각 Tibero Instance에는 System log File이 있으며, 없는 경우 instance가 시작될 때 생성되고System Log에는 다음과 같은 정보가 기록됩니다.
- Database를 시작하고 종료한 시기
- instance 시작 시점의 파라미터 파일 내용
- Process 정보
- LGWR가 기록하는 로그 시퀀스 번호
- Log Switch에 대한 정보
- Tablespace 및 Undo Segment 생성
- 실행된 명령문
- 오류 메시지 및 오류에 대한 정보
System Log File에는 위와 같이 명령 기록과 주요 이벤트 결과, 에러들이 기록되므로 Database 오류를 진단하고 운용하는데 중요하게 사용되는 파일입니다.
$ SQL> select value from v$parameters where name='SLOG_DEST';
VALUE
-----------------------------------------------------------------------------------
/tibero/tibero7/instance/tibero/log/slog/
⇒ System Log File이 존재하는 디렉토리는 파라미터 SLOG_DEST 값을 조회해 확인합니다.
⇒ System Log File 이름은 sys.log 입니다.
$ vi sys.log
⇒ OS 상에서 system log file이 있는 경로로 이동해 vi 명령으로 File을 열고 ‘shift+g’ 키를 눌러 File 맨 끝으로 이동합니다.
⇒ ‘?ec=‘ 를 입력해 에러를 검색하거나, 방향키를 이용해 최근 Log를 체크합니다.
(‘ec=‘ 로 시작하는 메시지가 발견되면 OS 상에서 “tberr error-number” 를 입력해 간략한 Error내용을 검색하거나 담당 DBA에게 문의합니다.)
$ tberr -7071
/*
* err: -7071
* name: ERROR_DDL_INVALID_OBJ_NAME
* desc: Schema object '%1$s.%2$s' was not found or is invalid.
* cause: The specified object was not found or is an invalid type.
* action: Specify a valid object name.;
*/
4.3. Listener log 확인
Listener를 통해 티베로에 접속한 정보와 Listener Start/Stop Log가 기록되는 파일입니다.
$ cd $TB_HOME/instance/$TB_SID/log/lsnr
$ ls –l trace_list.log
-rw-r--r-- 1 tibero dba 74937 Mar 27 11:25 trace_list.log
$ head -n10 trace_list.log
2023/03/21 23:26:56.436 [1] listener:439 listener binded to -1:8629
2023/03/21 23:26:56.436 [1] listener:463 listener binded to -1:8631 (ssl)
2023/03/21 23:26:56.436 [5] listener:2692 accepted connection from mthr.
2023/03/21 23:26:57.911 [1] listener:718 *** listener started and got into main loop ***
2023/03/21 23:26:57.933 [5] listener:1029 a new client connection detected.
2023/03/21 23:26:57.933 [5] listener:948 a client connection from [127.0.0.1:21543]
2023/03/21 23:26:57.933 [5] listener:2540 sent a connection fd to the WTHR process 1 successfully.
2023/03/21 23:27:33.665 [2] listener:1395 listener stops listening.
2023/03/21 23:27:33.665 [2] listener:1188 listener disables the listener port.
2023/03/21 23:27:36.161 [1] listener:2316 Listener shutdown because MONP has ended or another listener exists.