要安裝LogMiner工具,必須首先要運(yùn)行下面這樣兩個腳本,這兩個腳本必須均以SYS用戶身份運(yùn)行。其中第一個腳本用來創(chuàng)建DBMS_LOGMNR包,該包用來分析日志文件。第二個腳本用來創(chuàng)建DBMS_LOGMNR_D包,該包用來創(chuàng)建數(shù)據(jù)字典文件。
1..$ORACLE_HOME/rdbms/admin/dbmslm.sql 2. $ORACLE_HOME/rdbms/admin/dbmslmd.sql.
SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslm.sql
程序包已創(chuàng)建。
授權(quán)成功。
SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslmd.sql
程序包已創(chuàng)建。
使用LogMiner工具
1、創(chuàng)建數(shù)據(jù)字典文件(data-dictionary)
數(shù)據(jù)字典文件是一個文本文件,使用包DBMS_LOGMNR_D來創(chuàng)建。如果我們要分析的數(shù)據(jù)庫中的表有變化,影響到庫的數(shù)據(jù)字典也發(fā)生變化,這時就需要重新創(chuàng)建該字典文件。另外一種情況是在分析另外一個數(shù)據(jù)庫文件的重作日志時,也必須要重新生成一遍被分析數(shù)據(jù)庫的數(shù)據(jù)字典文件。
在ORACLE8I的時候,首先在init.ora初始化參數(shù)文件中,指定數(shù)據(jù)字典文件的位置,也就是添加一個參數(shù)UTL_FILE_DIR,該參數(shù)值為服務(wù)器中放置數(shù)據(jù)字典文件的目錄。如:
UTL_FILE_DIR = (e:\Oracle\logs)
ORACLE9I后,推薦使用SPFILE啟動,可以動態(tài)調(diào)整參數(shù);
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DB_2\
DATABASE\SPFILESGTEST2.ORA
SQL> alter system set utl_file_dir='d:\oracle\logs' scope=spfile;
系統(tǒng)已更改。
SQL> startup force
ORACLE 例程已經(jīng)啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248600 bytes
Variable Size 96469672 bytes
Database Buffers 188743680 bytes
Redo Buffers 2945024 bytes
數(shù)據(jù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開。
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string d:\oracle\logs
然后創(chuàng)建數(shù)據(jù)字典文件
SQL> @d:\dbms_logmnr_d.build.txt
PL/SQL 過程已成功完成。
腳本dbms_logmnr_d.build.txt
BEGIN
dbms_logmnr_d.build(
dictionary_filename => 'logminer_dict.dat',
dictionary_location => 'd:\oracle\logs');
END;
/
2、創(chuàng)建要分析的日志文件列表
Oracle的重作日志分為兩種,在線(online)和離線(offline)歸檔日志文件,我這里主要分析歸檔日志,在線日志原理一樣。
A.創(chuàng)建列表
SQL>execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO01.LOG');
B.添加另外的日志文件到列表
SQL>execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO02.LOG');
SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename=>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO03.LOG');
刪除
SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilenam
e =>'D:\oracle\product\10.2.0\oradata\oracle9i\REDO03.LOG');
8.啟動LogMiner進(jìn)行分析
BEGIN
dbms_logmnr.start_logmnr(
dictfilename => 'd:\oracle\logs\logminer_dict.dat');
END;
/
4、觀察分析結(jié)果(v$logmnr_contents)
到現(xiàn)在為止,我們已經(jīng)分析得到了重作日志文件中的內(nèi)容。動態(tài)性能視圖v$logmnr_contents包含LogMiner分析得到的所有的信息。
SELECT sql_redo FROM v$logmnr_contents;
網(wǎng)上這種東西很多,但好多都會報錯,著是經(jīng)過我實(shí)際操作過的.
posted on 2007-06-06 14:07
太極虎~宏 閱讀(4811)
評論(3) 編輯 收藏 引用 所屬分類:
數(shù)據(jù)庫