要安裝LogMiner工具,必須首先要運行下面這樣兩個腳本,這兩個腳本必須均以SYS用戶身份運行。其中第一個腳本用來創建DBMS_LOGMNR包,該包用來分析日志文件。第二個腳本用來創建DBMS_LOGMNR_D包,該包用來創建數據字典文件。
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
程序包已創建。
授權成功。
SQL> @d:\oracle\product\10.2.0\db_2\RDBMS\ADMIN\dbmslmd.sql
程序包已創建。
使用LogMiner工具
1、創建數據字典文件(data-dictionary)
數據字典文件是一個文本文件,使用包DBMS_LOGMNR_D來創建。如果我們要分析的數據庫中的表有變化,影響到庫的數據字典也發生變化,這時就需要重新創建該字典文件。另外一種情況是在分析另外一個數據庫文件的重作日志時,也必須要重新生成一遍被分析數據庫的數據字典文件。
在ORACLE8I的時候,首先在init.ora初始化參數文件中,指定數據字典文件的位置,也就是添加一個參數UTL_FILE_DIR,該參數值為服務器中放置數據字典文件的目錄。如:
UTL_FILE_DIR = (e:\Oracle\logs)
ORACLE9I后,推薦使用SPFILE啟動,可以動態調整參數;
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;
系統已更改。
SQL> startup force
ORACLE 例程已經啟動。
Total System Global Area 289406976 bytes
Fixed Size 1248600 bytes
Variable Size 96469672 bytes
Database Buffers 188743680 bytes
Redo Buffers 2945024 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string d:\oracle\logs
然后創建數據字典文件
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、創建要分析的日志文件列表
Oracle的重作日志分為兩種,在線(online)和離線(offline)歸檔日志文件,我這里主要分析歸檔日志,在線日志原理一樣。
A.創建列表
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進行分析
BEGIN
dbms_logmnr.start_logmnr(
dictfilename => 'd:\oracle\logs\logminer_dict.dat');
END;
/
4、觀察分析結果(v$logmnr_contents)
到現在為止,我們已經分析得到了重作日志文件中的內容。動態性能視圖v$logmnr_contents包含LogMiner分析得到的所有的信息。
SELECT sql_redo FROM v$logmnr_contents;
網上這種東西很多,但好多都會報錯,著是經過我實際操作過的.
posted on 2007-06-06 14:07
太極虎~宏 閱讀(4799)
評論(3) 編輯 收藏 引用 所屬分類:
數據庫