oracle 10g中logminer的使用
第一:建立dbms_logmnr包
以sys使用者執行下面四個指令碼
dbmslm.sql
@/u01/oracle/rdbms/admin/dbmslm.sql
dbmslmd.sql
@/u01/oracle/rdbms/admin/dbmslmd.sql
第二 修改引數檔案,指定分析資料的存放位置
SQL> alter system set utl_file_dir='/u01/bak_qilin/logminer' scope=spfile;
第三 關閉,啟動
shutdown immediate
startup;
第四 建立資料字典檔案
以sys使用者執行以下命令:
SQL> execute dbms_logmnr_d.build(dictionary_filename => 'sqltrace.ora',dictionary_location => '/u01/bak_qilin/logminer');
或者 execute dbms_logmnr_d.build('sqltrace.ora','/u01/bak_qilin/logminer',dbms_logmnr_d.store_in_flat_file);
第五 建立日誌分析表
首先 查詢線上日誌檔案用 SQL> select * from v$logfile;
然後 執行以下命令:
第1個日誌檔案需要以dbms_lognr.new的方式新增,從第2個開始用dbms_logmnr.addfile方式新增
EXECUTE dbms_logmnr.add_logfile('/u01/oradata/qilin/redo01.log', dbms_logmnr.new);
EXECUTE dbms_logmnr.add_logfile('/u01/oradata/qilin/redo02.log', dbms_logmnr.addfile);
EXECUTE dbms_logmnr.add_logfile('/u01/oradata/qilin/redo03.log', dbms_logmnr.addfile);
以下的載入方式也是可以的
SQL> exec dbms_logmnr.add_logfile(options => dbms_logmnr.new,logfilename=>'/u01/oradata/qilin/redo01.log');
SQL> exec dbms_logmnr.add_logfile(options => dbms_logmnr.addfile,logfilename=>'/u01/oradata/qilin/redo02.log');
SQL> exec dbms_logmnr.add_logfile(options => dbms_logmnr.addfile,logfilename=>'/u01/oradata/qilin/redo03.log');
可以分析以歸檔的離線重做日誌檔案,當然這要求資料庫執行在歸檔模式。
如果需要從分析列表裡去掉一個檔案用
EXECUTE dbms_logmnr.add_logfile('d:\ORACLE\ORADATA\ORA\REDO03_1.LOG',dbms_logmnr.removefile);
檢視被當前會話載入的日誌:SQL> select filename,low_scn,next_scn from v$logmnr_logs;
第六 啟動logminer進行分析
首先 修改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> select low_time,high_time,low_scn,next_scn from v$logmnr_logs;
LOW_TIME HIGH_TIME LOW_SCN NEXT_SCN
------------------- ------------------- ---------- ----------
2010-05-25:16:47:37 2010-05-26:10:30:04 629155 650681
2010-05-26:10:30:04 2010-05-31:11:07:36 650681 673807
2010-05-31:11:07:36 1988-01-01:00:00:00 673807 2.8147E+14
然後 分析logminer
SQL> exec dbms_logmnr.start_logmnr(dictfilename =>'/u01/bak_qilin/logminer/sqltrace.ora',startscn=>650681,endscn=>673806,starttime =>to_date('2010-05-24 09:00:00','yyyy-mm-dd hh24:
mi:ss'),endtime=>to_date('2010-05-31 09:00:00','yyyy-mm-dd hh24:mi:ss'));
PL/SQL procedure successfully completed.
或者
SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'D:\oracle\product\logminer\sqltrace.ora',startscn=>2060597,endscn=>2092926,starttime=>to_date('2010-05-24 00:00:00'),
endtime=>to_date('2010-05-31 00:00:00'));
或者
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog + dbms_logmnr.committed_data_only + dbms_logmnr.print_pretty_sql);
第七 檢視日誌分析的結果
執行以下命令:sql> select username, sql_redo, sql_undo from v$logmnr_contents where username = ‘test’ and peration = ‘delete’;
第八 關閉logminer
執行命令:sql> exec dbms_logmnr.end_logmnr
select * from v$log_history; select * from v$logmnr_logs;
一共有四個表,詳細說明如下
V$LOGMNR_DICTIONARY-------查詢使用的資料字典檔案
V$LOGMNR_PARAMETERS-------查詢當前LogMiner設定的引數
V$LOGMNR_LOGS -------查詢分析的日誌檔案
V$LOGMNR_CONTENTS -------日誌檔案的內容
在查詢v$logmnr_contents內容時,where限制條件一定要用大寫.
Seg_name : 表名;
Scn : SCN 號碼
Sql_redo : 所作的sql 語句
Sql_undo : 對應sql_redo, 恢復用的sql 語句
Timestamp : sql 發出的具體時間
Operation : sql 的型別,分為INSERT, UPDATE, START(set …), COMMIT(commit), INTERNAL等
Session# : 發出該操作的 session
select operation,sql_redo,sql_undo from v$logmnr_contents;
SELECT sql_redo FROM v$logmnr_contents WHERE username='SYS' AND tablename='TT';
select scn,sql_redo from v$logmnr_contents where seg_owner='SYSTEM' and seg_name='ENDUSER' and upper(operation)='INSERT';
SELECT timstamp,sql_redo FROM v$logmnr_contents WHERE upper(sql_redo) like '%insert%';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20976446/viewspace-674324/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Oracle 10g的Logminer挖掘日誌Oracle 10g
- oracle 10g logminerOracle 10g
- Oracle 10g Logminer clob bugOracle 10g
- oracle之logminer的使用Oracle
- Oracle 10g Logminer 研究及測試Oracle 10g
- 使用oracle的logminer同步資料Oracle
- oracle9i logMiner的使用Oracle
- Oracle LogMinerOracle
- 使用Oracle的logminer工具進行日誌挖掘Oracle
- 安裝oracle 的LogMinerOracle
- 使用 Oracle Database 10g中的閃回表特性OracleDatabase
- [zt] Oracle LogMinerOracle
- Oracle logminer(轉)Oracle
- Oracle 9i LogMiner工具使用說明Oracle
- ORACLE的日誌挖掘 logminerOracle
- Oracle Logminer 說明Oracle
- Oracle logminer學習Oracle
- Oracle 10g RAC中的DRMOracle 10g
- 【Oracle】Oracle logminer功能介紹Oracle
- 使用LogMiner工具
- Oracle9i使用logminer恢復資料Oracle
- [zt] ORACLE 10g中ASMCMD使用及ASM檔案Oracle 10gASM
- LogMiner的安裝和使用
- 淺談LogMiner的使用 (轉)
- Oracle 10G 中的回收站Oracle 10g
- Oracle 10G 中的"回收站"Oracle 10g
- ORACLE logminer 日誌挖掘Oracle
- (轉)Oracle Logminer 說明Oracle
- Oracle高可用之LogMinerOracle
- Oracle 10G 中臨時表空間組的操作和使用Oracle 10g
- 理解和使用Oracle 8i分析工具-LogMiner(轉)Oracle
- 淺談LogMiner的使用(轉載)
- Oracle 10g Logmnr使用Oracle 10g
- Oracle 10G中spool新增加的方法Oracle 10g
- Oracle 10G 中的"回收站"(轉)Oracle 10g
- 記一次Oracle logminerOracle
- [zt] Oracle LogMiner 終結版Oracle
- [zt] 使用snmp 監控 Oracle 10g(10.2.0.4) 時oracle 10g snmp的配置Oracle 10g