Oracle Session별 Trace 생성 방법

Oracle 2010. 8. 13. 16:43

sqlplus를 이용하여 sysdba 계정에서 아래의 파일을 실행합니다.


 SQL> @dbmsutil.sql                                           <==  ORACLE_HOME\rdbms\admin 에 파일이 존재함
 SQL> @prvtutil.plb                                             <==  ORACLE_HOME\rdbms\admin 에 파일이 존재함

 SQL> grant execute on dbms_system to system;


- DBMS_SYSTEM.set_sql_trace_in_session(sid, serial#, TRUE) 
 지정된 session에 대해 SQL trace를 실행하여 user_dump_dest parameter에 지정된 위치에 trace file이 생성된다.
 
 - DBMS_SYSTEM.set_sql_trace_in_session(sid, serial#, FALSE)  
 지정된 session에 대한 SQL trace를 해제한다.


[예제] system user에서 scott user를 지정하여 SQL trace 생성하기.

sqlplus system/manager

SQL> select sid, serial# 
     from v$session
     where username = 'SCOTT';

SID         SERIAL#
--------- ---------
        8        12

SQL> exec sys.dbms_system.set_sql_trace_in_session(8, 12, TRUE);

 -> scott user에 대한 SQL trace가 실행된다.

SQL> exec sys.dbms_system.set_sql_trace_in_session(8, 12, FALSE);

 -> scott user에 걸린 SQL trace가 해제된다.


==> 위와 같이 trace 처리된 내역은 DBMS가 설치된 server의 user_dump_dest 경로에 trc 파일로 생성됩니다.

    이렇게 해서 생성된 trace 파일을 TKPROF를 이용하여 가독이 용이한 형태로 내용을 변환하여 확인하면 됩니다.

     ex) tkprof '원본파일' '변환파일' [option] sys=no aggregate=no explain=계정ID/계정PWD
         --> tkprof C:\oracle\admin\orcl\udump\orcl_ora_3012.trc c:\test.text sys=no aggregate=no explain=scott/tiger

:     

TISTORY에 Login하려면 여기를 누르세요.


Cachesys Buttons Utillity 사용법

Cachesys 2010. 8. 13. 16:38

Cachesys DB Status Check 방법



Cachesys DBMS의 상태를 한눈에 확인하기 위한 방법으로 Buttons이라는 Utillity를 사용합니다.


Cachesys Terminal를 먼저 실행하여, Namespace를 "%SYS"로 이동합니다. (zn "%sys")


%SYS> d ^%Buttons                   <== %SYS Namespace로 이동하여 Buttons Utillity를 실행합니다.


그러면 아래와 같은 Message를 접하게 됩니다.


===============================================================================================

Caché Buttons Build # 032 Evidence Logging Tool
 
The Basic option (a.k.a. "Little Button") provides most of the information
required for InterSystems Technical Support to analyze a medium complexity
problem. The data this option generates should always be present on each and
every problem sent to Support.
 
The Advanced option (the "Big Button") is required on complex problems where
Support needs more in-depth information about a system's behavior. It includes
all the information contained in the Basic option and adds a lot more.
 
This process will take approximately 5 minutes to complete. Please be patient.
 
1. Basic
2. Advanced
Option?

===============================================================================================


Cachesys의 Version에 따라 선택할 수 있는 기능이 조금씩 다른듯 합니다만....


일단 저는 Cachesys 5.0.21을 기준으로 작성합니다. Cachesys DBMS의 Version은 "w $zv"를 통해서 확인 가능합니다.


Basic과 Advanced 중에서 하나를 선택하여 실행하면, Cachesys가 설치된 경로의 MGR 폴더 아래에 html 형식의 파일이


생성됩니다.


===============================================================================================

[ Basic을 선택했을 경우 ]

Option? 1
 
Collecting information, please do not interrupt this process.
 
Please wait approximately 30 seconds for %SS snapshots.
 
Log file saved to:
c:\intersystems\cache5021\mgr\Entree201002171731.html              <<= 결과 파일이 생성된 경로
File is 579,035 bytes long
%SYS>

===============================================================================================

[Advanced를 선택했을 경우]
Option? 2
 
Collecting information, please do not interrupt this process.
 
Please wait approximately 30 seconds for %SS snapshots.
Please wait approximately 1 minute for "cstat" snapshots.
 
REDEBUG: new netdebugflags FFFFFFFF
REDEBUG: new netdebugflags 0
1 entries dumped to c:\intersystems\cache5021\mgr\inuse.dmp
License manager Client data (1 key[s]) dumped to:  c:\intersystems\cache5021\mgr
\dumpkeys.txt
 
GloStat information now being collected.
Please wait approximately 1 minute and 40 seconds.
 
Log file saved to:
c:\intersystems\cache5021\mgr\Entree201002171735.html              <<= 결과 파일이 생성된 경로
File is 816,483 bytes long

===============================================================================================


위와 같이 Buttons Utillity의 작업이 완료되면 해당 경로의 html 파일을 열어 봅니다.


그러면 아래와 같은 형식의 내용이 보여질 것입니다. Basic을 선택했을 때와 Advanced를 선택했을 때 볼 수 있는 항목이 차이가


있다는 것을 알 수 있습니다.


상단의 Diagnostic Log의 표에 기재된 바와 같이 해당 항목들과 같은 정보를 확인할 수 있다는 의미입니다.


InterSystems의 Engineer분이나, DB 관리자에게 무엇인가 문의하고자 할때, 아래와 같은 정보를 전달을 한다면 보다 쉽게


해당 시스템에 대해서 이해하고 답변을 해주실듯 합니다.


아래 내용을 각자 시간을 내서 읽어보시기 바랍니다. ^^


[ Basic을 선택했을 경우 ]

Cache Buttons Build # 032 Diagnostic Log
General Key File License Counts %SS OS Processes Spin Count CPF File SysLog cconsole

 

[Advanced를 선택했을 경우]

Cache Buttons Build # 032 Diagnostic Log
General Key File License Counts %SS OS Processes Spin Count CPF File SysLog cconsole
In-depth Diagnostics ("Big Button"):   cstat #1 cstat #2 Network Status Dump License Cores or Dumps GloStat

 

Configuration

CACHE5021 on Machine "DavidKim"

Customer Name: Entree
License Order# 000000000


General

Fully Qualified Host Name: poseidon with IP Address: 10.0.0.1

Log created by User "david" on Feb 17 2010 at  5:35 PM

Cache Version String:
Cache for Windows NT (Intel) 5.0.21 (Build 6408U) Tue Jan 3 2006 13:30:53 EST

Cache Objects Version 5.0.6408.0

Cache JDBC/ODBC Server 5.12

  Cache Direct Server Program - 8/16-bit common code (Build 7.2.91 6Feb04)
    Platform: Cache Direct Common Code, 16-bit system, on
      Cache for Windows NT (Intel) 5.0.21 (Build 6408U) Tue Jan 3 2006 13:30:53 EST
    Options:
      New Buffer Manager
      New Name Space
      New Licensing
      New Routine Globals
      New Object Global
      Supports 7.1 protocol
      Full NLS
      Cache Objects support
      SuperServer support
                                                       :
                                                       :
                                                       :  ( 생략 )

'Cachesys' 카테고리의 다른 글

[Cachesys] Intersystems의 Cachesys DBMS 교재 (한글판)  (0) 2011.03.25
:     

TISTORY에 Login하려면 여기를 누르세요.


TNS:protocol adapter error

Oracle 2010. 8. 13. 16:36

Oracle의 Listener Service가 정상적으로 작동하지 않아서 서비스가 안되는 문제입니다.

 

Windows2003에 Oracle 11gR1을 사용하고 있는 곳에서 몇 개월 동안 서비스를 해오다가 갑자기 모든 Application에서

 

DB에 접근을 못하게 되면서 Service가 중지된 사태가 발생했습니다. (DB가 mount까지만 진행됨)

 

OS의 서비스 관리자에서 이와 관련된 사항들을 확인해보면, 정상적으로 서비스가 되고 있는 것처럼 보여집니다.

 

또한, 재시작을 해도 정상적으로 시작되는 것으로 보여집니다. 하지만, App에서는 여전히 DB에 접근을 못합니다.

 

DOS Mode에서 LSNRCTL Mode로 들어가서 Status를 실행해보면, 화면이 조회가 되는듯 하다가 멈추는 현상이 나타나고,

 

Stop 실행 후, Start를 실행하면 "TNS:protocol adapter error"가 발생합니다.

 

Listener.log 파일을 찾아서 확인해봅니다.

 

Listener.log 파일의 Size 4GB...   -_-;;

 

‘SQL*Net에 대한 이해라는 Oracle Documents Reference를 참고하면, 해당 Log Listener에서 무조건 남는 것으로

 

OS Type에 따른 최대 사이즈가 상이하다고 합니다. 이에 대해서 Log를 남지 않도록 하기 위해서는 아래와 같은 작업이

 

추가로 필요합니다.

 

1.     이전의 Listener.log 파일을 삭제하거나, Rename을 시켜줍니다.

2.     DOS창에서 LSNRCTL를 실행한 후, Option을 비활성화 시켜줍니다.

C:\> lsnrctl

LSNRCTL> set current_listener <listener_name>

=> listener_name별로 선택적으로 설정 가능. 모든 listener에 대해서

    적용한다면  실행할 필요 없음.

LSNRCTL> set log_status off/on 

=>  listener.log 생성 여부를 설정

 

3.     위와 같이 동적으로 Listener.log를 생성하지 않도록 할 수 있고,

이 외에는 listener.ora file parameter를 설정함으로써 해결할 수 있습니다.

LOGGING_<listener_name>=OFF   => 생성 안 함

LOGGING_<listener_name>=ON   =>  생성함

 

4.     설정 변경이 완료 되었다면, Oracle DB Start 시켜줍니다.

      예시)    c:\> sqlplus /nolog

                  SQL> conn / as sysdba   (mount 상태)

                  SQL> alter database open;

:     

TISTORY에 Login하려면 여기를 누르세요.