[root@ASDDB01 ~]# lsof -n -p 17951 | grep -i tcp

oracle  17951 oracle   18u  IPv4 446443982         0t0       TCP 192.168.45.12:cctv-port->211.115.106.222:47382 (ESTABLISHED)




LSOF 는 List Open File 의 약자로 해당 System에서 구동되고 있는 프로세스들에 의해서 열려진 파일들을

확인 할수있는 툴입니다. 즉 프로세스의 파일핸들을 조사해 볼 수 있는 유용한 툴

 

특정 프로세스가 오픈한 파일 리스트 확인

lsof -p 포트번호


특정호스트에 대한 접속 확인

lsof -i@특정아이피


특정 사용자가 오픈한 프로세스 확인

lsof -u 유저명


특정 파일이 사용하는 프로세스 확인

lsof /etc/passwd



man

EXAMPLES

       For  a  more  extensive set of examples, documented more fully, see the

       00QUICKSTART file of the lsof distribution.

 

       To list all open files, use:

 

              lsof

 

       To list all open Internet, x.25 (HP-UX), and UNIX domain files, use:

 

              lsof -i -U

 

       To list all open IPv4 network files in use by the process whose PID  is

       1234, use:

 

              lsof -i 4 -a -p 1234

 

       Presuming  the  UNIX dialect supports IPv6, to list only open IPv6 net-

       work files, use:

 

              lsof -i 6

 

       To list all files using any protocol on ports 513, 514, or 515 of  host

       wonderland.cc.purdue.edu, use:

 

              lsof -i @wonderland.cc.purdue.edu:513-515

 

       To  list all files using any protocol on any port of mace.cc.purdue.edu

       (cc.purdue.edu is the default domain), use:

 

              lsof -i @mace

 

       To list all open files for login name ``abe'',  or  user  ID  1234,  or

       process 456, or process 123, or process 789, use:

 

              lsof -p 456,123,789 -u 1234,abe

 

       To list all open files on device /dev/hd4, use:

 

              lsof /dev/hd4

 

       To find the process that has /u/abe/foo open, use:

 

              lsof /u/abe/foo

 

       To send a SIGHUP to the processes that have /u/abe/bar open, use:

 

              kill -HUP `lsof -t /u/abe/bar`

 

       To  find any open file, including an open UNIX domain socket file, with

       the name /dev/log, use:

 

              lsof /dev/log

 

       To find processes  with  open  files  on  the  NFS  file  system  named

       /nfs/mount/point whose server is inaccessible, and presuming your mount

       table supplies the device number for /nfs/mount/point, use:

 

              lsof -b /nfs/mount/point

  

       To do the preceding search with warning messages suppressed, use:

  

              lsof -bw /nfs/mount/point

  

       To ignore the device cache file, use:

  

              lsof -Di

  

       To obtain PID and command name field  output  for  each  process,  file

       descriptor,  file device number, and file inode number for each file of

       each process, use:

 

              lsof -FpcfDi

  

       To list the files at descriptors 1 and 3 of every process  running  the

       lsof command for login ID ``abe'' every 10 seconds, use:

 

              lsof -c lsof -a -d 1 -d 3 -u abe -r10

 

       To  list  the  current working directory of processes running a command

       that is exactly four characters long and has an 'o' or 'O' in character

       three, use this regular expression form of the -c c option:

 

              lsof -c /^..o.$/i -a -d cwd

 

       To  find an IP version 4 socket file by its associated numeric dot-form

       address, use:

 

              lsof -i@128.210.15.17

 

       To find an IP version 6 socket file (when  the  UNIX  dialect  supports

       IPv6) by its associated numeric colon-form address, use:

 

              lsof -i@[0:1:2:3:4:5:6:7]

 

       To  find  an  IP  version 6 socket file (when the UNIX dialect supports

       IPv6) by an associated numeric colon-form address that  has  a  run  of

       zeroes in it - e.g., the loop-back address - use:

 

              lsof -i@[::1]

 

       To  obtain  a  repeat  mode marker line that contains the current time,

       use:

 

              lsof -rm====%T====

 

       To add spaces to the previous marker line, use:

 

              lsof -r "m==== %T ===="


'OraclE' 카테고리의 다른 글

