使用Oracle的logminer工具進行日誌挖掘
Logminer是oracle從8i開始提供的用於分析重做日誌資訊的工具,它包括DBMS_LOGMNR和DBMS_LOGMNR_D兩個package,後邊的D是字典的意思。它既能分析redo log file,也能分析歸檔後的archive log file。在分析日誌的過程中需要使用資料字典,一般先生成資料字典檔案後使用,10g版本還可以使用線上資料字典。
Logminer可以分析其它資料庫的重做日誌檔案,但是必須使用重做日誌所在資料庫的資料字典,否則會出現無法識別的亂碼。另外被分析資料庫的作業系統平臺最好和當前Logminer所在資料庫的執行平臺一樣,且block size相同。
1、執行以下2個指令碼安裝logminer功能,一般資料庫都已經安裝好了:
p5b2@/u01/app/oracle/product/10.2/rdbms/admin$ ls -l dbmsl*
-rw-r--r-- 1 oracle oinstall 17246 Oct 27 2006 dbmslm.sql
-rw-r--r-- 1 oracle oinstall 4663 Oct 27 2006 dbmslmd.sql
2、要生成資料字典檔案,首先要修改一個utl_file_dir引數,修改為*或者想存放資料字典檔案位置的目錄:
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string
SQL> alter system set utl_file_dir='*' scope=spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
3、生成資料字典檔案
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string *
SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dict20090625.dat',dictionary_location => '/orabak');
PL/SQL procedure successfully completed.
4、可以先設定使用的表空間
SQL> EXECUTE DBMS_LOGMNR_D.SET_TABLESPACE('erp')
PL/SQL procedure successfully completed.
5、填加要分析的日誌檔案
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'/orabak/testarch/1_89802_640266118.dbf',Options=>dbms_logmnr.new);
PL/SQL procedure successfully completed.
6、可以繼續填加,用dbms_logmnr.removefile可以刪除
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'/orabak/testarch/1_89807_640266118.dbf',Options=>dbms_logmnr.addfile);
PL/SQL procedure successfully completed.
7、開始分析日誌
SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'/orabak/dict20090625.dat');
PL/SQL procedure successfully completed.
提取特定時間的日誌:
dbms_logmnr.start_logmnr(dictfilename=>'/orabak/dict20090625.dat',
starttime=>to_date('2009-06-24 09:30:00','YYYY-MM-DD HH24:MI:SS'),
endtime=>to_date('2009-06-24 12:00:59','YYYY-MM-DD HH24:MI:SS'))
使用線上資料字典:
SQL> EXEC DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
PL/SQL procedure successfully completed.
8、檢視結果
select timestamp,username,session#,sql_redo,operation from v$logmnr_contents;
9、結束分析,釋放PGA記憶體資源
SQL> exec dbms_logmnr.end_logmnr;
PL/SQL procedure successfully completed.
注意,v$logmnr_contents內容儲存了日誌的內容,只在當前會話有效,如果想長期儲存分析,可以在當前會話用create table tablename as select * from v$logmnr_contents語句來持久儲存。
Logminer可以分析其它資料庫的重做日誌檔案,但是必須使用重做日誌所在資料庫的資料字典,否則會出現無法識別的亂碼。另外被分析資料庫的作業系統平臺最好和當前Logminer所在資料庫的執行平臺一樣,且block size相同。
1、執行以下2個指令碼安裝logminer功能,一般資料庫都已經安裝好了:
p5b2@/u01/app/oracle/product/10.2/rdbms/admin$ ls -l dbmsl*
-rw-r--r-- 1 oracle oinstall 17246 Oct 27 2006 dbmslm.sql
-rw-r--r-- 1 oracle oinstall 4663 Oct 27 2006 dbmslmd.sql
2、要生成資料字典檔案,首先要修改一個utl_file_dir引數,修改為*或者想存放資料字典檔案位置的目錄:
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string
SQL> alter system set utl_file_dir='*' scope=spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
3、生成資料字典檔案
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string *
SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dict20090625.dat',dictionary_location => '/orabak');
PL/SQL procedure successfully completed.
4、可以先設定使用的表空間
SQL> EXECUTE DBMS_LOGMNR_D.SET_TABLESPACE('erp')
PL/SQL procedure successfully completed.
5、填加要分析的日誌檔案
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'/orabak/testarch/1_89802_640266118.dbf',Options=>dbms_logmnr.new);
PL/SQL procedure successfully completed.
6、可以繼續填加,用dbms_logmnr.removefile可以刪除
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LogFileName=>'/orabak/testarch/1_89807_640266118.dbf',Options=>dbms_logmnr.addfile);
PL/SQL procedure successfully completed.
7、開始分析日誌
SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'/orabak/dict20090625.dat');
PL/SQL procedure successfully completed.
提取特定時間的日誌:
dbms_logmnr.start_logmnr(dictfilename=>'/orabak/dict20090625.dat',
starttime=>to_date('2009-06-24 09:30:00','YYYY-MM-DD HH24:MI:SS'),
endtime=>to_date('2009-06-24 12:00:59','YYYY-MM-DD HH24:MI:SS'))
使用線上資料字典:
SQL> EXEC DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
PL/SQL procedure successfully completed.
8、檢視結果
select timestamp,username,session#,sql_redo,operation from v$logmnr_contents;
9、結束分析,釋放PGA記憶體資源
SQL> exec dbms_logmnr.end_logmnr;
PL/SQL procedure successfully completed.
注意,v$logmnr_contents內容儲存了日誌的內容,只在當前會話有效,如果想長期儲存分析,可以在當前會話用create table tablename as select * from v$logmnr_contents語句來持久儲存。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25373498/viewspace-752517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 11g logminer 進行日誌挖掘Oracle
- ORACLE的日誌挖掘 logminerOracle
- ORACLE logminer 日誌挖掘Oracle
- 使用Oracle 10g的Logminer挖掘日誌Oracle 10g
- Logminer日誌挖掘
- logminer日誌挖掘技術
- logminer日誌挖掘操作步驟
- 在oracle中Logmnr進行日誌挖掘Oracle
- logminer異機挖掘歸檔日誌
- 從Logminer日誌挖掘中找出可疑的操作
- 使用 Oracle logminer 挖掘日誌恢復誤刪資料以及查詢操作者Oracle
- LogMiner日誌分析工具說明
- ORACLE LOGMNR 日誌挖掘Oracle
- Oracle11g使用LOGMNR挖掘日誌Oracle
- 使用日誌挖掘來挖掘TX等待的事務
- 動手為王——利用logminer挖掘日誌恢復誤操作
- 日誌挖掘
- LOGMINER日誌分析
- 日誌挖掘的方法
- 使用cronolog工具給tomcat進行日誌切割Tomcat
- 使用logminer分析歸檔日誌案例
- oracle 9i logminer日誌分析01Oracle
- oracle logminer分析線上 離線日誌方法Oracle
- 利用oracle的日誌挖掘實現回滾Oracle
- 使用shell進行日誌分析
- 日誌挖掘-對於DML操作的挖掘
- logminer 日誌分析案例
- logminer抽取日誌案例
- 【REDO】Oracle 日誌挖掘,分析歸檔日誌線上日誌主要步驟Oracle
- 日誌分析logmnr (Logminer) 使用方法
- logminer工具對redo log或archive log的挖掘Hive
- 使用Logminer來分析具體的DML操作日誌
- 日誌挖掘-對於DDL語句的挖掘
- 達夢資料庫使用DBMS_LOGMNR進行日誌挖掘詳細步驟資料庫
- logminr 日誌挖掘
- logmnr 日誌挖掘
- 日誌挖掘 log miner
- 歸檔日誌挖掘