...
Oracle Logmminer 본문
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 |
---|