database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 17317 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 17317
데이터베이스에 접근 할 수 없을 때 SYSTEMSTATE 덤프를 받는 방법(GDB 및 DBX 사용법)
작성자
정재익(xlib)
작성일
2004-02-11 19:53
조회수
8,614

No. 20621

데이터베이스에 접근 할 수 없을 때 SYSTEMSTATE 덤프를 받는 방법(GDB 및 DBX 사용법)
============================================================

 

PURPOSE
-------


Problem Description
-------------------
데이터베이스 hang 문제를 분석하기 위해 다음과 같이 svrmgrl 이나 sqlplus로 데이터베이스에 연결하여 systemstate dump를 뜨게 된다.


$ svrmgrl

svrmgr>  connect internal
svrmgr> oradebug setmypid
svrmgr> oradebug unlimit
svrmgr> oradebug dump systemstate 10

혹은

svrmgr> alter session set max_dump_file_size=unlimited;
svrmgr>alter session set events 'immediate trace name systemstate    level 10';


하지만 데이타베이서에 연결을 시도 할 때, 프롬프트가 떨어지지 않는 경우에 os에서 제공되는 디버거인 gdb나 dba를 사용해서 분석이 가능하다.


Solution Description
--------------------

디버거를 사용하여 internal function인  ksudss(10)을 직접 호출한다. 이 경
우  unix의 PID 정보가 필요하며, PID는 ps -ef 명령으로 확인 가능하다.


gdb 예:

     $ gdb $ORACLE_HOME/bin/oracle <pid>
     ...
     gdb> print ksudss(10)


dbx 예:

     $ dbx $ORACLE_HOME/bin/oracle <pid>
     ...
     (dbx) call ksudss(10)

프로세스의 종류에 따라 관련된 system state dump 파일이 user_dump_dest 또
는, background_dump_dest 디렉토리에 생긴다.

1. dbx 사용 예

다음은 pmon 프로세스에 대해 dbx를 이용하여 systemstate dump를 받는 예이
다.

$ ps -ef | grep pmon
  server 26256     1  0   Aug 24 ?        0:02 ora_pmon_v816
  server 17917 16105  0 11:01:54 pts/50   0:00 grep pmon

$ dbx $ORACLE_HOME/bin/oracle 26256
(dbx에서 많은 메시지가 나타난다)
Reading symbolic information for oracle
(유사한 메시지 반복...)
Attached to process 26256
stopped in _semsys at 0xeef364ac
0xeef364ac: _semsys+0x0004:     ta      %icc,%g0 + 8
(dbx) call ksudss(10)
dbx: warning: unknown language, 'ansic' assumed
stopped in _semsys at 0xeef364ac
0xeef364ac: _semsys+0x0004:     ta      %icc,%g0 + 8
(dbx) quit
detaching from process 26256

background_dump_dest에 v816_pmon_26256.trc 파일이 생성됨.

2. 결론

디버거는 오라클 내부 함수를 바로 호출 할 수 있는 강력한 툴이다. 조심해
서 사용한다면, 분석이 어려운 상황에서도 문제 원인 분석에 필요한 정보를
획득 할 수 있다.

 

Reference Documents
-------------------

[Top]
No.
제목
작성자
작성일
조회
17320COST UPDATE 성능과 데드락의 관계
정재익
2004-02-11
10432
17319CONCURRENT MANAGER STARTUP 시의 일반적인 문제 및 해결 방법
정재익
2004-02-11
9824
17318Oracle Enterprise Manager 9i Commands
정재익
2004-02-11
12336
17317데이터베이스에 접근 할 수 없을 때 SYSTEMSTATE 덤프를 받는 방법(GDB 및 DBX 사용법)
정재익
2004-02-11
8614
17316OEM 2.X or 9I 에서 SYSMAN Password Reset 방법
정재익
2004-02-11
8471
17315알디에이:RDA, REMOTE DIAGNOSTIC AGENT
정재익
2004-02-11
7264
17313SQL*Net을 통해 listener에 접속할 수 있는 Client Node를 제한하는 방법 [1]
정재익
2004-02-11
9141
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다