본문 바로가기

oracle11R2

Logminer에 대한 실습

 Logminer는 archivelog file에 대해서 분석하는것을 말합니다.
테스트를 해봤는데 어떤 Query가 들어있는지 다나오더군요.
강사님이 던져준 실습문서는 왜 어려웠는지 잘안됐는데
간단한 실습을 우연한 기회에 만들어 보았습니다.
잘 따라해봅시다.

우선 parameter file에 다음 내용을 추가 합니다.

alter system set utl_file_dir='/home/oracle/logminer' scope=spfile;

그전에 logminer라는 폴더를 /home/oracle아래에 추가해둡니다.
hr 유저로 test를 위해 table을 만듭니다.
conn hr/hr
create table log_test as select * from employees;

insert into log_test select * from employees;
다른 terminal에서 sys로 접속 후
alter system switch logfile;

hr유저에서 다시

insert into log_test select * from employees;
그리고 sys에서
alter system switch logfile;
반복해서 3번정도 해줍니다.
그럼 오늘 날짜의 archive logfile이 생성되었을겁니다.

* 11g R2로 테스트를 진행했습니다.
archive log parameter를 수정했음에도 불구하고
파일명이 이상하게 생성되었으며 생성위치도 다른곳에 생성 되었네요;;;
동일 버젼에서 테스트 하실분은 참고 하세요.
-----파일이 생성된 위치입니다.-----
[oracle11g@orcl:/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_08_02]ls -al
total 15376
drwxr-x---  2 oracle oinstall     4096 Aug  2 09:15 .
drwxr-x---  4 oracle oinstall     4096 Aug  2 09:15 ..
-rw-r-----  1 oracle oinstall 15685120 Aug  2 09:15 o1_mf_1_26_73gjdn9q_.arc
-rw-r-----  1 oracle oinstall    10240 Aug  2 09:15 o1_mf_1_27_73gjf7n9_.arc
-rw-r-----  1 oracle oinstall    15360 Aug  2 09:15 o1_mf_1_28_73gjfxmc_.arc
[oracle11g@orcl:/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_08_02]
수정한 parameter값입니다.
SQL> show parameter archive_format

NAME                            TYPE                   VALUE
------------------------------------ ----------- ------------------------------
log_archive_format    string orcl_%t_%s_%r.arc

SQL> show parameter log_archive_dest

NAME                                 TYPE                                   VALUE
------------------------------------ ---------------- ----------------------------------------------
log_archive_dest             string      /home/oracle/archivelog

그리고 나서 DB를 재시작해줍니다.
다음으로 2개의 스크립트를 실행해 줍니다.
SQL>@$ORACLE_HOME/rdbms/admin/dbmslm.sql

SQL>@$ORACLE_HOME/rdbms/admin/dbmslmd.sql
log분석을 시작하겠습니다.

exec dbms_logmnr_d.build('&filename','/home/oracle/logminer');
/home/oracle/logminer위치에 원하시는 파일을 생성합니다.

exec dbms_logmnr.add_logfile('&ArchiveDestandfilename:',1);
바인드 변수로 받아보겠습니다. archive log 파일 위치와 파일명을 입력해주시면 됩니다.

exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/dict');

그리고 나서 조회를 해봅시다.

select timestamp, seg_owner, username, sql_redo from v$logmnr_contents;

확인하시면 됩니다.
log분석을 종료하시려면
exec dbms_logmnr.end_logmnr();

조회 해본 결과 hr 유저에서 테스트를 했는데 username이 unknown으로 나오는 군요;;;

'oracle11R2' 카테고리의 다른 글

11g Achitecture / 11g interactive  (0) 2012.12.28
11g 파티셔닝  (0) 2011.09.13
11g NF asm  (0) 2011.06.22
Oracle11g  (0) 2011.06.17
SQL Access Advisor(11gR2)  (0) 2011.06.15