1:簡介:dbms_logmnr是oracle8i中oracle提供的壹個新包。主要用於分析日誌文件(包括在線重做日誌文件、歸檔日誌文件),並將日誌文件中的信息轉移到v$logmnr_contents中,從而獲得oracle數據庫操作的歷史信息。它不僅可以分析oracle8i的日誌文件,還可以分析oracle8的日誌文件。這些信息主要包括在您的分析時限內對數據庫數據進行了哪些更改以及執行了哪些語句。
2.如何使用它
1)打開init.ora文件,添加utl_file_dir=d:\oracle(註意:將其更改為您自己的路徑,這是logminer使用文件的默認路徑),然後應用新設置打開oracle數據庫。
2)執行SQL》。執行DBMS _ logmnr _ D . build(‘shw dict . ora‘,‘D:\ Oracle‘);(註意:將生成d: \ Oracle \ shwdictit.ora文件,該文件將來可以重用,但不能同時用於多個logmnr)用於生成數據字典;如果沒有dbms_logmnr_d包,則需要手動執行@ d:\ Oracle \ ora 8 \ RDBMS \ admin \ DBMS lmd . SQL;如果在執行過程中下標越界,則需要打開@ d:\ Oracle \ ora 8 \ RDBMS \ admin \ dbmslmd . SQL文件,並增加col _ description的col _ desc _ array is varray(513)類型的513。我將其更改為1513,保存文件並重新執行@ d:\ Oracle \ ora 8 \ RDBMS \ admin \ dbmslmd . SQL;(註意:每個人都應該以sysdba身份登錄並執行)。
3)將要分析的日誌文件添加到日誌列表中,以查看哪些日誌文件可用。
select * from v $ logfile
該查詢已被添加到可以使用的查詢中
Select * from v$logmnr_logs(註意:查詢必須在同壹個會話中進行,單獨打開的話是找不到的)。
聲明如下:
執行DBMS _ log mnr . add _ log file(‘d:\ Oracle \ oradata \ shw \ redo 01 _ 1 . log‘,DBMS _ log mnr . new);
請執行DBMS _ log mnr . add _ log file(‘d:\ ORACLE \ ORADATA \ ORA \ redo 02 _ 1。LOG,DBMS _ LOG mnr . addfile);
請執行DBMS _ log mnr . add _ log file(‘d:\ ORACLE \ ORADATA \ ORA \ redo 03 _ 1。LOG,DBMS _ LOG mnr . addfile);
如果您需要從分析列表中刪除文件。
(‘d:\ ORACLE \ ORADATA \ ORA \ redo 03 _ 1。LOG,DBMS _ LOG mnr . remove file);
4)更改會話時間的表達式(註意必須在此會話中修改,因為我在其他會話中開始出錯,如果允許,我可以修改數據庫中默認的時間表達式)。請更改會話以更改會話集nls _ date _ format =‘yyyy-mm-ddhh 24:mi:ss‘;系統在註冊表中設置。
5)查詢分析日誌文件中包含的scn範圍和日期範圍。
從v$logmnr_logs中選擇low_time、high_time、low_scn、next _ scn將列出您加入的日誌文件的上述信息。
6)進行分析:
dbms_logmnr.start_logmnr(
dictfilename = & gtd:\ Oracle \ shwdict . ora‘,startscn = & gtxxxxxx,endscn = & gtxxxxx,starttime = & gtto _ date(‘20030501 12:15:00‘,‘yyyymmdd hh24:mi:ss‘),endtime = & gtto _ date(‘20030501 15:40:30‘,‘yyyymmdd hh24:mi:ss‘);
註意scn範圍和日期格式,格式應該與您修改的格式相同。
7:查詢
Select SCN,時間戳,會話號會話號,sql重做
來自V$LOGMNR_CONTENTS
按1排序
妳想查詢的內容可以自己修改。