oracle의 logminer는 말그대로 redo log 혹은 archive file내에서 사용된 sql을 캐내는 툴이다.
가끔 operation 실수나 해킹(?)으로 인해 데이터 이상이 생겼을 때 어떤 시점에 어떤 operation이 발생했고 그에 대한 undo sql이 무엇인지 등을 보여 준다.
exec dbms_logmnr_d.build('logmnr_dic.ora','/home');
2. 추출할 archive file이나 redo log file 지정.
exec dbms_logmnr.add_logfile('/archive/archive_1_1000.arch',dbms_logmnr.NEW);
exec dbms_logmnr.add_logfile('/archive/archive_1_1001.arch',dbms_logmnr.ADDFILE);
3. logminer 시작.
exec dbms_logmnr.start_logmnr(dictfilename=>'/home/logmnr_dic.ora');
4. 정보 추출.
v$logmnr_contents
위의 작업은 한 세션에서만 해당 내용을 볼 수 있다. 즉 위에서 발생하는 데이터는 오라클 데이터베이스 내에 저장되는 것이 아니라 데이터베이스 외부에서 발생하고 보여주는 데이터 이다..
더 자세한 내용은 요기서..
[추가] oracle 10g에서 online catalog를 사용하는 방법이다.
1. add Archive Files which were analyzed
execute DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME => '/a01b/TGDOM/arch/TGDOM_1_217_630787281.dbf',OPTIONS => DBMS_LOGMNR.NEW);
execute DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME => '/a01b/TGDOM/arch/TGDOM_1_218_630787281.dbf',OPTIONS => DBMS_LOGMNR.ADDFILE);
execute DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME => '/a01b/TGDOM/arch/TGDOM_1_219_630787281.dbf',OPTIONS => DBMS_LOGMNR.ADDFILE);
2. Start LogMiner With Online Catalog
SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
PL/SQL procedure successfully completed.
3. Query v$logminr_contents
SQL> select username, operation, SQL_REDO,SQL_UNDO FROM V$LOGMNR_CONTENTS where SEG_OWNER='SCOTT';
no rows selected
4. End LogMiner
SQL> SQL> execute dbms_logmnr.end_logmnr ;
PL/SQL procedure successfully completed.
'Oracle Database > Oracle Tool & Util' 카테고리의 다른 글
DataPump를 이용한 간단한 마이그레이션 Sample (0) | 2015.01.21 |
---|---|
SQL Developer 4.1을 이용해 Excel data를 Oracle database로 넣기 (0) | 2015.01.15 |
SQL Developer 4.1의 instance monitoring 기능 (0) | 2015.01.15 |