Logminer的使用,具體執行步驟

mengzhaoliang發表於2008-07-27

/*2008/07/27 星期日
*蒙昭良
*環境:windowsXP + Oracle10gR2
*Logminer的使用,具體執行步驟
*/


Logminer具體實行步驟:


1、設定logminer的使用目錄,在系統中必須存在d:\oracle\logs的目錄

SQL> conn /as sysdba 已連線。

SQL> show user

USER 為 "SYS"

SQL> alter system set utl_file_dir='d:\oracle\logs' scope=spfile;

系統已更改。

SQL> shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

ORACLE 例程已經關閉。

SQL> startup ORACLE 例程已經啟動。

Total System Global Area 289406976 bytes

Fixed Size 1248576 bytes Variable Size

96469696 bytes Database Buffers 184549376 bytes

Redo Buffers 7139328 bytes

資料庫裝載完畢。資料庫已經開啟。

2、生成logminer package

SQL> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslm.sql

程式包已建立。

授權成功。

SQL> @D:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslmd.sql

程式包已建立。

3、生成logminer file,logminer.ora會在d:\oracle\logs中自動生成

SQL> execute dbms_logmnr_d.build('logminer.ora','d:\oracle\logs');

PL/SQL 過程已成功完成。


4、將要分析的日誌檔案加入要分析的log list中
                           
                                                                               

SQL> col member for a50

SQL> select a.group#,a.archived,a.status,b.member  from v$log a,v$logfile b  where a.group#=b.group# ;

GROUP# ARC STATUS ---------- --- ---------------- MEMBER ------------------------------------

3 YES INACTIVE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG

2 YES INACTIVE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG

1 NO CURRENT D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG

SQL> execute dbms_logmnr.add_logfile('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG',dbms_logmnr.new);

PL/SQL 過程已成功完成。

SQL> archive log list;

資料庫日誌模式

存檔模式自動存檔

啟用存檔終點 USE_DB_RECOVERY_FILE_DEST

最早的聯機日誌序列 21

下一個存檔日誌序列 23

當前日誌序列 23

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_27\O1_MF_1_20_48QNHXTC_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_27\O1_MF_1_21_48QNJ4CQ_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_27\O1_MF_1_22_48QPROTV_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_26\O1_MF_1_16_48OHF0VC_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_26\O1_MF_1_17_48OOOSC7_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_26\O1_MF_1_18_48PGCWWB_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

SQL> execute dbms_logmnr.add_logfile('D:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2008_07_26\O1_MF_1_19_48PGHNF5_.ARC',dbms_logmnr.addfile);

PL/SQL 過程已成功完成。

5、檢視分析的日誌檔案包含的scn範圍和日期範圍。

SQL> select log_id,low_time,high_time,low_scn,next_scn,filename from v$logmnr_logs;
6、執行分析:

SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\logs\logminer.ora'); PL/SQL 過程已成功完成。

7、檢視分析結果                                                                           

SQL> select username,to_char(timestamp,'yyyy-mm-dd hh24:mi:ss'),sql_redo from v$logmnr_contents where username='MZL' and (sql_redo like '%TABLE%' or sql_redo like '%table%');

USERNAME TO_CHAR(TIMESTAMP,' ------------------------------ ------------------- SQL_REDO --------------------------------------------------

MZL 2008-07-26 11:36:01 -- Add/modify columns alter table EMP modify JOB VARCHAR2(19) ;

 MZL 2008-07-26 11:41:00 -- Add/modify columns alter table EMP add test varchar2(33) ;

USERNAME TO_CHAR(TIMESTAMP,' ------------------------------ ------------------- SQL_REDO --------------------------------------------------

MZL 2008-07-27 10:03:36 create table ssss(id number,name varchar2(20));

MZL 2008-07-27 10:04:00 ALTER TABLE "MZL"."MZL" RENAME TO "BIN$baUXfB1uTMK bobheHlgK7A==$0" ;

MZL 2008-07-27 10:04:00 USERNAME TO_CHAR(TIMESTAMP,' ------------------------------ ------------------- SQL_REDO -------------------------------------------------- drop table mzl AS "BIN$baUXfB1uTMKbobheHlgK7A==$0" ;

 
8、結束logminer                                                                              

SQL> execute dbms_logmnr.end_logmnr;

PL/SQL 過程已成功完成。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-410324/,如需轉載,請註明出處,否則將追究法律責任。

相關文章