1. LogMiner安裝
需要以SYS使用者身份執行下面兩個指令碼:
$Oracle_HOME/rdbms/admin/dbmslm.sql
$ORACLE_HOME/rdbms/admin/dbmslmd.sql
2. LogMiner使用
設定一個必要參數UTL_FILE_DIR=<path>,保證oracle使用者在該<path>下有讀寫權限,該參數不支援動態修改,所以只能在pfile中修改,然後重啟資料庫執行個體。
建立LogMiner的字典檔案,執行下面的指令碼。(注意 - 符號不能丟)
EXECUTE DBMS_LOGMNR_D.BUILD('dictionary.ora', -
'<path>', -
OPTIONS => DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);
向LogMiner中添加需要mine的Log檔案,執行下面的指令碼。
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( -
LOGFILENAME => '/oradata/redo01.log', -
OPTIONS => dbms_logmnr.NEW); <==========第一次建立
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( -
LOGFILENAME => '/oradata/redo02.log', -
OPTIONS => dbms_logmnr.ADDFILE); <==========追加
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( -
LOGFILENAME => '/oradata/redo02.log', -
OPTIONS => dbms_logmnr.REMOVEFILE); <==========刪除
Log檔案的挖掘
你可以選擇的用來過濾日誌資訊的選項
選項 意義
=========== =========
STARTSCN SCN起始號
ENDSCN SCN結束號
STARTTIME 開始時間
ENDTIME 結束時間
DICTFILENAME 字典檔案的名字
用來分析的LogMiner視圖
視圖名 視圖資訊
=================== ==================================================
V$LOGMNR_DICTIONARY 正在使用的字典檔案
V$LOGMNR_PARAMETERS LogMiner的參數
V$LOGMNR_LOGS 正在分析的記錄檔
V$LOGMNR_CONTENTS 分析出來的日誌內容
使用過濾的例子:
EXECUTE DBMS_LOGMNR.START_LOGMNR( -
DICTFILENAME => '<path>/dictionary.ora', -
STARTSCN => 100, -
ENDSCN => 150);
查看日誌資訊的例子:
SELECT operation, sql_redo FROM v$logmnr_contents;