Logmnr 工具的使用

hunterjoy發表於2011-07-25

一、    安裝LogMiner工具,以下兩個指令碼以SYSDBA身份執行

@$Oracle_HOME\rdbms\admin\dbmslm.sql;

@ $ORACLE_HOME\rdbms\admin\dbmslmd.sql;

第一個指令碼用來建立DBMS_LOGMNR包,該包用來分析日誌檔案。
第二個指令碼用來建立DBMS_LOGMNR_D包,該包用來建立資料字典檔案。

 

二、建立資料字典檔案(data-dictionary

1、建立logmnr目錄

Mkdir –p /u01/app/oracle/logmnr

2、修改spfile引數:utl_file_dir

Alter system set utl_file_dir=’/u01/app/oracle/logmnr’ scope=spfile;

 

3、發生誤操作

 

4、做日誌切換

Alter system switch logfile;

 

5、建立字典檔案的存放位置

 Execute dbms_logmnr_d.build(dictionary_filename =>’dictionary.ora’,dictionary_location=>’/u01/app/oracle/logmnr’);

 

6、建立分析列表,即所要分析的日誌(誤操作時的歸檔日誌)

Exec dbms_logmnr.add_logfile(LogFileName =>’/u01/********.dbf’,Option =>dbms_logmnr.NEW);

 

7、新增分析日誌檔案,一次新增1個為宜 SQL> execute dbms_logmnr.add_logfile(LogFileName => 'G:\ORACLE\ORADATA\ORADBSP\REDO05.LOG',Options => dbms_logmnr.ADDFILE);

 

 

8、檢視v$lognmr_logs記錄(檢視記錄是否被新增)

Select * from v$logmnr_logs;

 

三、使用logMiner進行日誌分析

1、無限制條件,即用資料字典檔案對要分析的日誌檔案所有內容做分析 SQL> execute dbms_logmnr.start_logmnr(DictFileName => 'G:\oracle\logs\dict.ora');

 

2、帶限制條件,可以用scn號或時間做限制條件,也可組合使用
--
分析日誌列表中時間從07.02.2810:0015:00的內容 SQL> execute dbms_logmnr.start_logmnr(startTime => to_date('20070228100000','yyyy-mm-dd hh24:mi:ss'),endTime => to_date('20070228150000','yyyy-mm-dd hh24:mi:ss'),DictFileName => 'G:\oracle\logs\dict.ora');

 

3、檢視v$logmnr_contents記錄

Select count(*) from v$logmnr_contents;

 

4、分析後釋放記憶體

SQL> execute dbms_logmnr.end_logmnr;

 

5、刪除日誌分析檔案
1).
刪除日誌分析檔案 exec dbms_logmnr.add_logfile('G:\ORACLE\ORADATA\ORADBSP\REDO04.LOG',dbms_logmnr.removefile);

 

 

注:在分析另外一個資料庫檔案的重作日誌時,也必須要重新生成一遍被分析資料庫的資料字典檔案。

 在使用LogMiner工具分析redo log檔案之前,可以使用DBMS_LOGMNR_D 包將資料字典匯出為一個文字檔案。

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

相關文章