logminer總結

靜以致遠√團團發表於2017-03-22
執行指令碼安裝logminer
[oracle@fogtestdb admin]$ sqlplus / as sysdba
SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql
Package created.
Grant succeeded.
Synonym created.

SQL> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql
Package created.
Synonym created.
建立資料字典檔案
SQL> show parameter utl_file_dir

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string

SQL> alter system set utl_file_dir = '/u01/app/logminer' scope = spfile;
System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1503199232 bytes
Fixed Size 2228544 bytes
Variable Size 1140854464 bytes
Database Buffers 352321536 bytes
Redo Buffers 7794688 bytes
Database mounted.
Database opened.

SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string /u01/app/logminer
SQL> exec dbms_logmnr_d.build( 'dictionary.ora', '/u01/app/logminer');
PL/SQL procedure successfully completed.

開啟補充日誌
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;

新增日誌(redo or arch)
SQL> exec dbms_logmnr.add_logfile('/u01/app/oracle/oradata/mytest/redo01.log');
PL/SQL procedure successfully completed.

分析日誌
SQL> exec dbms_logmnr.start_logmnr( dictfilename=>'/u01/app/logminer/dictionary.ora');
PL/SQL procedure successfully completed.

檢視結果
select operation,sql_redo,sql_undo from v$logmnr_contents;

結束分析
exec dbms_logmnr.end_logmnr; 

其他
V$LOGMNR_DICTIONARY-------查詢使用的資料字典檔案
V$LOGMNR_PARAMETERS-------查詢當前LogMiner設定的引數

指定時間的分析
EXECUTE dbms_logmnr.start_logmnr(
DictFileName => dictfilename=>'D:\..\practice\LOGMNR\dictionary.ora', 
StartTime =>to_date('2013-6-8 00:00:00','YYYY-MM-DD HH24:MI:SS')
EndTime =>to_date(''2013-6-8 23:59:59','YYYY-MM-DD HH24:MI:SS ')); 

SCN和日期轉換
select scn_to_timestamp(8908390522972) scn from dual;
select timestamp_to_scn(sysdate) scn from dual; 

異機logminer
如果生產庫設定了utl_file_dir引數,直接把生成的dictionary.ora資料字典檔案複製到其他庫,再其他庫上進行分析,指定使用生產庫的資料字典檔案即可。
如果生產庫未設定utl_file_dir引數,生產庫不能重啟,無法抽取出生產庫的資料字典

操作步驟:
生產庫:
 抽取資料字典到redo log 
EXECUTE DBMS_LOGMNR_D.BUILD( OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
記錄資料字典所在的日誌檔案
SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES'; --開始的日誌檔案
SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_END='YES'; --結束的日誌檔案

測試庫:
logminer載入日誌:
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '第一個檔案', OPTIONS => DBMS_LOGMNR.NEW); --資料字典日誌檔案
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '之後的檔案', OPTIONS => DBMS_LOGMNR.ADDFILE); --資料字典日誌檔案,載入開始到結束的全部日誌檔案
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '需要挖掘的日誌檔案', OPTIONS => DBMS_LOGMNR.ADDFILE); --新增需要挖掘的

開始資料探勘:
EXECUTE DBMS_LOGMNR.START_LOGMNR( OPTIONS =>DBMS_LOGMNR.COMMITTED_DATA_ONLY+dbms_logmnr.NO_ROWID_IN_STMT+dbms_logmnr.DICT_FROM_REDO_LOGS); --使用dbms_logmnr.DICT_FROM_REDO_LOGS
5、挖掘查詢結果:
SELECT scn,seg_owner,operation,timestamp,status,sql_redo,seg_name  FROM v$logmnr_contents 

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