h2.1. oradebug
오라클을 디버깅하는데 사용되는 툴
h3.1.1 oradebug ipc
오라클이 사용하는 IPC ( Inter Process Communication, 프로세스간 통신 ) 자원에 대한 상세한 정보는 얻을 수 있다.
SQL> oradebug setmypid
Statement processed.
SQL> oradebug ipc
Information written to trace file.
SQL> oradebug tracefile_name
/oracle/admin/lkwtest/udump/lkwtest1_ora_32023.trc
vi /oracle/admin/lkwtest/udump/lkwtest1_ora_32023.trc
h3.1.2 oradebug dump gc_elements
글로벌 동기화에 필요한 정보를 저장하는 메모리 구조체인 GC Element ( Global Cache Element ) 덤프 파일을 내려받는다.
SQL> oradebug setmypid
Statement processed.
SQL> oradebug dump gc_elements 1
Statement processed.
SQL> oradebug tracefile_name
/oracle/admin/lkwtest/udump/lkwtest1_ora_32023.trc
vi /oracle/admin/lkwtest/udump/lkwtest1_ora_32023.trc
h3.1.3 oradebug lkdebug
Lock debug의 약자로 락 데이터베이스에 대한 정보를 확인한다.
락 데이터베이스를 구성하는 락, 리소스, 프로세스구조체 정보를 텍스트 파일로 내려 받을 수 있다.
SQL> oradebug lkdebug help
Usage:lkdebug [options]
-l [r|p] <enqueue pointer> Enqueue Object
-r <resource pointer> Resource Object
-b <gcs shadow pointer> GCS shadow Object
-p <process id> client pid
-P <process pointer> Process Object
-O <i1> <i2> <types> Oracle Format resname
-a <res/lock/proc> all <res/lock/proc> pointers
-A <res/lock/proc> all <res/lock/proc> contexts
-a <res> [<type>] all <res> pointers by an optional type
-a convlock all converting enqueue (pointers)
-A convlock all converting enqueue contexts
-a convres all res ptr with converting enqueues
-A convres all res contexts with converting enqueues
-a name list all resource names
-a hashcount list all resource hash bucket counts
-t Traffic controller info
-s summary of all enqueue types
-k GES SGA summary info
-m pkey <objectno> request for remastering this object at current instance
-m dpkey <objectno> request for dissolving remastering of this object at current instance
* 락 데이터베이스에서 관리하는 모든 리소스명 덤프
SQL> oradebug setmypid
Statement processed.
SQL> oradebug lkdebug -a name
Statement processed.
SQL> oradebug tracefile_name
/oracle/admin/lkwtest/udump/lkwtest1_ora_11707.trc
vi /oracle/admin/lkwtest/udump/lkwtest1_ora_11707.trc
* 락 데이터베이스에서 관리하는 모든 리소스context 덤프
SQL> oradebug setmypid
Statement processed.
SQL> oradebug lkdebug -A res
Statement processed.
SQL> oradebug tracefile_name
/oracle/admin/lkwtest/udump/lkwtest1_ora_14162.trc
vi /oracle/admin/lkwtest/udump/lkwtest1_ora_14162.trc
* oradebug lkdebug -m : 리소스 리마스터링 동적 수행
* oradebug lkdebug -m pfile <fileno> : 데이터파일 단위로 리소스 리마스터링 ( 10gR1 )
* oradebug lkdebug -m pkey <objectno> : 세그먼트 단위로 리소스 리마스터링 ( 10gR2 )