Oracle 10g Logminer 研究及測試
一,如何使用Logminer:
先要logminer的兩個包;以SYS使用者執行下面兩個指令碼,其中第一個指令碼dbmslm.sql用來建立DBMS_LOGMNR包,該包用來分析日誌檔案。第二個指令碼dbmslmd.sql用來建立DBMS_LOGMNR_D包,該包用來建立資料字典檔案。
D:oracleproduct10.2.0db_1RDBMSADMIN>sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on星期五4月10 17:49:02 2009
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn sys/oracle as sysdba
已連線。
SQL>
SQL> @dbmslm.sql
程式包已建立。
授權成功。
SQL>
SQL> @dbmslmd.sql
程式包已建立。
二,建立資料字典檔案
資料字典檔案是一個文字檔案,使用包DBMS_LOGMNR_D來建立,如果我們要分析的資料庫中的表有變化(比如表結構有變化等),影響到庫的資料字典也發生變化。另外一種情況是在分析另外一個資料庫檔案的重做日誌時,也必須要重新生成一遍被分析資料庫的資料字典檔案。
首先需要修改引數UTL_FILE_DIR ,該引數值為伺服器中放置資料字典檔案的目錄,中我們透過動態修改引數的方式來修改,然後重新啟動資料庫生效。其中logs_utl_file目錄先期建立好。
SQL> alter system set UTL_FILE_DIR='d:oracleproduct10.2.0oradatatestlogs_utl_file' scope=spfile; 系統已更改。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE例程已經關閉。
SQL>
SQL> startup
ORACLE例程已經啟動。
Total System Global Area 167772160 bytes
Fixed Size 1295608 bytes
Variable Size 125831944 bytes
Database Buffers 33554432 bytes
Redo Buffers 7090176 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>
SQL> show parameter UTL_FILE
NAME TYPE
------------------------------------ -------------
VALUE
------------------------------
utl_file_dir string
d:oracleproduct10.2.0orada
tatestlogs_utl_file
SQL>
然後建立資料字典檔案:
BEGIN
dbms_logmnr_d.build(
dictionary_filename => ' logminer_dict.ora',
dictionary_location => ' D:oracleproduct10.2.0oradatatestlogs_utl_file');
END;
/
OK ,可以看到在logs_ult_file中已經生成了logminer_dict.ora資料字典檔案。資料字典檔案是可以開啟的文字檔案。有興趣可以開啟看看。
建立資料字典是讓logminer引用實際到內部資料字典中的部分是使用物件的名稱,而不是系統內部的16進位制的ID.
三,建立要分析的日誌檔案(線上日誌或歸檔日誌)的列表
(1)分析線上的重做日誌
A。建立列表
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0orad
atatestredo01.log', ptions=>dbms_logmnr.new);
PL/SQL過程已成功完成。
B。新增其他日至檔案到列表
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0orad
atatestredo02.log', ptions=>dbms_logmnr.addfile);
PL/SQL過程已成功完成。
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0orad
atatestredo03.log', ptions=>dbms_logmnr.addfile);
PL/SQL過程已成功完成。
(2)分析歸檔的重做日誌
A。建立列表
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0orad
ataarchiveARC00052_0684166863.001', ptions=>dbms_logmnr.new);
PL/SQL過程已成功完成。
B。新增其他日誌檔案到列表
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0orad
ataarchiveARC00053_0684166863.001', ptions=>dbms_logmnr.addfile);
PL/SQL過程已成功完成。
如果你覺得不需要分析已經在列表中的線上或歸檔日誌,可以透過removefile命令刪除:
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0orad
ataarchiveARC00053_0684166863.001', ptions=>dbms_logmnr.removefile);
PL/SQL過程已成功完成。
四,使用Logminer進行日誌分析
無限制條件:
SQL> execute dbms_logmnr.start_logmnr(DictFileName=> 'D:oracleproduct10.2.0o
radatatestlogs_utl_filelogminer_dict.ora') ;
PL/SQL過程已成功完成。
有限制條件:
透過對過程DBMS_LOGMNR.START_LOGMNR中的時間或者SCN引數的設定,可以縮小分析日誌檔案的範圍:
如我們僅僅分析2009年2月23日到年7月26日的日誌:
SQL> execute dbms_logmnr.start_logmnr(
DictFileName => ' D:oracleproduct10.2.0o
radatatestlogs_utl_filelogminer_dict.ora ',
StartTime => to_date('2009-2-23 00:00:00','YYYY-MM-DD HH24:MI:SS')
EndTime => to_date(''2009-2-26 23:59:59','YYYY-MM-DD HH24:MI:SS '));
相關的引數如下:
引數引數型別預設值含義
StartScn數字型0分析重作日誌中SCN≥StartScn日誌檔案部分
EndScn數字型0分析重作日誌中SCN≤EndScn日誌檔案部分
StartTime日期型1998-01-01分析重作日誌中時間戳≥StartTime的日誌檔案部分
EndTime日期型2988-01-01分析重作日誌中時間戳≤EndTime的日誌檔案部分
DictFileName字元型字典檔案該檔案包含一個資料庫目錄的快照。
使用該檔案可以使得到的分析結果是可以理解的文字形式,
而非系統內部的16進位制
Options BINARY_INTEGER 0系統除錯引數,實際很少使用
五,得到分析結果:
到現在為止,我們已經分析得到了重作日誌檔案中的內容。動態效能檢視v$logmnr_contents包含LogMiner分析得到的所有的資訊。
SELECT sql_redo FROM v$logmnr_contents;
如果我們僅僅想知道某個使用者對於某張表的操作,可以透過下面的SQL查詢得到,該查詢可以得到使用者TONY對錶R_WIP_TST所作的一切工作。
SQL>; SELECT sql_redo FROM v$logmnr_contents WHERE username='TONY' AND tablename='R_WIP_TST';
需要強調一點的是,檢視v$logmnr_contents中的分析結果僅在我們執行過程'dbms_logmrn.start_logmnr' 這個會話的生命期中存在(如果執行了DBMS_LOGMNR.END_LOGMNR分析結果將消失)。這是因為所有的LogMiner儲存都在PGA記憶體中,所有其他的程式是看不到它的,同時隨著程式的結束,分析結果也隨之消失。
如果需要,可以透過removefile命令刪除日誌分析檔案。
SQL> execute dbms_logmnr.add_logfile(LogFileName=>'d:oracleproduct10.2.0oradataarchiveARC00052_0684166863.001', ptions=>dbms_logmnr.removefile);
六,使用DBMS_LOGMNR.END_LOGMNR結束日誌分析過程,釋放記憶體。
最後,使用過程DBMS_LOGMNR.END_LOGMNR終止日誌分析事務,此時PGA記憶體區域被清除,分析結果也隨之不再存在。
SQL> execute dbms_logmnr.end_logmnr;
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9907339/viewspace-1054280/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12c logminer測試Oracle
- oracle 10g logminerOracle 10g
- Oracle 10g Logminer clob bugOracle 10g
- oracle 10g中logminer的使用Oracle 10g
- 使用Oracle 10g的Logminer挖掘日誌Oracle 10g
- logminer進行資料探勘分析測試
- oracle 10g 傳輸表空間的測試Oracle 10g
- Oracle LogMinerOracle
- [zt] Oracle LogMinerOracle
- Oracle logminer(轉)Oracle
- oracle 10G 物化檢視新特性(測試效果不理想)Oracle 10g
- oracle分割槽表的分類及測試Oracle
- Oracle Logminer 說明Oracle
- Oracle logminer學習Oracle
- 【Oracle】Oracle logminer功能介紹Oracle
- 測試管理及測試工具盒集
- Oracle 10g同位元組序跨平臺遷移的測試Oracle 10g
- ORACLE logminer 日誌挖掘Oracle
- (轉)Oracle Logminer 說明Oracle
- oracle之logminer的使用Oracle
- Oracle高可用之LogMinerOracle
- 安裝oracle 的LogMinerOracle
- oracle dbfs檔案系統介紹及使用測試Oracle
- 測試oracle sqlldrOracleSQL
- ORACLE 測試題:Oracle
- Oracle9i傳輸表空間到10g測試過程Oracle
- 黑盒測試策略及測試範圍(web端)Web
- ORACLE的日誌挖掘 logminerOracle
- 記一次Oracle logminerOracle
- [zt] Oracle LogMiner 終結版Oracle
- Sikuli測試應用研究報告
- 【OCM】Oracle 10g OCM 考試大綱Oracle 10g
- Oracle 11.2.0.1 Result Cache 測試 - 3 引數及使用,限制Oracle
- oracle redo日誌產生量測試及比較1Oracle Redo
- oracle 10g rac +asm 進行加物理磁碟與減物理磁碟的測試Oracle 10gASM
- oracle 10g rac 撥公網網線和私網網線物理測試Oracle 10g
- oracle 10g RMAN備份及恢復Oracle 10g
- ORACLE壓力測試Oracle