Oracle中logmnr包的使用詳解

2021-04-19 20:37:09 字數 1917 閱讀 9898

dbms_logmnr是oracle在oracle8i所提供的新package。它主要用於分析log file檔案(包括online redo log file,archived log file),將log file中的資訊轉存到v$logmnr_contents中,從而獲取對oracle資料庫操作的歷史資訊。它不僅可以分析oracle8i的log file,也可以分析oracle8的log file。

dbms_logmnr包的具體使用步驟舉例如下:

一.在d:/oracle/admin/wlcdb/pfile/init.ora檔案中加入utl_file_dir=d:/oracle,然後應用新的設定開啟oracle資料庫。

二.執行sql>execute dbms_logmnr_d.build,用於生成資料字典;如果沒有dbms_logmnr_d包,需手工執行@d:/oracle/ora81/rdbms/admin/dbmslmd.sql。

如果執行sql>execute dbms_logmnr_d.build('wlcdbdict.ora','d:/oracle');

產生如下錯誤:

begin dbms_logmnr_d.build('wlcdbdict.ora','d:/oracle '); end; *

error 位於第 1 行:

ora-06532: 下標超出限制

ora-06512: 在"sys.dbms_logmnr_d", line 793

ora-06512: 在line 1

需要執行以下步驟,才能避免產生錯誤。

1.修改d:/oracle/ora81/rdbms/admin/dbmslmd.sql檔案

開啟dbms_logmnr_d包,將type col_desc_array is varray(513) of col_description這個陣列的值改大一些

2.以sys/change_on_install身份登陸

sql*plus>connect sys/change_on_install

3.執行sql*plus>@d:/oracle/ora81/rdbms/admin/dbmslmd.sql

三.執行sql>execute dbms_logmnr.add_file;將所要分析的log files加入到log list中。

可以查詢v$logmnr_logs獲取那些log files已加入log list中。

四.修改sysdate格式;

alter session set nls_date_format='yyyy-mm-dd:hh24:mi:ss';

五.從v$logmnr_logs中查詢low_time,high_time,low_scn,next_scn資訊;

六.執行sql>execute dbms_logmnr.start_logmnr,開始分析log file。

若想獲取此次分析所使用的引數,可以查詢v$logmnr_parameters檢視。

七.獲得結果資訊;

 

如果需要對v$logmnr_contents進行大量的查詢,建議先將檢視中的內容轉存到另一table中,再進行查詢。

八.執行sql>execute dbms_logmnr.end_ logmnr,清除v$logmnr_logs, v$logmnr_contents, v$logmnr_parmeters中的內容,結束分析。

結論:logminer是oracle在oracle8i所提供的新package,oracle8並沒有這個package;但oracle8中也可以使用logminer。只需將oracle8.1.6之前(dbmslogmnrd.sql, dbmslogmnr.sql, prvtlogmnr.plb)、oracle8.1.6之後(dbmslmd.sql, dbmslm.sql, prvtlm.plb)的檔案拷貝到oracle8所在的機器上並執行這些scripts即可。這樣oracle8中也可以使用logminer。

常用的logmnr指令碼

begin sys.dbms logmnr.add logfile e oracleoradatauniplatredolog01.log sys.dbms logmnr.add logfile e oracleoradatauniplatredolog02.log sys.dbms logmnr....

ORACLE 使用LOGMNR檢視資料庫日誌

如果被人不小心刪除了資料庫的表物件裡面的資料,而我們又不知道準確的操作時間,這時,就可以使用oracle的logmnr工具,分析查詢資料庫的歸檔日誌,從而查詢該誤操作的內容和時間,有些直接呼叫log undo就可以恢復。我的作業系統cent os,資料庫是oracle11g 1 使用oracle使用...

Oracle中的包的使用

使用程式包主要是為了實現程式的模組化,程式包可以將相關的儲存過程,函式,變數,常量和游標等pl sql程式組合在一起,通過這種方式可以構供程式人員重用的 庫。另外,當首次呼叫程式包中的儲存過程或函式等元素是,oracle會將整個程式包調入記憶體,在下次呼叫程式包中的元素時,oracle就可以之際從記...