Logminer日誌挖掘範例

來源:互聯網
上載者:User

1、 明確時間範圍

根據時間確定需要挖據日誌的個數,將日誌分別加入指令碼中。

 

2、 編寫logminer指令碼

execute dbms_logmnr.add_logfile(logfilename=>'/home/Oracle/admin/ORCL/archive/ORCL_1_670176536_22124.dbf',options=>dbms_logmnr.new);

execute dbms_logmnr.add_logfile(logfilename=>'/home/oracle/admin/ORCL/archive/ORCL_1_670176536_22122.dbf',options=>dbms_logmnr.addfile);

execute dbms_logmnr.add_logfile(logfilename=>'/home/oracle/admin/ORCL/archive/ORCL_1_670176536_22118.dbf',options=>dbms_logmnr.addfile);

 

 

3、 執行指令碼

將SQL複製到SQL*PLUS中運行,通過alert日誌可以查看日誌的挖掘進度。

EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

每查看一次V$LOGMNR_CONTENTS,dbms_logmnr包都會去挖掘一次歸檔檔案,所以最好複製一份此表;

4、 建立暫存資料表

Logminer執行分析完畢後,會將挖掘的資訊儲存在視圖V$LOGMNR_CONTENTS,如果session退出,視圖內相應資料將會清除。因此,為了方便查

詢,可以通過建立暫存資料表將視圖中的資料儲存:

Create table lonmnr_tmp as select * from V$LOGMNR_CONTENTS;

 

 

5、 查詢目標SQL

根據查詢條件,可以確定目標SQL是否存在:

select username, operation, SQL_REDO,SQL_UNDO FROM lonmnr_tmp where SEG_OWNER = 'SCOTT';

 

在V$LOGMNR_CONTENTS中username有時候會顯示“UNKNOWN”狀態,說明是其他語句調用的關係,可以根據session#和serial#去ash

或者DBA_HIST_SESSION_HISTORY視圖中查詢資訊;

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.