實驗環境 win7 64? oracle PL/SQL Release 11.2.0.1.0 - Production
http://blog.csdn.net/tianlesoftware/article/details/5604497
--這些操作需要在sysdba身份執行
1.執行分析之前需要添加補充日志
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;查看補充日志是否開啟,NO為未開啟
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
2.創建一個目錄存放生成的分析文件
create DIRECTORY utlfile AS 'E:\app\Administrator\oradata\practice\LOGMNR';
3.指定輸出文件到步驟1中的目錄?? UTL_FILE_DIR是Oracle中的一個“靜態參數”,可以設置一個或多個路徑。用于在PL/SQL中進行文件I/O操作(可以用utl_file包)時指定路徑。
alter system set utl_file_dir='E:\app\Administrator\oradata\practice\LOGMNR' scope=spfile;
--需要重啟oracle服務然后執行以下的操作
4.創建字典文件到3中配置好的LogMiner文件夾中:
EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'E:\app\Administrator\oradata\practice\LOGMNR');
5.加入需要分析的重做日志文件
EXECUTE dbms_logmnr.add_logfile(logfilename=>'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG',options=>dbms_logmnr.NEW);
6.開始分析
EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'E:\app\Administrator\oradata\practice\LOGMNR\dictionary.ora');
7.為了更好的從V$LOGMNR_CONTENTS中查看分析結果,創建一個臨時表
create table logmnr3 as select * from V$LOGMNR_CONTENTS;
8.結束分析
EXECUTE DBMS_LOGMNR.END_LOGMNR();
總結:
1.如果出現insert into "SCOTT"."EMP"("COL 1","COL 2","COL 3","COL 4","COL 5","COL 6","COL 7","COL 8") values (HEXTORAW('c2503a'),HEXTORAW('74657374'),HEXTORAW('434c45524b'),HEXTORAW('c24e53'),HEXTORAW('78730410141801'),HEXTORAW('c206'),NULL,HEXTORAW('c115'));
可能是因為需要重新創建目錄,重新創建字典
問題:
1.補充日志是否必須開啟,查看不到dml語句是否是因為沒有開啟補充日志;
2.如果存在dbms_logmnr和dbms_logmnr_d,還用執行數據庫帶的那腳本么;$ORACLE_HOME/rdbms/admin/dbmslm.sql 、$ORACLE_HOME/rdbms/admin/dbmslmd.sql.
? 因為在另一臺機器上沒有開啟補充日志仍然可以查看dml語句,懷疑兩個數據庫的區別只是另一個機器執行了那兩個腳本
轉載于:https://www.cnblogs.com/SUN-PH/p/4440631.html