append 힌트 재대로 사용하시나요?  (0) 2015.03.30
object 변경시 dependency  (0) 2015.01.06
logminor 로그마이너  (0) 2014.09.05
v$parameter  (0) 2014.08.05
log_archive 파라미너 변경  (0) 2014.08.05

logminor 로그마이너


-- 로그 마이너 설정 확인

SQL> show parameter utl_file_dir


NAME     TYPE VALUE

------------------------------------ ----------- ------------------------------

utl_file_dir                        string          /DB/ORACLE/ims




-- 로그 마이너 대상 확인

-rw-r-----  1 oracle dba 3097775616 Sep  4 15:06 MEDDB_1_24672_844241927.arc

-rw-r-----  1 oracle dba 3097775616 Sep  4 15:21 MEDDB_1_24673_844241927.arc

-rw-r-----  1 oracle dba 3097775616 Sep  4 15:39 MEDDB_1_24674_844241927.arc

-rw-r-----  1 oracle dba 3097775616 Sep  4 15:56 MEDDB_1_24675_844241927.arc

-rw-r-----  1 oracle dba 3097775616 Sep  4 16:15 MEDDB_1_24676_844241927.arc 




-- 로그 마이너 작업 디렉토리 생성

SQL> exec dbms_logmnr_d.build('logminrfile.ora','/DB/ORACLE/imsi');


PL/SQL procedure successfully completed.




-- 로그 파일 등록

SQL> exec dbms_logmnr.add_logfile ('/DB/ORACLE/imsi/MEDDB_1_24672_844241927.arc',dbms_logmnr.new);  -- 처음만 new


PL/SQL procedure successfully completed.


SQL> exec dbms_logmnr.add_logfile ('/DB/ORACLE/imsi/MEDDB_1_24673_844241927.arc',dbms_logmnr.addfile);  -- 두번째 부터는 add


PL/SQL procedure successfully completed.


SQL> exec dbms_logmnr.add_logfile ('/DB/ORACLE/imsi/MEDDB_1_24674_844241927.arc',dbms_logmnr.addfile);


PL/SQL procedure successfully completed.


SQL> exec dbms_logmnr.add_logfile ('/DB/ORACLE/imsi/MEDDB_1_24675_844241927.arc',dbms_logmnr.addfile);


PL/SQL procedure successfully completed.


SQL> exec dbms_logmnr.add_logfile ('/DB/ORACLE/imsi/MEDDB_1_24676_844241927.arc',dbms_logmnr.addfile);


PL/SQL procedure successfully completed.




-- 로그 마이너 시작

SQL> exec dbms_logmnr.start_logmnr(dictFileName => '/DB/ORACLE/imsi/logminrfile.ora');


PL/SQL procedure successfully completed.




-- 로그 내용 확인

select to_char(timestamp,'YYYY-MM-DD HH24:MI:SS'), username, session_info, sql_redo

from v$logmnr_contents

where seg_owner='MEDUSER' and seg_name in ('MED_DNA_RULE_CONDITION','MED_DNA_RULE_CONDITION_DATA');




### 관련 view ###

v$logmnr_contents : 현재 분석되고 있는 redo log file의 내용

v$logmnr_dictionary : 사용중인 dictionary file

v$logmnr_log : 분석되고 있는 redo log file

v$logmnr_parameters : logminer에 setting된 현재 parameter




ORA-01295 에러 발생시

 SQL> exec dbms_logmnr.start_logmnr(dictFileName => '/home/oracle/imsi/logminrfile.ora');

BEGIN dbms_logmnr.start_logmnr(dictFileName => '/home/oracle/imsi/logminrfile.ora'); END;

*
ERROR at line 1:
ORA-01295: DB_ID mismatch between dictionary /home/oracle/imsi/logminrfile.ora
and logfiles
ORA-06512: at "SYS.DBMS_LOGMNR", line 58
ORA-06512: at line 1 



-- product DB 에서 실행

SQL> EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);


PL/SQL procedure successfully completed.




SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES';


NAME

-----------------------------------------------------------------

/DB/ORACLE/ARCHIVE/MEDDB_1_27326_844241927.arc


SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_END='YES';


NAME

------------------------------------------------------------------

/DB/ORACLE/ARCHIVE/MEDDB_1_27326_844241927.arc




-- 조회하여 나온 파일을 minor DB에 추가 

