...

Oracle Logmminer 본문

ORACLE/Oracle Trouble Shooting

Oracle Logmminer

zepply 2016. 5. 10. 19:23

Dictionary file 생성 방법은 버전별로 다르다

   10g R2 버전

   

    01) DB 전체를 종료한 후 Parameter file 에 딕셔너리 파일의 위치를 아래와 같이 지정 합니다.

        

        utl_file_dir=/app/oracle/logminer

                       디렉토리는 미리생성 해야합니다.

                       

    02) DB를 시작합니다.

    

    03) 아래와 같이 딕셔너리를 생성합니다.

    

         SYS> exec dbms_logmnr_d.build(dictionary_filename=>d'dict.dat' - dictionary_location => '/app/oracle/logminer');

         

    04) Log Miner에 분석할 로그를 추가합니다.

         SYS> exec dbms_logmnr.add_logfile('app/oracle/oradata/testdb/redo01.log'1);

         

         위 명령의 마지막에 있는 숫자의 의미는 

             1- 신규 등록 , 2- 파일 삭제, 3- 추가 등록

             

         SYS> exec dbms_logmnr.add_logfile('app/oracle/oradata/testdb/redo02.log'3);

         

         SYS> exec dbms_logmnr.add_logfile('app/oracle/oradata/testdb/redo03.log'3);

         

         

set line 200

col db_name for a15

col filename for a50

select db_name, filename from v$logmnr_logs;



참고로 대량의 Archived Redo Log file을 분석해야 할 경우에는 일일이 수동 보다는 

scripts를 생성


vi ar.sh


for i in $(ls /data/arc2);

  do echo"exec dbms_logmnr.add_logfile("/data/arc2/$i'3);" >> /home/oracle/arch.sql;

done;


:wq!




    05) Log Miner를 시작해서 log를 분석한 후 결과를 조회합니다.

    

        (이 작업은 시스템에 따라 다소 시간이 걸릴 수 있습니다. 

             또한 이 작업을 하는 동안 로그 스위치가 많이 발생할 수도 있습니다.)

             

         exec dbms_logmnr.start_logmnr(dictfilename => '/app/oracle/logminer/dict.dat', ->option => dbms_logmnr.ddl_dict_tracking + dbms_logmnr.committed_data_only);

         

         

         

col username for a10

col operation for a10

col sql_redo for a50


alter session set nls_date-format='YYYY-MM-DD:HH24:MI:SS';



select timestamp,usemade,operation,sql_redo from v$logmnr_contents where seg_name='TEST';


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

vi log.sql


set line 200

col group# for 999

col mb for 999

col member for a 45

col seq# for 999

col status for a8

col arc for a5


select a.group#, a.member, b.sequence#"SEQ#", b.status, b.archived"ARC"

from v$logfile a, v$log b

where a.group#=b.group#

order by 1,2

/

'ORACLE > Oracle Trouble Shooting' 카테고리의 다른 글

logminer & redo scripts  (0) 2016.05.11