SQL> conn sys/sys as sysdba
已連接。
SQL> @C:\oracle\ora92\rdbms\admin\dbmslmd.sql
過(guò)程已創(chuàng)建。
沒(méi)有錯(cuò)誤。
授權(quán)成功。
PL/SQL 過(guò)程已成功完成。
程序包已創(chuàng)建。
SQL> @C:\oracle\ora92\rdbms\admin\dbmslms.sql
程序包已創(chuàng)建。
沒(méi)有錯(cuò)誤。
授權(quán)成功。
SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename=>'v816dict.ora',dictionary_location=>'e:\oracle\logs');
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\NCDBPX\redo01.log',Options=>dbms_logmnr.new);
PL/SQL procedure successfully completed.
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\NCDBPX\redo02.log',Options=>dbms_logmnr.ADDFILE);
PL/SQL procedure successfully completed.
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\NCDBPX\redo03.log',Options=>dbms_logmnr.ADDFILE);
PL/SQL procedure successfully completed.
SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'e:\oracle\logs\v816dict.ora');
PL/SQL procedure successfully completed.
SQL> select sql_REDO from v$logmnr_contents where upper(operation)='DELETE' and upper(sql_redo) like '%GPRS_SER%'
2 /
no rows selected
SQL> ed
Wrote file afiedt.buf
1* select sql_REDO from v$logmnr_contents where upper(operation)='CREATE' and upper(sql_redo) like '%EMP%'
SQL> /
no rows selected
--------------------------------------------------------------------------------------
LogMiner的主要用途
LogMiner工具的主要用途有:
(1)跟蹤數(shù)據(jù)庫(kù)的變化:可以離線的跟蹤數(shù)據(jù)庫(kù)的變化,而不會(huì)影響在線系統(tǒng)的性能。
(2)回退數(shù)據(jù)庫(kù)的變化:回退特定的變化數(shù)據(jù),減少point-in-time recovery的執(zhí)行。
(3)優(yōu)化和擴(kuò)容計(jì)劃:可通過(guò)分析日志文件中的數(shù)據(jù)以分析數(shù)據(jù)增長(zhǎng)模式。
Oracle9i LogMiner的增強(qiáng)功能
(1)支持更多數(shù)據(jù)/存儲(chǔ)類型:鏈接/遷移行、CLUSTER表操作、DIRECT PATH插入以及DDL操作。
(2)提取和使用數(shù)據(jù)字典的選項(xiàng):現(xiàn)在數(shù)據(jù)字典不僅可以提取到一個(gè)外部文件中,還可以直接提取到重做日志流中,它在日志流中提供了操作當(dāng)時(shí)的數(shù)據(jù)字典快照,這樣就可以實(shí)現(xiàn)離線分析。
(3)允許對(duì)DML操作按事務(wù)進(jìn)行分組:可以在START_LOGMNR()中設(shè)置COMMITTED_DATA_ONLY選項(xiàng),實(shí)現(xiàn)對(duì)DML操作的分組,這樣將按SCN的順序返回已經(jīng)提交的事務(wù)。
(4)支持SCHEMA的變化:在數(shù)據(jù)庫(kù)打開(kāi)的狀態(tài)下,如果使用了LogMiner的DDL_DICT_TRACKING選項(xiàng),Oracle9i的LogMiner將自動(dòng)對(duì)比最初的日志流和當(dāng)前系統(tǒng)的數(shù)據(jù)字典,并返回正確的DDL語(yǔ)句,并且會(huì)自動(dòng)偵察并標(biāo)記當(dāng)前數(shù)據(jù)字典和最初日志流之間的差別,這樣即使最初日志流中所涉及的表已經(jīng)被更改或者根本已經(jīng)不存在,LogMiner同樣會(huì)返回正確的DDL語(yǔ)句。
(5)在日志中記錄更多列信息的能力:例如對(duì)于UPDATE操作不僅會(huì)記錄被更新行的情況,還可以捕捉更多已發(fā)生的更新操作信息。
(6)支持基于數(shù)值的查詢:Oracle9i LogMiner在支持原有基于元數(shù)據(jù)(操作、對(duì)象等)查詢的基礎(chǔ)上,開(kāi)始支持基于實(shí)際涉及到的數(shù)據(jù)的查詢。例如涉及一個(gè)工資表,現(xiàn)在可以很容易地查出員工工資由1000變成2000的原始更新語(yǔ)句,而在之前只能選出所有的更新語(yǔ)句。
LogMiner的安裝
要安裝LogMiner工具,必須首先要以SYS用戶身份運(yùn)行下面兩個(gè)腳本文件:
(l)$Oracle_HOME/rdbms/admin/dbmslsm.sql
用來(lái)創(chuàng)建DBMS_LOGMNR包,該包用來(lái)分析日志文件。
(2)$Oracle_HOME/rdbms/admin/dbmslsmd.sql
用來(lái)創(chuàng)建DBMS_LOGMNR_D包,該包用來(lái)創(chuàng)建數(shù)據(jù)字典文件。
LogMiner工具的使用
(1)創(chuàng)建數(shù)據(jù)字典文件(data-dictionary)
創(chuàng)建數(shù)據(jù)字典的目的就是讓LogMiner引用涉及到內(nèi)部數(shù)據(jù)字典中的部分時(shí)為他們實(shí)際的名字,而不是系統(tǒng)內(nèi)部的16進(jìn)制。數(shù)據(jù)字典文件是一個(gè)文本文件,使用包DBMS_LOGMNR_D來(lái)創(chuàng)建。
首先在init.ora初始化參數(shù)文件中,指定數(shù)據(jù)字典文件的位置,也就是添加一個(gè)參數(shù)UTL_FILE_DIR,該參數(shù)值為服務(wù)器中放置數(shù)據(jù)字典文件的目錄。如:
UTL_FILE_DIR=e:\Oracle\logs;
重新啟動(dòng)數(shù)據(jù)庫(kù),使新加的參數(shù)生效,然后創(chuàng)建數(shù)據(jù)字典文件:
CONNECT SYS
EXECUTE dbms_logmnr_d.build(dictionary_filename=>'v816dict.ora',dictionary_location=>'e:\oracle\logs');
(2)創(chuàng)建要分析的日志文件列表
Oracle的重作日志分為兩種,在線(online)和離線(offline)歸檔日志文件,下面就分別來(lái)討論這兩種不同日志文件的列表創(chuàng)建。
①分析在線重作日志文件
● 創(chuàng)建列表
EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\sxf\redo01.log',Options=>dbms_logmnr.new);
● 添加其他日志文件到列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>'e:\Oracle\oradata\sxf\redo02.log',
Options=>dbms_logmnr.addfile);
②分析離線日志文件
● 創(chuàng)建列表
EXECUTE dbms_logmnr.add_logfile(LogFileName=>'E:\Oracle\oradata\sxf\archive\ARCARC09108.001',Options=>dbms_logmnr.new);
● 添加另外的日志文件到列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>'E:\Oracle\oradata\sxf\archive\ARCARC09109.001',Options=>dbms_logmnr.addfile);
(3)使用LogMiner進(jìn)行日志分析
①無(wú)限制條件
EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'e:\oracle\logs\v816dict.ora');
②有限制條件
通過(guò)對(duì)過(guò)程DBMS_ LOGMNR.START_LOGMNR中幾個(gè)不同參數(shù)的設(shè)置,可以縮小要分析日志文件的范圍。通過(guò)設(shè)置起始時(shí)間和終止時(shí)間參數(shù)可以限制只分析某一時(shí)間范圍的日志。
(4)觀察分析結(jié)果(v$logmnr_contents)
動(dòng)態(tài)性能視圖v$logmnr_contents包含LogMiner分析后得到的所有的信息。
與日志分析相關(guān)視圖還有:
①V$LOGMNR_DICTIONARY:查詢使用的數(shù)據(jù)字典文件。
②V$LOGMNR_PARAMETERS:查詢當(dāng)前LogMiner設(shè)定的參數(shù)。
③V$LOGMNR_FILES:查詢分析的日志文件。
④V$LOGMNR_CONTENTS:日志文件的內(nèi)容。
3.其他注意事項(xiàng)
(1)LogMiner必須使用被分析數(shù)據(jù)庫(kù)實(shí)例產(chǎn)生的字典文件,而不是安裝LogMiner的數(shù)據(jù)庫(kù)產(chǎn)生的字典文件,另外必須保證安裝LogMiner數(shù)據(jù)庫(kù)的字符集和被分析數(shù)據(jù)庫(kù)的字符集相同。
(2)被分析數(shù)據(jù)庫(kù)平臺(tái)必須和當(dāng)前LogMiner所在數(shù)據(jù)庫(kù)平臺(tái)一樣。
(3)LogMiner日志分析工具僅能夠分析Oracle 8以后的產(chǎn)品。
posted on 2006-11-24 10:17
Coundy 閱讀(978)
評(píng)論(0) 編輯 收藏 所屬分類:
Oracle