SQL> exec dbms_logmnr.add_logfile ('/home/oracle/imsi/MEDDB_1_27326_844241927.arc',dbms_logmnr.addfile);  -- 두번째 부터는 add


PL/SQL procedure successfully completed.



-- dictFileName 옵션을 제거하고, 하기 명령 실행

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS);


PL/SQL procedure successfully completed.






'OraclE' 카테고리의 다른 글

object 변경시 dependency  (0) 2015.01.06
pid로 port 찾기 (lsof)  (0) 2014.09.17
v$parameter  (0) 2014.08.05
log_archive 파라미너 변경  (0) 2014.08.05
systemstate dump 와 hang analyze 수행  (0) 2014.07.24

v$parameter 


NAME  VARCHAR2(64) - 파라미터의 명칭

TYPE  NUMBER - 파라미터의 데이터 타입

        1 - Boolean

        2 - String

        3 - Integer

        4 - Parameter file

        5 - Reserved

        6 - Big integer

VALUE  VARCHAR2(512)   - 파라미터 값 (session 범위 또는 instance 범위)

ISDEFAULT  VARCHAR2(9) - 기본 값 사용 여부

        TRUE: 시스템 기본 값   FALSE: DBA가 명시한 값

ISSES_MODIFIABLE  VARCHAR2(5)

        TRUE/FALSE  ALTER SESSION 명령으로 변경가능 여부 

ISSYS_MODIFIABLE  VARCHAR2(9)

        IMMEDIATE - ALTER SYSTEM 명령으로 파라미터 값을 변경 할 수 있고 변경 사항은 즉시 적용됨 

        DEFERRED - ALTER SYSTEM 명령으로 파라미터 값을 변경 할 수 있고,

                           변경 사항은 이후 접속하는 세션부터 적용됨

        FALSE - SP파일을 사용하는 경우 scope=spfile 옵션으로 변경가능,

                      변경사항은 인스턴스를 재시작 해야만 적용된다.

ISMODIFIED  VARCHAR2(10) - Instance 시작후 변경되었는 지 여부

        MODIFIED - ALTER SESSION 명령으로 파라미터가 바뀜

        SYSTEM_MOD - ALTER SYSTEM 명령으로 파라미터가 바뀜

        FALSE - Instance 시작후 파라미터가 변경되지 않음

ISADJUSTED  VARCHAR2(5)

       TRUE/FALSE    DBA가 입력한 값을 Oracle이 적절한 값으로 조정했는지 여부

DESCRIPTION  VARCHAR2(64)  - Description of the parameter

UPDATE_COMMENT  VARCHAR2(255) - Comments associated with the most recent update

 

(10g 이후 추가된 값)

DISPLAY_VALUE  - P파일 이나 SP파일에 저장 된 값I

SINSTANCE_MODIFIABLE - RAC인경우 각 인스턴스의 값이 같아야 하는지 (FALSE), 달라도 되는지 (TRUE)

ISDEPRECATED  - 호환성을 위해 존재하는 사용되지 않는 파라미터 여부


[출처] http://www.cyworld.com/vbman/8582656

'OraclE' 카테고리의 다른 글

