Oracle logminer學習

regonly1發表於2009-10-23

logminer日誌挖掘
--分析Oracle重做日誌和歸檔日誌

logminer安裝
要安裝logminer,需要執行以下兩個指令碼:
1.$ORACLE_HOME/rdbms/admin/dbmslm.sql
2.$ORACLE_HOME/rdbms/admin/dbmslmd.sql
這兩個指令碼必須在sys使用者下執行。其中第一個包用來建立dbms_logmnr包,該包用來分析日誌檔案。
第二個用來建立dbms_logmnr_d,該包用來建立資料字典檔案。

一、初始化logminer環境,以下操作均在sys使用者下完成
1、設定引數utl_file_dir:
> alter system set utl_file_dir = 'e:\logmnr' scope=spfile;
系統已更改。
已用時間:  00: 00: 00.04
scope引數只能選spfile,不能為both或者memory,因此需要重新啟動DB才能使該引數生效。

2、重啟資料庫:
shutdown immediate;
startup mount;

3、建立字典檔案
begin
 dbms_logmnr_d.build(dictionary_filename => 'dict.ora', dictionary_location => 'e:\logmrn');
end;
這裡的dictionary_location引數指定的目錄必須要跟utl_file_dir系統引數指定的一致。

4、新增要檢視的日誌檔案
begin
dbms_logmnr.add_logfile(options=>dbms_logmnr.new, logfilename=>'F:\00.OracleDATA2\flash_recovery_area\ORCL\ARCHIVELOG\2009_10_19\O1_MF_1_463_5FQLZVMH_.ARC');
dbms_logmnr.add_logfile(options=>dbms_logmnr.addfile, logfilename=>'F:\00.OracleDATA2\flash_recovery_area\ORCL\ARCHIVELOG\2009_10_19\O1_MF_1_464_5FQM1DYQ_.ARC');
dbms_logmnr.add_logfile(options=>dbms_logmnr.addfile, logfilename=>'F:\00.OracleDATA2\flash_recovery_area\ORCL\ARCHIVELOG\2009_10_19\O1_MF_1_465_5FQM9XWS_.ARC');
end;
這裡add_logfile過程既可以增加聯機日誌檔案(redofile),也可以增加歸檔日誌檔案(archivelog file)。
options選項:
new表示新增一個檔案。多次new則以最後一次new的檔案為準。
addfile表示在new的基礎上增加檔案,可以新增若干個。但是分析的時候建議每次一個,這樣可以區分每個日誌檔案包含了什麼內容。
logfilename選項:指定要分析的日誌檔名或歸檔日誌名。

新增完成後,檢視新增的檔案列表:
select filename from v$logmnr_logs;

5、分析日誌檔案:
begin
 dbms_logmnr.start_logmnr(dictfilename => 'e:\logmnr\dict.ora');
end;
start_logmnr過程有多個引數,可以指定scn,也可以指定歸檔日誌的開始時間和結束時間:
 Startscn
 Endscn
 Starttime
 Endtime
 Dictfilename
 Options
如果不確定scn或時間這些引數,那麼就只指定dictfilename引數即可。
分析完成後,可透過v$logmnr_contents來檢視日誌中的詳細內容:
select *from v$logmnr_contents lc where lc.seg_owner = 'LYON';

logmnr分析的日誌檔案只在session期間有效,一旦session關閉,存放在pga中的這些日誌結果都將被清除。
由於是session期間有效,因此執行start_logmnr生成的結果集只對當前session有效,其他session看不到這些結果。

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

相關文章