Dumptrc
dumptrc#
개요#
Altibase 서버가 비정상 종료될 때 $ALTIBASE_HOME/trc 디렉토리에 기록되는 트레이스 로그 파일을 사용자가 식별할 수 있는 형태로 변환하여 출력한다.
dumptrc [-h |[-p file_path][-c [-s]]
[-a|-i file_name [-i file_name]..|-e file_name [-e file_name]..] [-n file_count] [-x] |-f |-v]
구문#
파라미터#
파라미터 | 설명 |
---|---|
-h | 도움말을 출력한다. 파라미터를 생략하거나 다른 파라미터와 중복하여 사용할 경우 도움말이 우선한다. |
-p | 트레이스 로그 파일을 가져오는 경로를 지정한다. 경로를 지정하지 않으면 기본적으로 $ALTIBASE_HOME/trc 디렉토리의 로그 파일을 가져온다. |
-c | altibase_error.log에 기록된 ALTIBASE 프로세스 콜 스택을 사용자가 식별할 수 있는 함수명으로 변환하여 출력한다. 콜 스택의 주소를 함수명으로 변경하지 않으려면 -s 옵션를 사용한다. 파라미터 -a, -i, -e, -n과 함께 사용하지 않으면 콜 스택만 기록된다. |
-s | 트레이스 로그에 기록된 콜 스택만을 출력하고 함수명으로 변경하지 않는다. |
-a | 트레이스 로그 파일의 전부를 정렬하여 출력한다. |
-i | 지정하는 트레이스 로그 파일을 출력한다. 복수의 로그 파일이 출력 가능하다. '-e' 파라미터와 함께 사용할 수 없다. |
-e | 지정한 트레이스 로그 파일을 제외한 모든 파일을 출력한다. 반복하여 복수의 로그 파일을 제거할 수 있으며, '-i' 파라미터와 함께 사용할 수 없다. |
-n | 한 번에 출력할 로그의 개수를 지정한다. 1~127개의 로그를 출력할 수 있으며, 지정하지 않으면 10개의 로그가 출력된다. |
-f | 트레이스 로그 파일이 기록될 때마다 추가되는 로그 메세지를 출력한다. |
-x | altibase버전과 dumptrc버전이 틀린 경우도 콜 스택을 출력한다. |
-v | dumptrc의 버전을 출력한다. |
설명#
프로세스 콜 스택에는 Altibase 종료 당시 수행되던 Altibase 내부 모듈에 대한 정보가 기록된다. dumptrc를 이용하여 가져올 수 있는 트레이스 로그 파일은 $ALTIBASE_HOME/trc 디렉터리에 기록되는 아래의 파일들을 사용할 수 있다.
- ERROR : altibase_error.log
- SERVER : altibase_boot.log
- SM : altibase_sm.log
- RP : altibase_rp.log
- QP : altibase_qp.log
- JOB : altibase_job.log
- DK : altibase_dk.log
- DR : altibase_dr.log
- XA : altibase_xa.log
- MM : altibase_mm.log
- RP_CONFLICT : altibase_rp_conflict.log
- DUMP : altibase_dump.log
- TRC : altibase_trace.log
- SNMP : altibase_snmp.log
- CM : altibase_cm.log
- MISC : altibase_misc.log
- SD : altibase_sd.log
만약 $ALTIBASE_HOME/trc가 아닌 다른 경로에 있는 트레이스 로그 파일을 출력할 때에는 '-p'를 사용하여 경로를 변경할 수 있다.
Altibase 서버가 비정상 종료할 경우, 프로세스 콜 스택을 dumptrc로 변환하여 Altibase 기술서비스 팀에 송부하면, 보다 빨리 문제를 해결할 수 있을 것이다.
주의 사항#
Altibase의 실행 파일의 버전과 dumptrc의 버전이 동일해야 정확한 콜 스택 정보를 확인할 수 있다.버전이 틀릴 경우는 잘못된 값이 나올 수 있기 때문에 기본적으로 경고메시지를 보여주고 콜 스택을 출력하지 않는다. 버전이 틀릴때도 강제로 콜스택을 출력하기 위해서는 -x옵션을 사용하면 된다.
사용 예#
altibase_error.log와 altibase_boot.log를 묶어서 출력한다.
$ dumptrc -i server -i error
[2015/10/21 17:29:42 55C][PID:32702][Thread-2]
==> Initialize Disaster Recovery Manager
[2015/10/21 17:29:42 55D][PID:32702][Thread-2]
... [SUCCESS]
[2015/10/21 17:29:42 55E][PID:32702][Thread-2]
==> Initialize MMX Service
[2015/10/21 17:29:42 55F][PID:32702][Thread-2]
... [SUCCESS]
[2015/10/21 17:29:42 560][PID:32702][Thread-2]
==> Initialize Audit Service
[2015/10/21 17:29:42 561][PID:32702][Thread-2]
... [SUCCESS]
[2015/10/21 17:29:42 562][PID:32702][Thread-2]
==> Initialize Job Manager
[2015/10/21 17:29:42 563][PID:32702][Thread-2]
... [SUCCESS]
[2015/10/21 17:29:42 564][PID:32702][Thread-2]
--- STARTUP Process SUCCESS ---
[2015/10/21 17:30:51 57B] Dump of Stack
SIGNAL INFORMATION ==============================
Signal 6(SIGABRT) caught.
Sent by process : 2331
Sent by user : 1000
BEGIN-DUMP ======================================
===== SERVER =====
ALTIBASE hdb
Product version : 7.3.0.0.0
CPU : X86
Operating System : x86_64-unknown-linux-gnu
Process ID : 32698
Thread No : 0
END-DUMP ========================================
BEGIN-STACK [CRASH] =============================
Caller[0] 00000000011E0EBF
Caller[1] 0000000000426CFE
Caller[2] 00007FD306FD4CB0
Caller[3] 00007FD30609F763
Caller[4] 000000000042F66F
Caller[5] 00000000004213CE
Caller[6] 000000000041D1E0
Caller[7] 00007FD305FD376D
Caller[8] 00000000004206BD
END-STACK =======================================
10 logs printed.
error.log만 제외하고 출력한다.
$ dumptrc -e error
[2015/10/21 17:29:48 571][PID:32702][Thread-2]
[EXEC_DDL_BEGIN : DROP TABLE T1]
[2015/10/21 17:29:48 572][PID:32702][Thread-2]
[EXEC_DDL_END : SUCCESS]
[2015/10/21 17:29:49 573][PID:32702][Thread-2]
[EXEC_DDL_BEGIN : CREATE TABLE T1 ( I1 INTEGER )]
[2015/10/21 17:29:49 574][PID:32702][Thread-2]
[EXEC_DDL_END : SUCCESS]
[2015/10/21 17:29:49 575][PID:32702][Thread-2]
[EXEC_DDL_BEGIN : DROP TABLE T1]
[2015/10/21 17:29:49 576][PID:32702][Thread-2]
[EXEC_DDL_END : SUCCESS]
[2015/10/21 17:29:53 577][PID:32702][Thread-2]
[EXEC_DDL_BEGIN : CREATE TABLE T1 ( I1 INTEGER )]
[2015/10/21 17:29:53 578][PID:32702][Thread-2]
[EXEC_DDL_END : SUCCESS]
[2015/10/21 17:29:53 579][PID:32702][Thread-2]
[EXEC_DDL_BEGIN : DROP TABLE T1]
[2015/10/21 17:29:53 57A][PID:32702][Thread-2]
[EXEC_DDL_END : SUCCESS]
10 logs printed.
콜 스택과 altibase_boot.log, altibase_sm.log을 함께 출력하되 상위 20개 로그 출력한다.
$ dumptrc -c -i error -i server -i sm -n 20
=================================================
= Callstack Information 0
=================================================
[2015/10/21 17:29:42 551][PID:32702][Thread-2]
==> Initialize Security Module
[2015/10/21 17:29:42 552][PID:32702][Thread-2]
... [SUCCESS]
...
[2015/10/21 17:29:42 564][PID:32702][Thread-2]
--- STARTUP Process SUCCESS ---
[2015/10/21 17:30:51 57B] Dump of Stack
SIGNAL INFORMATION ==============================
Signal 6(SIGABRT) caught.
Sent by process : 2331
Sent by user : 1000
BEGIN-DUMP ======================================
===== SERVER =====
ALTIBASE hdb
Product version : 7.3.0.0.0
CPU : X86
Operating System : x86_64-unknown-linux-gnu
Process ID : 32698
Thread No : 0
END-DUMP ========================================
BEGIN-STACK [CRASH] =============================
Caller[0] 00000000011E0EBF => iduStack::dumpStack(iduSignalDef const*, siginfo*, ucontext*)
Caller[1] 0000000000426CFE => mmmSignalHandler
Caller[2] 00007FD306FD4CB0 => not found
Caller[3] 00007FD30609F763 => not found
Caller[4] 000000000042F66F => mmtSessionManager::run()
Caller[5] 00000000004213CE => mmi::serverStart(int, int)
Caller[6] 000000000041D1E0 => main
Caller[7] 00007FD305FD376D => not found
Caller[8] 00000000004206BD => _start
END-STACK =======================================
20 logs printed.
다른 디렉토리의 trc 로그에서 콜 스택을 가져와서 출력한다.
$ dumptrc -p ./altibase_home/trc -c -n 20
Path : ./altibase_home/trc
=================================================
= Callstack Information 0
=================================================
[2015/10/21 17:29:45 568][PID:32702][Thread-2]
[EXEC_DDL_END : SUCCESS]
[2015/10/21 17:29:45 569][PID:32702][Thread-2]
[EXEC_DDL_BEGIN : DROP TABLE T1]
...
[2015/10/21 17:30:51 57B] Dump of Stack
SIGNAL INFORMATION ==============================
Signal 6(SIGABRT) caught.
Sent by process : 2331
Sent by user : 1000
BEGIN-DUMP ======================================
===== SERVER =====
ALTIBASE hdb
Product version : 7.3.0.0.0
CPU : X86
Operating System : x86_64-unknown-linux-gnu
Process ID : 32698
Thread No : 0
END-DUMP ========================================
BEGIN-STACK [CRASH] =============================
Caller[0] 00000000011E0EBF => iduStack::dumpStack(iduSignalDef const*, siginfo*, ucontext*)
Caller[1] 0000000000426CFE => mmmSignalHandler
Caller[2] 00007FD306FD4CB0 => not found
...
Caller[8] 00000000004206BD => _start
END-STACK =======================================
20 logs printed.