pid로 port 찾기 (lsof)  (0) 2014.09.17
logminor 로그마이너  (0) 2014.09.05
log_archive 파라미너 변경  (0) 2014.08.05
systemstate dump 와 hang analyze 수행  (0) 2014.07.24
FILESYSTEMIO_OPTIONS  (0) 2014.07.22


 - Archive log list;       :  로그 상태 확인

 

 - V$LOGFILE            : Redo Log File 의 경로와 갯수 확인

 

 - V$LOG                  : 현재 사용하고 있는 파일의 상태

 

  * 아카이브 모드 활성화 시키기 위한 파라미터

 

  ; log_archive_start (=true)

                                 : 아카이브 프로세스를 오라클 시작과 함께 설정한다.

 

  ; log_archive_dest (='경로명')

                                 : 아카이브 프로세스가 로그파일을 아카이브 로그파일로 저장할 디렉토리 설정

 

  ; log_archive_format (='화일명')       ex) = %S.arc

                                 : 아카이브 로그 파일의 이름 설정

     -> 옵션    %S : redo log 시퀀스 넘버 표시, 자동으로 왼쪽이 0 으로 채워져 파일이름 길이가 일정해 진다.

                  %s : redo log 시퀀스 넘버 표시, 파일 이름 길이가 일정 하지 않다.

                  %T : redo 스레드 넘버 표시, 자동으로 왼쪽이 0 으로 채워져 파일 이름 길이 일정.

                  %t  : redo 스레드 넘버 표시, 파일 이름 길이가 일정 하지 않다.

 

 

  * MOUNT 단계

 

    - alter database archivelog      :    아카이브 모드로 변경 할 수 있다. 

 

 * 아카이브 로그 상태 만들기

 

        - 일반

 

    SQL) shutdown

   

    SQL) log_archive_start = true

    SQL) log_archive_dest = '경로'

    SQL) log_archive_format = '파일명'

 

    SQL) startup mount

    SQL) alter database archivelog;

    SQL) alter database open

 

       - 9i server parameter 사용 중일 경우

 

    SQL) alter system set log_archive_start=true scope=spfile;

    SQL) alter system set log_archive_dest='경로명' scope=spfile;

    SQL) alter system set log_archive_format = '파일명' scope=spfile;

 

    SQL) shutdown immediate

    SQL) startup mount

 

    SQL) startup mount

    SQL) alter database archivelog;

    SQL) alter database open

 

    *  아카이브 로그 다중화 만들기

 

 - 두 개의 경로

      

     - log_archive_dest='경로명1'

     - log_archive_duplex_dest='경로명2'

                                                                  -> 다중화는 서로 다른 디스크에 있어야 효과가 있는 것!!!

 

     - log_archive_min_succed_dest = [1/2]

             -> [1]  : log_archive_dest에 아카이브 로그파일이 만들어진 이후 redo 로그 파일에

                          새로운 내용을 덮어 쓸 수 있고 (default), 로그 스위치 완결

  

            ->  [2] : log_archive_dest 와 log_archive_duplex_dest 를 모두 완결해야 

                         redo log file 에 새로운 내용을 덮어 쓸 수 있다. 

 

    - 두 군데 이상 아카이브 로그 생성

           

            -> log_archive_dest_# 으로 표시

                          : Oracle 8i 부터 5개 9i 부터는 10개의 다른 위치를 지정 가능 하다.

 

    - 옵션 

        -> mandatory   : redo 로그 파일 복사가 성공해야 redo log file 을 겹쳐 쓸 수 있게 한다.

                       -> reopen 옵션 : 복사가 실패할 경우 지정된 시간 이후 재시도 (default=300 [초])

                                     -> if) reopen 설정 안했는데 에러 발생시 더이상 redo log file 의 복사를 시도 하지 않는다.

                                             필수 대상 경로에 실패할 경우 로그 스위치는 완결되지 못하고, alert 파일에 경고, 저장된다.

 

       -> optional        : redo log file 의 복사가 실패해도 redo log file 을 겹쳐 쓸 수 있게 한다. 

 

         ex)  log_archive_start = true;

                log_archive_dest1="location=/backup/archive1/     mandatory reopen"

                log_archive_dest2="location=/backup/archive2/     mandatory reopen=100"

                log_archive_dest3="location=/backup/archive3/     optional"

                log_archive_dest4="service=oracle2   optional"                  -> service 는 원격지를 말한다.

                log_archive_format=%S%T.arc

 

     LOG_ARCHIVE_DEST 와 LOG_ARCHIVE_DEST_n 파라미터는 같으 시용할 수 없다. 

     하나가 null이 아닌값을 가지면 다른 것은 null 이나 ("") 이나 (' ')  값을 가져야 한다.

     

   - 여러개의 아카이브 프로세스(ARCH) 활성화 시키기

 

          : log_archive_max_process=[1...10]      -> 파라미터 변경

 또는

          : alter system set log_archive_max_process=[1...10];



[출처] http://blog.naver.com/kiyoun82/110070358754

          http://www.cyworld.com/vbman/8582656

'OraclE' 카테고리의 다른 글

logminor 로그마이너  (0) 2014.09.05
v$parameter  (0) 2014.08.05
systemstate dump 와 hang analyze 수행  (0) 2014.07.24
FILESYSTEMIO_OPTIONS  (0) 2014.07.22
session 레벨 sql trace  (0) 2014.07.16

+ Recent posts