logminer工具的學習
logminer工具的學習
[@more@]A:基本物件:
source database:包含了要分析的重做日誌和歸檔日誌
mining database:執行logminer操作要使用的資料庫
logminer 字典: 將內部物件ID號和資料型別轉換成為物件名和外部資料格式,若不用字典進行分析。產生的LOG不是很容易讀。(如例)
B:logminer配置需求:
1,source和mining database必須執行在相同的硬體平臺
2,mining database可以和source database在一臺資料庫上,也可以獨立。
3,mining database版本必須高於source database
4,source和mining database必須字符集相同
5,logminer字典必須在source database生成
6,若多個日誌的話,必須是來源於同一個source database
7,若多個日誌的話,必須是具有相同的resetlogs scn
8,被分析的redo和arch必須在oracle8.0版本以上
C:補充日誌:supplemental log
redo和arch使用者實現恢復,這些資料自動記錄在日誌中,除了這些還要記錄其他一部分的資訊,記錄其他列的日誌過程被稱為補充日誌。
預設情況,資料庫不提供補充日誌,所以預設下logminer不支援:
1,索引族,鏈行和遷移行。
2,直接路徑插入
3,摘取logminer字典到redo log
4,跟蹤ddl
5,生成健列的sql_redo和sql_undo
6,long和lob資料型別
如果要使用這些特性的話,必須開啟這個功能。如下過程
C:Documents and SettingsAdministrator>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 9月 10 20:51:14 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
> alter database add supplemental log data;
資料庫已更改。
D:Logminer不支援的資料型別和表儲存屬性:
bfile
抽象資料型別
集合型別(巢狀表和varray)
參照物件
xmltype
具有Lob列的索引組織表
使用compress特性的表
E:使用logminer字典時候,有三種選項:
1,使用source database 資料字典(online catalog)
execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
這樣的方式要求資料庫必須OPEN狀態,且只能trace DML,無法跟蹤DDL操作.
2,使用logminer字典到從做日誌。
execute dbms_logmnr_d.build(options=>dbms_logmnr_d.store_in_redo_logs);
這樣的方式要求資料庫還必須要在archive的模式下。若在分析資料庫日誌的時候,要分析的表
結構發生了改變。ORACLE推薦使用這個選項分析日誌。
3,摘取logmnr字典到字典檔案中.
建立字典檔案的方法如下:
> alter system set utl_file_dir='D:oraclelogmnr' scope=spfile;
----設定utl_file_dir目錄
系統已更改。
這是為了相容以前的版本
> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
> startup
ORACLE 例程已經啟動。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 62915940 bytes
Database Buffers 100663296 bytes
Redo Buffers 2945024 bytes
資料庫裝載完畢。
資料庫已經開啟。
> execute dbms_logmnr_d.build('dict.ora','d:oraclelogmnr',dbms_logmnr_d.store_in
_flat_file);
---第一個參數列示字典檔名
---第二個參數列示字典檔案目錄,和utl_file_dir目錄一致
---第三個參數列示要使用字典檔案
PL/SQL 過程已成功完成。
F:分析DML操作
下面演示:
> conn u_omar/biohazard
已連線。
> create table emp as select * from scott.emp where 1=0;
表已建立。
> insert into emp select * from scott.emp;
已建立14行。
> commit;
提交完成。
> select a.group#,a.status,b.member from v$log a,v$logfile b
2 where a.group#=b.group#;
GROUP# STATUS MEMBER
---------- ---------------- --------------------------------------------------
3 UNUSED D:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG
1 CURRENT D:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG
> conn / as sysdba
已連線。
第一步,建立分析列表:
> execute dbms_logmnr.add_logfile(logfilename=>'D:ORACLEPRODUCT10.2.0ORADATAO
RCLREDO01.LOG',options=>dbms_logmnr.new);
PL/SQL 過程已成功完成。
------new指定一個新的日誌
> execute dbms_logmnr.add_logfile(logfilename=>'D:ORACLEPRODUCT10.2.0ORADATAO
RCLREDO03.LOG',options=>dbms_logmnr.addfile);
-----若有多個日誌要分析的話,就要addfile
-----若要移除日誌的話就要DBMS_LOGMNR.REMOVEFILE
第二步,啟動logmnr
> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 過程已成功完成。
-----這是使用online catalog的方式分析日誌
-----啟動分析的時候,可以限制時間範圍,也可以指定起始SCN和結束SCN
第三步,檢視分析的結果
-----只能在當前會話中檢視,其他會話不可以檢視到結果集
> select username,timestamp,sql_redo from v$logmnr_contents
2 where seg_name='EMP' and rownum<=2;
USERNAME TIMESTAMP SQL_REDO
-------- -------------- ------------------------------------------------------------
U_OMAR 10-9月 -07 create table emp as select * from scott.emp where 1=0;
U_OMAR 10-9月 -07 insert into "U_OMAR"."EMP"("EMPNO","ENAME","JOB","MGR","HIRE
DATE","SAL","COMM","DEPTNO") values ('7369','SMITH','CLERK',
'7902',TO_DATE('17-12月-80', 'DD-MON-RR'),'800',NULL,'20');
-----結束Logmnr
> execute dbms_logmnr.end_logmnr;
PL/SQL 過程已成功完成。
---------不用logmnr字典的方式來進行logmnr
> execute dbms_logmnr.start_logmnr();
PL/SQL 過程已成功完成。
> execute dbms_logmnr.add_logfile(logfilename=>'D:ORACLEPRODUCT10.2.0ORADATAO
RCLREDO01.LOG',options=>dbms_logmnr.new);
PL/SQL 過程已成功完成。
----------不用任何字典的方式
> execute dbms_logmnr.start_logmnr();
> select username,timestamp,sql_redo from v$logmnr_contents
2 where username='U_OMAR' AND UPPER(SQL_REDO) LIKE 'INSERT%' AND ROWNUM<=2;
USERNAME TIMESTAMP SQL_REDO
-------- -------------- ------------------------------------------------------------
U_OMAR 10-9月 -07 insert into "UNKNOWN"."OBJ# 18"("COL 1","COL 2","COL 3","COL
4","COL 5","COL 6","COL 7","COL 8","COL 9","COL 10","COL 11
","COL 12","COL 13","COL 14","COL 15","COL 16","COL 17") val
ues (HEXTORAW('c306471b'),HEXTORAW('c306471b'),HEXTORAW('c13
e'),HEXTORAW('454d50'),HEXTORAW('c102'),NULL,HEXTORAW('c103'
),HEXTORAW('786b090a161b09'),HEXTORAW('786b090a161b09'),HEXT
ORAW('786b090a161b09'),HEXTORAW('c102'),NULL,NULL,HEXTORAW('
80'),NULL,HEXTORAW('c107'),HEXTORAW('c102'));
U_OMAR 10-9月 -07 insert into "UNKNOWN"."OBJ# 14"("COL 1","COL 2","COL 3","COL
4","COL 5","COL 6","COL 7","COL 8","COL 9","COL 10","COL 11
","COL 12","COL 13","COL 14","COL 15","COL 16","COL 17","COL
18","COL 19") values (HEXTORAW('c10c'),HEXTORAW('c107'),HEX
TORAW('c3020334'),HEXTORAW('c104'),HEXTORAW('c109'),HEXTORAW
('c102'),HEXTORAW('c109'),HEXTORAW('c102'),HEXTORAW('c516303
1252e'),HEXTORAW('c2021d'),HEXTORAW('80'),HEXTORAW('c13e'),H
EXTORAW('80'),HEXTORAW('80'),HEXTORAW('80'),HEXTORAW('80'),H
EXTORAW('80'),HEXTORAW('c306471b'),HEXTORAW('c30e0e1e'));
----------------查詢出來的資訊,都是沒有經過轉換的ID
G:使用Logmnr分析DDL操作:
要分析DDL,必須使用字典檔案存放在日誌中。即要把DB放在ARCHIVE上
> conn u_omar/biohazard
已連線。
> drop table emp;
表已刪除。
以下為分析步驟:
> execute dbms_logmnr.add_logfile(logfilename=>'D:ORACLEPRODUCT10.2.0ORADATAO
RCLREDO01.LOG',options=>dbms_logmnr.new);
PL/SQL 過程已成功完成。
> execute dbms_logmnr.start_logmnr(dictfilename=>'D:oraclelogmnrdict.ora',optio
ns=>dbms_logmnr.ddl_dict_tracking);
-------------------dictfilename使用的是字典檔案
-------------------ddl_dict_tracking是隻申請DDL相關資訊
PL/SQL 過程已成功完成。
> col sql_redo format a410
> col sql_redo format a40
> select timestamp,sql_redo from v$logmnr_contents
2 where lower(sql_redo) like '%drop table%';
TIMESTAMP SQL_REDO
-------------- ----------------------------------------
10-9月 -07 drop table emp AS "BIN$EOgLIu3BSCysD4eTn
NFa7Q==$0" ;
> execute dbms_logmnr.end_logmnr;
PL/SQL 過程已成功完成。
H:顯示logmnr的資訊
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9925929/viewspace-977512/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LogMiner 學習
- Oracle logminer學習Oracle
- 有關logminer的學習:
- 使用LogMiner工具
- 安裝和使用LogMiner工具
- LogMiner日誌分析工具說明
- 使用Oracle的logminer工具進行日誌挖掘Oracle
- logminer工具對redo log或archive log的挖掘Hive
- 使用Logminer工具分析DML和DDL操作
- CMAKE工具學習
- 要學習使用的安全工具
- Oracle 8i 新分析工具-LogMiner(轉)Oracle
- Oracle 9i LogMiner工具使用說明Oracle
- 菜鳥學習寫的Ioc工具
- 提升碼農90%學習效率的8大學習工具
- 故障診斷學習工具
- 11個實用的CSS學習工具CSS
- 理解和使用Oracle 8i分析工具-LogMiner(轉)Oracle
- 學習HTML5還是學習HTML5的製作工具?HTML
- oracle之logminer的使用Oracle
- 安裝oracle 的LogMinerOracle
- Oracle LogMinerOracle
- EA工具UML建模學習(一)
- 【linux學習--工具篇】串列埠除錯工具Linux串列埠除錯
- HTML5開發學習教程,學習HTML5還是學習HTML5的製作工具?HTML
- Mac平臺好的快速學習記憶工具Mac
- 適合少兒學習程式設計的工具程式設計
- 透過使用Chrome的開發者工具來學習JavaScriptChromeJavaScript
- 在實戰中學習 JavaScript 的幾個工具JavaScript
- Node.js的學習資源、教程和工具Node.js
- 學習C# Regex 的一個工具! (轉)C#
- ORACLE的日誌挖掘 logminerOracle
- LogMiner的安裝和使用
- LOGMINER的記憶體消耗記憶體
- 淺談LogMiner的使用 (轉)
- 學習 PixiJS — 互動工具JS
- Mochi for Mac快速學習記憶工具Mac
- Trivy 容器映象掃描工具學習